Files
infra/ansible/roles/README.md
T
DmitryandClaude Opus 5 9725d3ea7c Add service registry, shared roles and unified reverse proxy
Collect the facts about all 14 services -- VMID, node, address, ports,
domain, pinned images, resources, backup and monitoring participation --
into group_vars/all/services.yml. Values are taken from the existing
playbooks; gaps are marked null rather than invented.

Replace reverse-proxy-{gitea,vaultwarden,grimmory}.yml with a single
playbook iterating over registry entries that declare a domain. It keeps
every check the three had, preserves grimmory's richer Caddy block
byte-for-byte, and restarts Caddy once when any site changed instead of
up to three times. Verified with --check --diff against ru-vps: ok=6
changed=0, so it reproduces the current Caddyfile exactly.

Add two roles factoring out the skeleton duplicated across the pve-*
playbooks: lxc_docker_host (packages, /dev/fuse assertion, fuse-overlayfs
storage driver, UFW baseline) and compose_service (compose file, systemd
unit, config validation, health check). They are not wired into any
playbook yet -- migrating a live service is a separate, per-service step;
compose_service/README.md shows the Gitea example and spells out what
actually changes on the host.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GTocXkGUUazHdKKd3r9k71
2026-08-26 22:10:16 +03:00

48 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Роли Ansible
| Роль | Назначение |
|---|---|
| `backup_audit` | Аудит бэкапов PBS и restic, метрики в node-exporter |
| `bash_config` | Единый bash-конфиг для shell-хостов |
| `compose_service` | **(новая)** Docker Compose стек под systemd oneshot-юнитом |
| `emergency_access` | Аварийный доступ |
| `emergency_bot` | Telegram-бот аварийного доступа |
| `gyro` | Сервис gyro в изолированном LXC |
| `lxc_docker_host` | **(новая)** Подготовка непривилегированного LXC под Docker |
| `monitoring_blackbox` | Внешние HTTP-пробы с ru-vps |
| `monitoring_exporter` | node-exporter / smartctl-exporter |
| `monitoring_server` | Prometheus + Alertmanager + Grafana |
| `openvpn_gateway` | OpenVPN сервер/клиент |
| `pve_lxc` | Создание LXC через Proxmox API |
| `uptime_kuma` | Uptime Kuma |
| `base`, `docker`, `ufw` | Пустые каталоги, оставшиеся от ранней структуры |
## Новые роли
### `lxc_docker_host`
Пакеты, проверка `/dev/fuse`, `daemon.json` со `storage-driver:
fuse-overlayfs`, запуск docker, базовые правила UFW (SSH из LAN и OpenVPN,
node-exporter 9100 с 192.168.1.30, `deny incoming`), проверка эффективного
драйвера хранилища. Вынесено из восьми `pve-*.yml` — около 350 строк
копипасты. Подробности и пример: [`lxc_docker_host/README.md`](lxc_docker_host/README.md).
### `compose_service`
`compose.yml` + `.env` (генерация секретов один раз, `no_log`, `0600`) +
systemd-юнит `Type=oneshot` с `docker compose up -d --remove-orphans`,
`daemon-reload` через handler, валидация `docker compose config --quiet`,
рестарт только при изменениях, health-check по URL с `retries`/`until`.
Подробности и пример плейбука Gitea на новых ролях:
[`compose_service/README.md`](compose_service/README.md).
**Статус:** роли созданы и проверены синтаксически, но пока не подключены ни
к одному живому сервису. Перевод `pve-*.yml` на них — отдельный этап.
## Источник данных
Факты о сервисах (vmid, узел, адрес, порты, домен, образы с digest, ресурсы,
бэкап, мониторинг, порядок автозапуска) собраны в реестре
`ansible/inventory/group_vars/all/services.yml` (`homelab_services`).
Его уже потребляет `playbooks/reverse-proxy.yml`.