feat(remote-builders): build ai and shoukei on aquamarine (#467)

Aquamarine builds for ai and shoukei across the three platforms, with both
daemons logging in as root. They authenticate with their passphrase-free SSH
host keys, and ssh_known_hosts now carries each builder's address.

Assisted-by: DeepSeek Harness 0.2.0-rc.2 (deepseek-flash)
This commit is contained in:
ryan4yin | 二花 authored and GitHub committed 2026-10-17 00:49:22 +08:00
1 parent 4587c6bd14
commit d6450d48a2
12 files changed
+106 -72

No files matched your search

+1 -1
View File
@@ -30,7 +30,7 @@ Defines:
- **DNS servers**: IPv4 and IPv6 name servers
- **Host inventory**: static LAN hosts and their interfaces; DHCP/mobile hosts (such as the macOS
hosts) are omitted by design
- **SSH configuration**: Remote builder aliases and known hosts configuration
- **SSH configuration**: Host aliases and known hosts configuration
- **Network topology**: Physical machines, VMs, Kubernetes clusters, and SBCs
## Host Categories
+6
View File
@@ -32,4 +32,10 @@
# the backup ssh keys for disaster recovery
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMzYT0Fpcp681eHY5FJV2G8Mve53iX3hMOLGbVvfL+TF ryan@romantic"
];
# The SSH host keys of the machines whose nix-daemons build through aquamarine
# (modules/nixos/base/remote-builders.nix).
remoteBuilderClientKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINHZtzeaQyXwuRMLzoOAuTu8P9bu5yc5MBwo5LI3iWBV root@ai"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILDkbOwOeuAem8BKbyTDliRiTfHVAFdiVpAKh1bhs2s0 root@shoukei"
];
}
+4 -1
View File
@@ -199,7 +199,10 @@ rec {
# => { x = "bar-a"; y = "bar-b"; }
lib.attrsets.mapAttrs
(host: value: {
hostNames = [ host ] ++ (lib.optional (hostsAddr ? host) hostsAddr.${host}.ipv4);
# Name plus address: the Nix daemon connects the builder by its
# address, and verifies the host key under that name. A name-only
# entry fails the build with "Host key verification failed".
hostNames = [ host ] ++ lib.optionals (builtins.hasAttr host hostsAddr) [ hostsAddr.${host}.ipv4 ];
publicKey = value.publicKey;
})
{