- 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
3.5 KiB
Роли 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.
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 подключён в 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) по-прежнему
дублирует значения и должно меняться согласованно.