2.6 KiB
2.6 KiB
Architecture
High-level map (modules and relationships)
-
Inventory:
inventories/production/hosts: groups likedev,desktop,services,qa,ansible,tailscale,localgroup_vars/all/main.yml: shared configuration (includingapp_projects)group_vars/all/vault.yml: encrypted secrets (Ansible Vault)host_vars/*: per-host overrides (some encrypted)
-
Playbooks:
playbooks/playbooks/site.yml: dispatcher (imports other playbooks)playbooks/servers.yml: baseline for servers (services:qa:ansible:tailscale)playbooks/workstations.yml: baseline fordev:desktop:local+ desktop apps fordesktopgroup onlyplaybooks/development.yml: dev machines baseline (no desktop apps)playbooks/local.yml: localhost baseline (no desktop apps)playbooks/app/*: Proxmox app-project provisioning/configuration suite
-
Roles:
roles/*- Baseline/security:
base,user,ssh - Dev tooling:
development,datascience,docker - Shell:
shell(minimal aliases-only) - Monitoring split:
monitoring_server(fail2ban + sysstat)monitoring_desktop(desktop-oriented monitoring tooling)
- Proxmox guests:
proxmox_vm - App guest configuration:
base_os,app_setup,pote
- Baseline/security:
Proxmox “app projects” flow (data model + execution)
-
Data model:
app_projectsininventories/production/group_vars/all/main.yml- Defines projects and per-env (
dev/qa/prod) guest parameters (ip, branch, vmid, etc.)
- Defines projects and per-env (
-
Provision:
playbooks/app/provision_vms.yml- Loops
app_projects→ envs → callsrole: proxmox_vmto create LXC guests - Adds dynamic inventory groups:
app_allapp_<project>_allapp_<project>_<env>
- Loops
-
Configure:
playbooks/app/configure_app.yml- Builds a dynamic inventory from
app_projects(so it can run standalone) - Applies:
role: base_os(baseline OS for app guests)role: app_setup(deploy + systemd) orrole: potefor the POTE project
- Builds a dynamic inventory from
Boundaries
- Inventory/vars define desired state and credentials.
- Playbooks define “what path to run” (role ordering, target groups, tags).
- Roles implement actual host configuration (idempotent tasks, handlers).
External dependencies
- Ansible collections:
collections/requirements.yml - Ansible Vault:
inventories/production/group_vars/all/vault.yml - Proxmox API: used by
community.proxmox.*modules in provisioning
References
- Playbook execution graphs and tags:
docs/reference/playbooks-and-tags.md - Legacy pointer (do not update):
docs/reference/architecture.md→project-docs/architecture.md