Multi-machine fleet operations — SSH key management, cross-host syncing, Ansible playbook execution, fleet health checks, and inventory management. Trigger on: "fleet", "SSH to", "sync to node_gpu", "sync to node_primary", "cross-host", "deploy to", "rsync", "fleet health", "all machines", "inventory", or any task involving coordination between node_primary, node_gpu, node_miner, or future hosts.
Coordinate operations across the Swarm fleet: node_primary, node_gpu, node_miner, and future hosts.
| Host | IP | Role | SSH | OS |
|---|---|---|---|---|
| node_primary | 10.0.0.20 | Monero fullnode + relay + monitoring | key auth | Ubuntu 24.04 |
| node_gpu | 10.0.0.10 | GPU cluster, Docker Swarm, AI workloads | key auth | Ubuntu 24.04 |
| node_reserve2 | 10.0.0.2 | Swarm worker, Ollama, ComfyUI | key auth | Ubuntu 24.04 |
| node_miner | 10.0.0.30 | XMRig miner (pending Ubuntu migration) | key auth (pending) | HiveOS → Ubuntu |
~/.ssh/id_ed25519 on each host# node_primary → node_gpu
rsync -avz --exclude='.env.local' --exclude='.secrets.map' \
/opt/claude-configs/claude-config/ [email protected]:~/claude-configs/claude-config/
ssh [email protected] "cd ~/claude-configs/claude-config && ./scripts/install.sh"
# node_gpu → node_primary (pull changes)
rsync -avz --exclude='.env.local' --exclude='.secrets.map' \
[email protected]:~/claude-configs/claude-config/ /opt/claude-configs/claude-config/
ssh [email protected] "command here" # node_gpu
ssh [email protected] "command here" # node_primary (from node_gpu)
ssh [email protected] "command here" # node_reserve2
for host in 10.0.0.20 10.0.0.10 10.0.0.2 10.0.0.30; do
echo "=== $host ==="
ssh -o ConnectTimeout=3 admin_user@$host "hostname && uptime && free -h | head -2" 2>/dev/null || echo "UNREACHABLE"
done
127.0.0.1 not localhost on all hosts/opt/projects/project-b/ansible/inventory/hosts.yml| Host | sudo | Notes |
|---|---|---|
| node_primary | NOPASSWD (scoped to ~37 commands) | See /etc/sudoers.d/admin_user |
| node_gpu | password required | Use echo "$node_gpu_PASS" | sudo -S or interactive |
| node_reserve2 | password required | Same as node_gpu |
| node_miner | TBD | Not yet configured |