62 lines
2.1 KiB
Markdown
62 lines
2.1 KiB
Markdown
# Salt's Ansible Repository
|
|
|
|
Useful for management across all of 9iron, thefuck, and desu.
|
|
|
|
## TODO
|
|
|
|
This branch is kinda-sorta a port of master, so it still needs to reach some form of feature parity with it. Namely:
|
|
|
|
* Pleroma (Well shit, now that @p's acknowledged me and @sjw's following me, I can't really put it down, can I?)
|
|
|
|
* Matrix(? Do I still want to keep this around? Is there a better alternative? Will my friends even use it?)
|
|
|
|
* Port over fedi1 (Requires resolution of the above two issues)
|
|
|
|
* Port over configs for Nextcloud on web1.9iron.club
|
|
|
|
* Monitoring (Doesn't necessarily have to be grafana)
|
|
|
|
## Initialization
|
|
|
|
Clone the repo, `cd` in. Done.
|
|
|
|
## Deployment
|
|
|
|
Adding a new server will require the following be fulfilled:
|
|
|
|
* The server is accessible from the Ansible host;
|
|
|
|
* 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 added to `inventory/hosts.yml` in an appropriate place;
|
|
|
|
* DNS records for the machine are set; and
|
|
|
|
* The server is running Ubuntu 20.04 or greater
|
|
|
|
From there, running the playbook `site.yml` should get the machine up to snuff. To automate the host-local steps, use the script file `contrib/bootstrap.sh`.
|
|
|
|
## Ad-Hoc Commands
|
|
|
|
The inventory is configured to allow for ad-hoc commands with very little fuss. For example:
|
|
|
|
```bash
|
|
ansible -m shell -a 'systemctl is-failed ansible-pull.service' all
|
|
```
|
|
|
|
These commands must be run from the root of the repo.
|
|
|
|
## Ansible Galaxy
|
|
|
|
Several of the roles in this repository are sourced from Ansible Galaxy. They're mirrored here for both easy compatibility with `ansible-pull` and in case the sources go down. Despite this, they're still managed in `roles/requirements.yml` for ease of management, source tracking, and updating. Any forks or deviations from these sources should be thoroughly documented.
|
|
|
|
Should you need to reinitialize them, the following command (run from the root of the repo) will initialize all Galaxy assets:
|
|
|
|
```
|
|
ansible-galaxy install -r roles/requirements.yml
|
|
```
|