.forgejo/workflows | ||
.vscode | ||
collections | ||
docs | ||
inventories | ||
playbooks | ||
resources | ||
roles | ||
.ansible-lint | ||
.editorconfig | ||
.gitignore | ||
.sops.yaml | ||
.yamllint.yaml | ||
ansible.cfg | ||
LICENSE | ||
README.md | ||
requirements.yml |
CCCHH Ansible Repository
Folgende Geräte und Server werden duch dieses Ansible Repository verwaltet:
- Diverse VMs auf dem ThinkCCCluster
- Diverse VMs auf dem Chaosknoten
Host-spezifische Konfigurationsdateien liegen unter resources/
und werden für jeweils über eine host_vars
-Datei im Inventory geladen.
Galaxy-Collections und -Rollen installieren
Für einige Aspekte verwenden wir Rollen aus Ansible Galaxy. Die müssen zunächst installiert werden:
ansible-galaxy install -r requirements.yml
Secrets
Generally try to avoid secrets (e.g. use SSH keys instead of passwords).
Because secrets are nonetheless needed sometimes, we use SOPS to securely store secrets in this repository.
SOPS encrypts secrets according to "creation rules" which are defined in the .sops.yaml
.
Generally all secrets get encrypted for all GPG-keys of all members of the infrastructure team.
Ansible then has access to the secrets with the help of the community.sops.sops
vars plugin, which is configured in this repository.
A local Ansible run then uses the locally available GPG-key to decrypt the secrets.
For a tutorial on how to set up secrets using SOPS for a new host, see Setting Up Secrets Using SOPS for a New Host.
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 auf dem Chaosknoten hinter dem public-reverse-proxy
. Der Service-Name service.hamburg.ccc.de
sollte ein CNAME für public-reverse-proxy.hamburg.ccc.de
und die Service-VM unter service-intern.hamburg.ccc.de
mit einer 172.31.17.x
-Adresse erreichbar sein.
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 Hostresources/chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf
: Liste der Hostnamen um den neuen Host erweitern, die hinter dem Reverse-Proxy stehenresources/chaosknoten/public-reverse-proxy/nginx/nginx.conf
: Liste der Hostnamen um den neuen Host erweitern, die hinter dem Reverse-Proxy stehenresources/chaosknoten/
host/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
resources/chaosknoten/
host/docker_compose/compose.yaml.j2
: Config für Docker Compose (wenn verwendet)
License
This CCCHH ansible-ccchh repository is licensed under the MIT License.
custom_pipeline_oidc_group_and_role_mapping.py
is licensed under the Creative Commons: CC BY-SA 4.0 license.