ansible/README.md

64 lines
2.1 KiB
Markdown
Raw Normal View History

2020-10-17 00:21:57 -05:00
# Salt's Ansible Repository
Useful for management across all of 9iron, thefuck, and desu.
2020-11-01 05:00:27 -06:00
## TODO
This branch is kinda-sorta a port of master, so it still needs to reach some form of feature parity with it. Namely:
2020-11-07 00:47:18 -06:00
* Pleroma(? How about we just move instances? Outer heaven? Wherever the hell a1ba sits? SPC?)
2020-11-01 05:00:27 -06:00
2020-11-07 00:47:18 -06:00
* Matrix(? Do I still want to keep this around? Is there a better alternative? Will my friends even use it?)
2020-11-01 05:00:27 -06:00
* Basic git cloning for websites
* My inane desktop setups
2020-11-04 20:57:57 -06:00
* Which are part of the way there, mostly just need some off-the-wall stuff
2020-11-01 05:00:27 -06:00
* Backups
2020-11-01 05:28:44 -06:00
* Duplicity?
* Just Linode backups? Would also have to do nightly DB dumps
* More homebrew bullshit?
2020-11-01 05:00:27 -06:00
* Monitoring (Doesn't necessarily have to be grafana)
2020-11-07 00:47:18 -06:00
* Forge server deployment? Terraria? What do I do about all these gameservers? Fork 'em into their own roles? I imagine Paper's already got something set up, too.
2020-11-01 05:00:27 -06:00
2020-10-28 22:42:11 -05:00
## Initialization
2020-11-07 00:47:18 -06:00
Clone the repo, `cd` in. Done.
2020-10-28 22:42:11 -05:00
2020-10-17 00:21:57 -05:00
## 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
2020-10-17 00:21:57 -05:00
* The server is running Ubuntu 18.04 or greater (20.04 recommended)
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`.
2020-11-07 00:47:18 -06:00
## 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
```