Add option to netbox role for ensuring custom pipeline code for OIDC
group and role mapping is either present or not.
The custom pipeline code is licensed under the Creative Commons: CC
BY-SA 4.0 license.
See:
https://github.com/goauthentik/authentik/blob/main/LICENSE
https://github.com/goauthentik/authentik/blob/main/website/integrations/services/netbox/index.md
https://docs.goauthentik.io/integrations/services/netbox/
5676b1a468
52 lines
2.9 KiB
Markdown
52 lines
2.9 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
ansible-galaxy install -r requirements.yml
|
|
```
|
|
|
|
## 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](https://git.hamburg.ccc.de/CCCHH/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:
|
|
|
|
```bash
|
|
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 Host
|
|
* `resources/chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf`: Liste der Hostnamen um den neuen Host erweitern, die hinter dem Reverse-Proxy stehen
|
|
* `resources/chaosknoten/public-reverse-proxy/nginx/nginx.conf`: Liste der Hostnamen um den neuen Host erweitern, die hinter dem Reverse-Proxy stehen
|
|
* `resources/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](./LICENSE).
|
|
[`custom_pipeline_oidc_group_and_role_mapping.py`](./roles/netbox/files/custom_pipeline_oidc_group_and_role_mapping.py) is licensed under the Creative Commons: CC BY-SA 4.0 license.
|