2022-04-18 11:44:42 -05:00
# Salt's Ansible Repository
2020-10-17 00:21:57 -05:00
2022-04-18 11:44:42 -05:00
Useful for management across all of 9iron, thefuck, and desu.
2021-09-24 21:59:12 -05:00
2020-10-28 22:42:11 -05:00
## Initialization
2021-09-18 16:44:56 -05:00
* Clone
* `ansible-galaxy install -r requirements.yml`
2020-10-28 22:42:11 -05:00
2021-09-24 21:59:12 -05:00
For quick bootstrapping of tools and libraries used in this repo, see [rehashedsalt/ansible-env ](https://gitlab.com/rehashedsalt/docker-ansible-env ). I use that exact image for CI/CD.
2022-04-23 11:23:36 -05:00
I use ara to record Ansible plays. If your environment has it installed, source the script in `contrib/ara.sh` to configure your environment properly.
2022-04-18 11:44:42 -05:00
## Deployment
2020-10-17 00:21:57 -05:00
2021-10-27 20:49:57 -05:00
### Linux Machines
2020-10-17 00:21:57 -05:00
2021-10-27 20:51:40 -05:00
Each Linux machine will require the following to be fulfilled for Ansible to access it:
2020-10-17 00:21:57 -05:00
* The server has a user named `ansible` which:
* Accepts the public key located in `contrib/desu.pub` ; and
* Has passwordless sudo capabilities as root
2021-10-27 20:51:40 -05:00
* The server is running Ubuntu 20.04 or greater
To automate these host-local steps, use the script file `contrib/bootstrap.sh` .
2022-04-18 11:44:42 -05:00
### Windows Machines
2021-10-27 20:49:57 -05:00
2022-04-18 11:44:42 -05:00
lol don't
2021-10-27 20:49:57 -05:00
2022-04-18 11:44:42 -05:00
### All Machines
2021-10-27 20:49:57 -05:00
2022-04-18 11:44:42 -05:00
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.
2020-11-07 00:47:18 -06:00
2021-02-19 02:15:43 -06:00
## Zerotier
2022-04-18 11:44:42 -05:00
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.