51 lines
1.6 KiB
Markdown
51 lines
1.6 KiB
Markdown
# 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](https://gitlab.com/rehashedsalt/docker-ansible-env). I use that exact image for CI/CD.
|
|
|
|
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.
|
|
|
|
## 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.
|