A series of Ansible scripts to manage my infrastructure.
Go to file
Salt e8a69aaaa1 Remove play for Pis
I'm now just tagging those with the home tag and running against them then
2021-11-25 15:53:52 -06:00
.templates Fix template 2020-10-17 00:27:46 -05:00
contrib Move requirements.yml to root 2021-08-01 21:39:36 -05:00
handlers Move handlers to global handlers 2020-12-20 05:02:17 -06:00
inventory Add key for vm-bastion-1.home to adminuser 2021-11-08 11:32:44 -06:00
inventory-hard Overhaul DNS names for machines 2021-10-15 19:03:55 -05:00
playbooks Rename a bunch of minecraft tasks to prevent ambiguity 2021-11-25 13:30:21 -06:00
roles Install qemu-guest-agent on everything 2021-11-08 11:53:36 -06:00
.ansible-lint Reconfigure lint 2021-09-24 21:11:03 -05:00
.gitignore Install Galaxy roles to their own directory so I don't have to maintain a long gitignore 2021-09-18 16:13:20 -05:00
.gitlab-ci.yml Remove play for Pis 2021-11-25 15:53:52 -06:00
ansible.cfg Install Galaxy roles to their own directory so I don't have to maintain a long gitignore 2021-09-18 16:13:20 -05:00
pull.yml Create dedicated ansible-pull playbook with basic maintenance tasks, use it 2021-09-22 07:43:28 -05:00
README.md More readme polish 2021-10-27 20:51:40 -05:00
reboot-home.yml Reconfigure reboot-home.yml 2021-09-14 19:06:46 -05:00
reboot-prod.yml Polish up those reboot playbooks 2021-08-25 12:20:47 -05:00
requirements.yml Add Samba to pi-media-1 2021-10-07 10:39:20 -05:00
site.yml Make a box to move Stalin back home where he belongs 2021-11-19 20:38:20 -06:00

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.