Ansible configuration for the Netz39 infrastructure
Find a file
Alexander Dahl bd8500bf3a 🔧 prosody: Rework configuration for prosody v0.11
The previous configuration was copied over from helium.n39.eu for
prosody v0.9 and did only work more or less by accident.  The new
configuration was done based on the upstream example configuration.

Some modules we used for 0.9 were replaced, some are not necessary
anymore, some modules are new for 0.11.  The list was reviewed carefully
on a test host, and proved to work for several months there.

The VirtualHost 'localhost' is kept, but moved from a separate
configuration file to the main configuration, because it's only one line
and it's part of the example config anyways.
2022-12-22 11:19:33 +01:00
files 🔧 prosody: Rework configuration for prosody v0.11 2022-12-22 11:19:33 +01:00
group_vars 🔧 Move docker_setup role application to group playbook 2022-12-21 19:00:22 +01:00
host_vars 🔧 Move docker_setup role application to group playbook 2022-12-21 19:00:22 +01:00
roles 🐢 Show some appreciation 2022-11-22 18:49:39 +01:00
templates 🔧 prosody: Rework configuration for prosody v0.11 2022-12-22 11:19:33 +01:00
.editorconfig Add EditorConfig configuration file 2022-01-08 13:25:36 +01:00
.mailmap 🔧 mailmap: Update with new mail addresses 2022-12-21 06:47:51 +01:00
.yamllint 🚨 yamllint: Ignore line-length warnings 2022-11-18 08:58:19 +01:00
ansible.cfg feat: add nicer rendering to ansible config 2022-10-24 16:33:16 +00:00
configure-grafana.yml update requirements.yml to correctly install collection 2022-11-12 15:31:51 +01:00
group-all.yml 🐛 Fix origin for unattended-upgrades 2022-11-24 16:03:02 +01:00
group-docker_host.yml 🔧 Move docker_setup role application to group playbook 2022-12-21 19:00:22 +01:00
group-proxmox.yml 🚚 Rename group playbooks to group-* 2022-11-04 22:35:41 +01:00
host-beaker.yml feat: add admins to proxmox user permissions file 2022-11-11 14:56:02 +01:00
host-hobbes.yml Setup grafana kiosk on hobbes.n39.eu 2022-11-13 17:13:34 +01:00
host-holmium.yml add https ingress for grafana 2022-11-11 14:52:37 +01:00
host-krypton.yml 🔧 Move docker_setup role application to group playbook 2022-12-21 19:00:22 +01:00
host-oganesson.yml 🚚 Rename host playbooks to host-* 2022-11-04 22:34:37 +01:00
host-platon.yml 🔨 Copy wiringpi-latest.deb from local repository 2022-11-22 14:44:30 +01:00
host-pottwal.yml 🔧 prosody: Rework configuration for prosody v0.11 2022-12-22 11:19:33 +01:00
host-radon.yml 🔧 Move docker_setup role application to group playbook 2022-12-21 19:00:22 +01:00
host-tau.yml 🔧 Move docker_setup role application to group playbook 2022-12-21 19:00:22 +01:00
host-unicorn.yml 🔧 Move docker_setup role application to group playbook 2022-12-21 19:00:22 +01:00
inventory.yml 🔧 inventory: Introduce new group 'docker_host' 2022-12-21 18:54:51 +01:00
main.yml 🔧 Move docker_setup role application to group playbook 2022-12-21 19:00:22 +01:00
README.md Merge pull request 'docs: add command to verify changes' (!112) from add-verification-docs into master 2022-11-12 15:43:51 +01:00
requirements.yml update requirements.yml to correctly install collection 2022-11-12 15:31:51 +01:00
setup-ssh.yml 🚨 Fix new-line-at-end-of-file warnings 2022-11-18 08:50:33 +01:00

Ansible configuration for the Netz39 infrastructure

This call lists all hosts defined in the inventory:

ansible all --list-hosts

Setup

ansible-galaxy install -r requirements.yml

Setup SSH Access to hosts

LOGUSER=<loguser>
SSH_KEY=<absolute/path/to/ssh/private/key>
ansible-playbook setup-ssh.yml --ask-vault-pass -e "setup_ssh_logname=$LOGUSER" -e "setup_ssh_key=$SSH_KEY"

Edit vault encrypted vars files

ansible-vault edit group_vars/all/vault

Call with

ansible-playbook --ask-vault-pass main.yml

You need to provide a user with sudo rights and the vault password.

Verify Changes

ansible-lint main.yml
ansible-playbook --ask-vault-pass main.yml --check --diff

HTTPS ingress configuration

HTTPS ingress is controlled by the server holmium and forwarded to the configured servers.

To set up a new HTTPS vhost, the following steps need to be taken:

  1. Select a domain (for internal services we use sub-domains of .n39.eu).
  2. Create an external CNAME from this domain to dyndns.n39.eu.
  3. Create an internal DNS entry in the Descartes DNS config. This is usually an alias on an existing server.
  4. Add the entry to the holmium playbook.
  5. Set up Dehydrated and vhost on the target host, e.g. using setup_http_site_proxy.

Do not forget to execute all playbooks with relevant changes.