Ansible Playbooks and related configuration for CCCHH infrastructure
Find a file
June 81c8bfe16b Actually keep using $uri for DokuWiki stuff since otherwise it breaks
To be investigated if the $uri issue also applies for try_files.
2024-01-22 22:41:12 +01:00
.vscode Add redhat.ansible extension to VSCode Workspace Recommendations 2023-07-30 19:30:06 +02:00
collections Use the .yaml file extension for all YAML files 2023-05-08 19:55:08 +02:00
inventories Migrate to wiki.hamburg.ccc.de 2024-01-22 22:02:33 +01:00
playbooks Actually keep using $uri for DokuWiki stuff since otherwise it breaks 2024-01-22 22:41:12 +01:00
ansible.cfg Provide secrets for keycloak VM from pass 2023-07-29 00:59:01 +02:00
LICENSE Add LICENSE 2023-04-15 14:28:45 +00:00
README.md Document restart issue 2023-12-19 23:20:03 +01:00

CCCHH Ansible Repository

Folgende Geräte und Server werden duch dieses Ansible Repository verwaltet:

  • Diverse VMs auf dem ThinkCCCluster

Die Konfigurationsdateien liegen unter playbooks/files/configs bzw. playbooks/templates/configs und werden für Hosts jeweils in einer host_vars-Datei im Inventory geladen.

Secrets

Grundsätzlich sollten Secrets vermieden werden. (Also z.B.: Nutze SSH Keys statt Passwort.)

Da Secrets aber durchaus doch gebraucht werden, werden diese dann in diesem Repo direkt aus dem password-store (meist aus einem Sub-Eintrag des noc/ Ordners) geladen. Dies geschieht mit Hilfe des community.general.passwordstore lookup Plugins.

Playbook nur für einzelne Hosts ausführen

Ein paar der Hosts haben den selben Namen, was es etwas schwieriger macht, das Playbook nur für einen der Hosts auszuführen, z. B. public-reverse-proxy. Die Kombination aus --inventory und --limit führt zum Erfolg:

ansible-playbook playbooks/deploy.yaml --inventory inventories/chaosknoten/hosts.yaml --limit public-reverse-proxy

Neuen Web-Service hinzufügen

Wir deployen Web-Services hinter dem public-reverse-proxy. Der Service-Name service.hamburg.ccc.de ist ein CNAME für public-reverse-proxy.hamburg.ccc.de, und die Service-VM ist unter service-intern.hamburg.ccc.de mit einer 172.31.17.x-Adresse erreichbar.

Im Ansible-Repo müssen diese Sachen hinzugefügt werden:

  • inventories/chaosknoten/hosts.yaml:
    • SSH-Config für die neue VM unter all/children/debian_12/hosts
    • Einträge für die Rollen, die dieser Host haben soll, min. certbot_hosts, nginx_hosts, ggf. docker_compose_hosts
  • inventories/chaosknoten/host_vars/host.yaml: config vars für den neuen Host
  • playbooks/files/chaosknoten/configs/public-reverse-proxy/nginx/acme_challenge.conf: Liste der Hostnamen um den neuen Host erweitern, die hinter dem Reverse-Proxy stehen
  • playbooks/files/chaosknoten/configs/public-reverse-proxy/nginx/nginx.conf: Liste der Hostnamen um den neuen Host erweitern, die hinter dem Reverse-Proxy stehen
  • playbooks/files/chaosknoten/configs/cloud/nginx/host.hamburg.ccc.de.conf: Server auf dem Service-Host
    • Individuelle Config für den Service. Wenn Docker Compose, hier weiterleiten auf den eigentlichen Dienst in Compose.
    • Cert-Dateinamen anpassen
  • playbooks/templates/chaosknoten/configs/host/compose.yaml.j2: Config für Docker Compose (wenn verwendet)

ACHTUNG manchmal startet der nginx auf public-reverse-proxy nicht automatisch neu, wenn man etwas an der Config ändert (z. B. einen neuen Host einträgt). Dann muss man das mit systemctl restart nginx von Hand machen.