.templates | ||
contrib | ||
handlers | ||
inventory | ||
inventory-hard | ||
playbooks | ||
roles | ||
.ansible-lint | ||
.gitignore | ||
.gitlab-ci.yml | ||
ansible.cfg | ||
pull.yml | ||
README.md | ||
reboot-home.yml | ||
reboot-prod.yml | ||
requirements.yml | ||
site.yml |
Salt's Ansible Repository
Useful for management across all of 9iron, thefuck, and desu.
Initialization
- Clone
ansible-galaxy install -r requirements.yml
For quick bootstrapping of tools and libraries used in this repo, see rehashedsalt/ansible-env. I use that exact image for CI/CD.
Deployment
Linux Machines
Each Linux machine will require the following to be fulfilled for Ansible to access it:
-
The server has a user named
ansible
which:-
Accepts the public key located in
contrib/desu.pub
; and -
Has passwordless sudo capabilities as root
-
-
The server is running Ubuntu 20.04 or greater
To automate these host-local steps, use the script file contrib/bootstrap.sh
.
Windows Machines
lol don't
All Machines
Adding a new server will require these:
-
The server is accessible from the Ansible host;
-
The server has been added to NetBox OR in
inventory-hard
-
DNS records for the machine are set; and
From there, running the playbook site.yml
should get the machine up to snuff.
Zerotier
A lot of my home-network side of things is connected together via ZeroTier; initial deployment/repairs may require specifying an ansible_host
for the inventory item in question to connect to it locally. Subsequent plays will require connectivity to my home ZeroTier network.
Cloud-managed devices require no such workarounds.