A series of Ansible scripts to manage my infrastructure.
Go to file
Salt d8fe08f879 Put everything back in site.yml again
Originally, I had broken out the other site_*.yml files in an attempt to
organize the individual portions of site.yml out, as it was growing long.
But now I have a solution to its length and its consistency that doesn't
involve using multiple playbooks, so I may as well merge everything back
in again.
2022-04-18 11:23:35 -05: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
inventories Modularize the heck out of our inventories 2022-03-19 13:05:18 -05:00
playbooks Put everything back in site.yml again 2022-04-18 11:23:35 -05:00
roles Stop disabling a oneshot service 2022-04-15 22:27:24 -05:00
.ansible-lint Add some more exceptions to the linter 2022-03-24 11:57:26 -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 Modify GitLab CI to use the no-auto variant of the prod inventory 2022-03-19 13:22:28 -05:00
.gitmodules Add checks for the R720's thermal monitors, also add those thermal monitors 2022-01-10 22:14:07 -06:00
ansible.cfg Modularize the heck out of our inventories 2022-03-19 13:05:18 -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 avahi to the management network 2022-02-13 13:03:41 -06:00
site.yml Put everything back in site.yml again 2022-04-18 11:23:35 -05: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.