Ansible playbooks and other admin tools/docs for maintaining the #! network.
- Recent version of Ansible
- Local #! pass database
- User with sudo access on all servers
There are 3 playbooks present here:
shell.yml
is used to synchronise the configuration (incl. installed packages) across the shell servers.credentials.yml
is used to deploy the admin's SSH keys across all servers:- admins can login as
root
on the shell servers; - they can login as
core
on the CoreOS servers.
- admins can login as
coreos.yml
performs CoreOS-specific tasks. Currently, it only bootstraps tha Ansible agent's dependencies.
-
Connect to any shell server as yourself
ssh you@ny1.hashbang.sh
-
Install Package
sudo apt-get install some-package
-
Deploy changes on other servers
The configuration changes (including
packages.txt
) should have been auto-pushed toshell-etc
. Now, you only need to re-sync the servers:ansible-playbook --ask-become-pass sync.yml
-
Connect to any shell server as yourself
ssh you@ny1.hashbang.sh
-
Make and test any desired changes to files in /etc
sudo vim /etc/some-config/file
-
Commit changes via etckeeper
sudo etckeeper commit -m 'updated some-config with some change'
-
Run Ansible playbook "sync"
ansible-playbook --ask-become-pass -u your-sudo-user sync.yml