- Move Simon's architecture documentation into architecture/ (setup, variables, topology, dns, deploy, security, operations plus index and glossary). All cross-repo references point at https://git.digitalboard.ch/Digitalboard/{reference-ansible,dns-zones} via absolute URLs so the docs remain navigable from any context. - Rewrite README.md as a documentation hub: introduction, platform Mermaid overview, comparison of the three repos (docs / digitalboard.core / reference-ansible) and a full table of contents covering architecture, contributing, infrastructure, keycloak, ms-entra and troubleshooting. Addresses the open items from the WKS PoC review (2026-05-26): docs README begrüssungstext + Übersichtsgrafik + Verlinkung der beiden anderen Repos, sowie das Verschieben der Architektur-Doku.
2.6 KiB
2.6 KiB
Setup and repo layout
← Back to Architecture index
1. Repo layout and role provenance
reference-ansible/
├── Makefile # Deploy targets, OIDC login, OBJC fork workaround
├── ansible.cfg # collections_path, remote_user=root, hashi_vault auth_method=token
├── requirements.yml # community.hashi_vault + digitalboard.core (Git)
├── playbooks/site.yml # Play sequence (14 plays, see deploy.md)
├── collections/ # ← installed by `make install`, gitignored
│ └── ansible_collections/
│ └── digitalboard/core/
│ └── roles/ # 🔑 Roles live HERE, NOT in the repo root
└── inventories/
├── demo-gymburgdorf/ # Inventory used throughout this document
├── demo-mbazürich/
├── demo-phbern/
└── vagrant/ # Local test inventory with its own topology
Important: There is no
roles/directory at the repo root. All roles come from thedigitalboard.corecollection (see requirements.yml), installed viamake installinto./collections/. Plays reference them by FQCNdigitalboard.core.<role>.
2. Setup and prerequisites
Tools on the control node:
ansible(Core ≥ 2.15)baoCLI (OpenBao) — e.g.sudo pacman -S openbao python-hvac(Arch) or Homebrewpython-hvac(forcommunity.hashi_vaultlookups)- On macOS:
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES(set in the Makefile; without it Ansible forks crash on Bao lookups)
Initial setup:
git clone <repo>
cd reference-ansible
make install # Galaxy + digitalboard.core into ./collections/
Before every deploy: Bao login in the same shell that will then
run ansible-playbook:
export BAO_ADDR=https://bao.digitalboard.ch
bao login -method=oidc -path=Digitalboard
export VAULT_TOKEN=$(bao print token)
⚠️
make baoon its own is not enough: everymaketarget spawns a new shell, and theVAULT_TOKENexported in there only lives for the duration ofmake baoitself. Either run the three commands above manually, or invokemake bao deploy_site_demo_gymburgdorfas one call — otherwise the deploy has no token.
Smoke test:
make ping_demo # pings all three demo inventories