# server-infra Ansible provisioning and deployment for homelab web servers. ## Quick Start ```bash # Install collections (once) ansible-galaxy collection install -r requirements.yml # Bootstrap SSH key to each host (one-time, before Ansible) ssh-copy-id westfarn@10.0.0.77 ssh-copy-id westfarn@10.0.0.176 # First-time only: passwordless sudo on each new host (before first provision) ssh -t westfarn@10.0.0.176 # repeat for each host IP # on the host: echo 'westfarn ALL=(ALL) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/westfarn sudo chmod 440 /etc/sudoers.d/westfarn exit # Test connectivity to one host ansible adama -m ping # Provision one host (dry run first) ./scripts/provision.sh adama --check ./scripts/provision.sh adama # Provision all hosts ./scripts/provision.sh ``` See [IMPLEMENTATION.md](IMPLEMENTATION.md) for full architecture, CI/CD plan, and phase breakdown. ## Servers | Host | IP | Role | |------|-----|------| | adama | 10.0.0.77 | app host | | roslin | 10.0.0.176 | app host | | ai-server-4080 | 10.0.0.128 | control node + act runner |