Files
infra/ansible/roles/README.md
T
DmitryandClaude Sonnet 5 d2e1e6876a docs: AI project context (docs/ai) and repository documentation refresh
- docs/ai/: stable, repo-verified context - README, architecture, tech-stack,
  edge-cases, plan (confirmed active work only), migration-tofu (the blue-green
  OpenTofu migration runbook and per-service findings), legacy-warning, links.
- AGENTS.md: slimmed to a working contract that points at docs/ai instead of
  restating it; CLAUDE.md is an adapter that @-includes it.
- README.md, ansible/README.md, ansible/roles/README.md,
  roles/lxc_docker_host/README.md: bring wording in line with the current
  control plane (Makefile entry point, registry, tofu, memoir-bot gone).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012uoq5AVK8mkBgg83Mq6o5V
2026-09-03 07:06:10 +03:00

59 lines
3.5 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).
**Статус:** `compose_service` подключён в `playbooks/ru-vps-base.yml` (стек
Caddy на ru-vps) — это его первый и пока единственный потребитель.
`lxc_docker_host` не подключён нигде. Перевод `pve-*.yml` на обе роли —
отдельный этап.
## Источник данных
Факты о сервисах (vmid, узел, адрес, порты, домен, образы с digest, ресурсы,
бэкап, мониторинг, порядок автозапуска) собраны в реестре
`ansible/inventory/group_vars/all/services.yml` (`homelab_services`).
Программные потребители реестра:
- `playbooks/reverse-proxy.yml` — сборка Caddyfile;
- `playbooks/ru-vps-base.yml` — стек Caddy и его закреплённый образ;
- `playbooks/pve-backup-jobs.yml` — списки VMID заданий PBS (поле `backup.job`);
- `roles/backup_audit` — VMID для аудита (флаг `monitoring.backup_audit_vmid`);
- `playbooks/validate.yml` — сверка реестра с фактическим состоянием Proxmox.
Остальное (`pve-*.yml`, `status.yml`, monitoring, SSH config) по-прежнему
дублирует значения и должно меняться согласованно.