# 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`](https://git.digitalboard.ch/Digitalboard/digitalboard.core) (via [requirements.yml](requirements.yml)). > Architektur, Variablen-Hierarchie, Service-Topologie und der > Walkthrough zum Aufsetzen neuer Mandanten: siehe > **[ARCHITECTURE.md](ARCHITECTURE.md)**. ## Voraussetzungen - `ansible` (Core ≥ 2.15) - `bao` CLI ([OpenBao](https://openbao.org/)) — z. B. `sudo pacman -S openbao python-hvac` (Arch) oder Homebrew - `python-hvac` (für `community.hashi_vault` Lookups) ## Setup ```bash make install # installiert digitalboard.core + community.hashi_vault nach ./collections/ ``` ## Secrets (OpenBao) Vor jedem Deploy in **derselben Shell** authentisieren: ```bash export BAO_ADDR=https://bao.digitalboard.ch bao login -method=oidc -path=Digitalboard export VAULT_TOKEN=$(bao print token) ``` > ⚠️ `make bao` allein reicht **nicht** — jedes `make`-Target läuft in > einer neuen Shell, der dort gesetzte `VAULT_TOKEN` lebt nur während > `make bao` selbst. Entweder die drei Befehle oben manuell im Shell > ausführen oder `make bao deploy_site_demo_gymburgdorf` als **einen** > Aufruf chainen. ## Deploy ```bash 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](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/`](inventories/demo-gymburgdorf/) | Demo-Mandant — als Vorlage für neue Mandanten empfohlen, siehe [ARCHITECTURE.md § 10](ARCHITECTURE.md#10-walkthrough-neuen-demo-mandanten-anlegen) | | [`inventories/demo-mbazürich/`](inventories/demo-mbazürich/) | Demo-Mandant | | [`inventories/demo-phbern/`](inventories/demo-phbern/) | Demo-Mandant | | [`inventories/vagrant/`](inventories/vagrant/) | lokale Test-VMs; **inkompatible Gruppen-Topologie** zu den Demo-Inventories |