summaryrefslogtreecommitdiff
path: root/playbook.yaml
AgeCommit message (Collapse)Author
2024-08-19Enable roster groupsMatthew Fennell
This is useful for two reasons: * To test clients that render roster groups provided by the server * To evaluate whether it is worth enabling this flag in production
2024-08-19Ensure systmed-timesyncd is installedMatthew Fennell
This is not always installed by default on all hosts. We encountered an issue where this package was not installed, and it was causing the system time to gradually drift.
2024-07-27Do not manage CAA records in the playbookMatthew Fennell
These vary significantly from deployment to deployment, and running this playbook previously caused issues on fennell.dev deployments, where I need to be able to deploy certificates by other means.
2024-05-23Add anonymous subdomain when requestedMatthew Fennell
This will primiarly be used for motoristic.
2024-05-15Delegate certificate management to acme projectMatthew Fennell
Although this playbook originally installed certificates to the server, this turned out to be a bad idea, because the playbook could in some circumstances (if the acme project had already renewed the certs) have installed a different certificate to the remote server. By delgating responsibility to the acme server fully, this should prevent any such issues, as well as potential DANE misconfigurations.
2024-04-04Bring repo up-to-date with current prod configMatthew Fennell
2024-03-03Do not create AAAA record during the playbookMatthew Fennell
The AAAA record should be created by the libcloud bootstrap process instead, so that the playbook can ssh using the hostname as normal.
2024-03-03Do not delete public keys from root accountMatthew Fennell
The playbook initially deleted the public keys from root's authorized_keys after copying them to admin, but this prevents the playbook from running the "Ensure admin account is created" commands in subsequent runs. Therefore, we shouldn't delete them. In the long term, I would like to find a way to only attempt to run the root commands if it's not possible to ssh as admin. This is as I don't like the idea of root having direct ssh access.
2024-03-03Ensure non-root admin account is createdMatthew Fennell
Initially, I used AWS Lightsail for deployment. However, I am now using Vultr via libcloud, which does not create a user named "admin" by default. Therefore, this commit aims to ensure that such an account is created, even on providers that don't create it by default.
2024-02-28Register DNS records via deSECMatthew Fennell
I have moved DNS configuration for all of my servers to deSEC, thanks to its easy-to-use REST interface. This allows me to configure DNS records as part of the playbook, instead of having to add them manually for each new server I'd like to create. The consequence of this is that the playbook now has a hard dependency on deSEC.
2024-02-28Add whitespace between playbook tasksMatthew Fennell
This makes it easier to navigate through the playbook, and jump to the part that you're interested in editing, using the { and } keys in vim.
2024-02-28Remove certificate renewal steps from playbookMatthew Fennell
I would like certificate renewal to be handled centrally across all of my deployed services. Therefore, responsibility for certificate renewal no longer belongs in this playbook.
2024-02-08Use apt module instead of packageMatthew Fennell
I tried to create a fresh nonprod deployment today on continuous.staging.nonprod.chat.fennell.dev. However, the first step failed because the apt command could not find borgmatic. The solution was to run apt update before running apt install. Unfortunately, ansible's package module does not have an option for this. Therefore, although I would have liked to stick with "package" (to keep it general and away from the specific of using "apt" as a package manager), I have switched back to using the apt module so that the step can succeed without any manual intervention on fresh install.
2024-02-05Bulk update with all changes currently in prodMatthew Fennell
2024-01-26Add support for file uploadMatthew Fennell
This commit adds support for XEPS 0065 and 0365 - i.e. sending files from one account to another.
2024-01-08Enable XEP-0065Matthew Fennell
This commit enabled SOCKS5 Bytestreams, allowing users to send and receive files.
2024-01-08Become root during package installationMatthew Fennell
Previously, the playbook would fail if it needed to install packages, as this (in the case of apt) requires sudo.
2024-01-08Ensure borgmatic config directory existsMatthew Fennell
This directory is created by a user command, not as part of the package installation process. Therefore, it may not exist if the user has not yet configured borgmatic on the host.
2024-01-08Simplify validation of borgmatic fileMatthew Fennell
This commit uses the simpler, more standard validate feature of template instead of triggering a handler. The feature is there - may as well use it!
2024-01-08Install borgmatic in the playbookMatthew Fennell
This commit adds borgmatic, to provide automated backups.
2024-01-07Assign prosody config files to prosody groupMatthew Fennell
The playbook previosuly assigned the prosody config files to the root group. With root as the owner, and permissions as 0640, this meant that prosody was not able to read the files. This commit fixes this.
2024-01-07Ensure certificates are installedMatthew Fennell
This commit ensures certificates are installed, via Lets Encrypt.
2024-01-07Only reload prosody if its configuration changesMatthew Fennell
There is no sense reloading prosody if none of its configuration files have changed. Therefore, this commit moves the reload to a handler that only gets triggered in this situation.
2024-01-07Add virtual host specific configMatthew Fennell
This commit uses the new per-host virtual_host variable to create the necessary prosody host-specific cfg files.
2024-01-07Install prosody config fileMatthew Fennell
This commit adds a prosody configuration file that can be installed on the remote hosts. This lets me make the configuration locally, deploy it to staging environments, and then to prod, without having to directly login to the hosts.
2024-01-07Open ports for OpenSSH, WWW and XMPPMatthew Fennell
This commit enables the necessary ports for XMPP, web hosting (to allow certbot to renew automatically) and SSH.
2024-01-07Add initial playbookMatthew Fennell
At present, the playbook simply ensures that all required packages are installed.