- ACME via DNS-01 against internal NS (172.16.9.169) with TCP-only + disableANSChecks so the DMZ traefik can issue LE certs without reaching public NS IPs. - Migrate single-domain vars to `*_domains` lists (authentik, nextcloud, collabora, garage_s3) so public + *.int.* SANs share one cert and server-to-server traffic stays in the LAN. - Wire `traefik_dmz_exposed_services` per backend host (application, storage) with explicit `backend_host` overrides pointing at internal FQDNs — DMZ traefik now validates upstream certs against SAN names. - Nextcloud notify_push setup on internal FQDN to avoid DMZ hairpin; collabora WOPI / authentik LDAP outpost wired to *.int.* equivalents. |
||
|---|---|---|
| inventories | ||
| playbooks | ||
| .gitignore | ||
| ansible.cfg | ||
| ARCHITECTURE.md | ||
| Makefile | ||
| README.md | ||
| requirements.yml | ||
| Vagrantfile | ||
reference-ansible
Ansible-Setup für Demo-Deployments (demo-gymburgdorf,
demo-mbazürich, demo-phbern) und lokale Vagrant-Tests. Rollen
kommen aus der Collection
digitalboard.core
(via requirements.yml).
Architektur, Variablen-Hierarchie, Service-Topologie und der Walkthrough zum Aufsetzen neuer Mandanten: siehe ARCHITECTURE.md.
Voraussetzungen
ansible(Core ≥ 2.15)baoCLI (OpenBao) — z. B.sudo pacman -S openbao python-hvac(Arch) oder Homebrewpython-hvac(fürcommunity.hashi_vaultLookups)
Setup
make install # installiert digitalboard.core + community.hashi_vault nach ./collections/
Secrets (OpenBao)
Vor jedem Deploy in derselben Shell authentisieren:
export BAO_ADDR=https://bao.digitalboard.ch
bao login -method=oidc -path=Digitalboard
export VAULT_TOKEN=$(bao print token)
⚠️
make baoallein reicht nicht — jedesmake-Target läuft in einer neuen Shell, der dort gesetzteVAULT_TOKENlebt nur währendmake baoselbst. Entweder die drei Befehle oben manuell im Shell ausführen odermake bao deploy_site_demo_gymburgdorfals einen Aufruf chainen.
Deploy
make ping_demo # Smoke-Test gegen alle Demo-Inventories
make deploy_site_demo_gymburgdorf # einzelnes Demo-Site
make deploy_site_demo # alle drei Demo-Sites
Auf macOS setzt das Makefile zusätzlich
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES — ohne diese Env-Var
crashen Ansible-Forks beim ersten community.hashi_vault-Lookup.
Inventories
| Inventory | Zweck |
|---|---|
inventories/demo-gymburgdorf/ |
Demo-Mandant — als Vorlage für neue Mandanten empfohlen, siehe ARCHITECTURE.md § 10 |
inventories/demo-mbazürich/ |
Demo-Mandant |
inventories/demo-phbern/ |
Demo-Mandant |
inventories/vagrant/ |
lokale Test-VMs; inkompatible Gruppen-Topologie zu den Demo-Inventories |