fix(ha): fix deploy script bugs and correct cluster configuration

- Add root SSH key + passwordless sudo to ha-server nodes (needed for
  deploy script to run cluster-init.sh via SSH as root on node1)
- Fix cluster-init.sh: correct default IPs (228/227/229 per variables.nix),
  use \${VAR:-default} for all config so deploy.sh can override via env
- Fix acceptance-tests.sh: same IP corrections, add -i flag to SSH calls,
  use \${VAR:-default} pattern
- Fix deploy.sh dry-run bugs: pve_check() always runs SSH for read-only
  probes so bridge existence check is accurate; wait_for_ssh skips in
  dry-run instead of timing out
- Fix cluster-init invocation: upload script via scp and run via SSH as
  root on node1 (was incorrectly trying to run the script locally)
- Fix acceptance-tests invocation: pass IP env vars from deploy.sh

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HaH1cSGvhogRP5ExoF6nD8
This commit is contained in:
2026-07-28 17:04:13 +10:00
co-authored by Claude Sonnet 4.6
parent 59854a0229
commit b76d54e702
4 changed files with 68 additions and 39 deletions
+8
View File
@@ -19,6 +19,14 @@
# cluster-enable-stonith.sh once the fence key is deployed.
{ lib, vars, ... }:
{
# Root SSH access with the admin key — needed for the deploy script to upload
# and run cluster-init.sh as root on node1, and for node1→node2 SSH during init.
users.users.root.openssh.authorizedKeys.keys = [ vars.adminSshKey ];
# Passwordless sudo for wheel — operator SSHes as nixos and uses sudo for
# cluster management commands (drbdadm, crm*, pcs, etc.)
security.sudo.wheelNeedsPassword = lib.mkForce false;
services.drbd = {
enable = true;
config = ''