A series of Ansible scripts to manage my infrastructure.
Go to file
Salt e1ed70b055 Reorganize inventory
This fixes an issue with localhost always becoming during one task which is delegated to localhost that explicitly specifes 'become: false'. Thanks, Ansible.
2021-01-18 05:18:39 -06:00
.templates Fix template 2020-10-17 00:27:46 -05:00
contrib Working on basics 2020-10-17 00:21:57 -05:00
handlers Move handlers to global handlers 2020-12-20 05:02:17 -06:00
inventory Reorganize inventory 2021-01-18 05:18:39 -06:00
playbooks Fix perms on playbook vars 2021-01-18 05:09:40 -06:00
roles Add a shitty motd 2021-01-17 00:53:48 -06:00
.gitignore Remove build directory from gitignore 2020-02-26 18:56:29 -06:00
.gitmodules Add a dysfunctional terraria role 2021-01-09 22:42:36 -06:00
ansible.cfg Working on basics 2020-10-17 00:21:57 -05:00
README.md Check an item off the todo list 2021-01-10 20:06:46 -06:00
reboot.yml Fix typo in reboot.yml 2020-12-30 16:56:59 -06:00
site.yml Always become 2021-01-18 05:08:43 -06:00

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?)

  • 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.

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