| Commit message (Collapse) | Author | Age | Lines |
| ... | |
| | |
|
| | |
|
| |
|
|
| |
Makes all role names begin with a capital letter in Ansible roles
|
| |
|
|
| |
Allow HTTP traffic in addition to HTTPS by switching to the "Nginx Full" ruleset
|
| | |
|
| |
|
|
|
|
|
|
| |
Update the forced command in authorized_keys to reload NGINX after
termination of the rsync session.
This ensures that after key updates complete they will be reloaded and
pushed to NGINX.
|
| |
|
|
|
|
|
|
|
|
| |
Add a certbot role that generates a certificate on the first host in the
NGINX group and then deploys it to all other NGINX hosts. As of now we
generate wildcard certs for pythondiscord.com and pydis.wtf.
A unique SSH key is generated for each replica host which is restricted
for security purposes. A deploy hook is installed to push renewals to
other hosts.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
In order to add moon phase support on the dark theme picker later, we
need to configure the GeoIP module included with nginx.
On Debian, the `nginx` package that we install installs `nginx-core`,
which in turn installs the GeoIP module and even a GeoIP country
database for us.
|
| |
|
|
| |
To start off, we are only scraping Prometheus itself and node-exporter.
|
| | |
|
| |
|
| |
Co-authored-by: ChrisJL <[email protected]>
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Includes documented roles for:
- installing nginx & configuring handlers
- installing the mTLS certificate for Cloudflare
- installing firewall rules
They are kept separate for now, for composability.
Closes #22.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
This PR adds a new podman role, see #18.
The playbook is merged into sections for each group of hosts that we
want to deploy to. To limit by role now, use tags, such as `-t
role::podman`.
|
| |
|
|
| |
This will allow us to add more key: value pairs in future, without having to update it in two places
|
| | |
|
| | |
|
| |
|
|
| |
.
|
| | |
|
| |
|
|
|
|
|
|
| |
See https://github.com/ansible/ansible/issues/16048#issuecomment-229012509 for why we do this.
The drawback of this is that it is incompatible with sudo's requiretty setting (or su, which always requires a tty). This is because of a quirk of the Python interpreter, which enters interactive mode automatically when you pipe in data from a (pseudo) tty.
However, modern Debian, which we run, comes with requiretty disabled.
|
| | |
|
| | |
|
| |
|
|
|
| |
Ansible relies on SSH, so it's good to ensure that's allowed before
blocking everything else.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
The lookup('dig', '...') function requires dnspython to be installed on
the local machine so that queries can be processed. We're now using this
to resolve the FQDNs of machines to IPs to inject into /etc/hosts.
|
| | |
|
| | |
|
| |
|
|
| |
Co-authored-by: ChrisJL <[email protected]>
Co-authored-by: Chris Lovering <[email protected]>
|
| |\
| |
| | |
Correct GitHub workflow step names
|
| |/ |
|
| |\
| |
| | |
Ansible-lint in pre-commit and dep caching in workflows
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
.
|
| |/ |
|
| |\ |
|
| | |
| |
| |
| | |
This embed webhooks a summary of PR workflows to the devops channel
|
| |/
|
|
| |
This is so that it is available to other flows to parse, such as the status embed flow
|