Jacob Babor
a0c7caf032
Since it skips all external queries if the IP hasn't changed, we can make this much tighter. The only bound is local compute power, and there's plenty of that for something this tiny. |
||
---|---|---|
.templates | ||
contrib | ||
handlers | ||
inventories | ||
playbooks | ||
roles | ||
.ansible-lint | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitmodules | ||
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.