lint / yamllint + ansible-lint + syntax-check (push) Canceled after 0s
playbooks/openvpn-phone.yml (make openvpn-phone) stands up a separate
point-to-point static-key instance on ru-vps: tcp/9444, tun2, 10.80.0.0/30,
homelab-openvpn-phone unit, NAT 10.80.0.0/30 -> LAN via tun0. The client
profile (with the secret) lands in ansible/generated/ada-phone.ovpn
(gitignored). Android client: "OpenVPN for Android" (Arne Schwabe) — the
official OpenVPN Connect does not support static-key configs.
- homelab_vpn_client_routes in group_vars/all/main.yml: shared surgical
route list for both road-warrior profiles; not the whole /24, since the
phone's home network is almost certainly 192.168.1.0/24 too
- openvpn-laptop.yml reuses that list instead of its own literal copy
- both playbooks: local profile write moved from `become: false` to
`vars: {ansible_connection: local, ansible_become: false}` — the keyword
did not suppress the inherited ansible_become on delegate_to: localhost
Deployed and verified on ru-vps 2026-09-03: service active, tun2 up, ufw
9444/tcp, NAT rule present, make openvpn-phone idempotent (changed=0 on
rerun), 192.168.1.30:8082 reachable from ru-vps. openvpn-laptop.yml is
still not applied on the live host.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KbuZrUoevfBgCpf5DCF4DG
AI Context
Назначение
Этот набор документов фиксирует стабильный, подтвержденный репозиторием контекст
HomeLab. Он дополняет краткий рабочий контракт в AGENTS.md и
не заменяет канонические Ansible inventory/vars или операционные заметки Obsidian.
HomeLab управляется как Ansible-first control plane: Proxmox VE/LXC, сетевой
транспорт, сервисы, резервное копирование, обновления и мониторинг описываются в
ansible/. Прямые изменения на серверах допустимы только для read-only диагностики
или break-glass восстановления с последующим переносом желаемого состояния в Ansible.
Возможности
- создание и настройка LXC через Proxmox API или
pctпо SSH; - управление сервисами через Docker/systemd и Docker Compose/systemd;
- OpenVPN-транспорт и SSH ProxyJump через
ru-vps; - Caddy reverse proxy для публичных сервисов;
- PBS и offsite restic backups с аудитом свежести;
- управляемые обновления по схеме backup/audit -> update -> health check;
- активный Uptime Kuma и сохраненный, но замороженный Prometheus stack;
- локальный Grimmory MCP с ручной синхронизацией книг в Obsidian.
Форма системы
ansible/Makefileявляется основной ручной точкой входа.ansible/inventory/hosts.ymlзадает хосты, группы и индивидуальные адреса.ansible/inventory/group_vars/all/services.ymlсодержит сводный реестр сервисов, но пока программно управляет только генерацией reverse proxy.ansible/playbooks/содержит операционные entry points,ansible/roles/- роли.tools/grimmory-mcp/является отдельным Node.js stdio MCP-процессом.- Obsidian vault хранит решения, текущую эксплуатационную картину и журнал работ.
Карта репозитория
| Путь | Назначение |
|---|---|
ansible/Makefile |
Проверки, deploy, update и защищенные операции |
ansible/inventory/ |
Канонические хосты, группы, общие и host-specific vars |
ansible/playbooks/ |
Операционные Ansible entry points |
ansible/roles/ |
Переиспользуемые роли и сохраненный monitoring stack |
ansible/ssh_config |
SSH users, keys, ports и ProxyJump |
.opencode/agents/ |
Read-only специализированные агенты HomeLab |
tools/grimmory-mcp/ |
Grimmory API и Obsidian sync integration |
archive/2026-07-proxmox-migration/ |
История до Ansible control plane, не active source |
Ключевые ограничения
- Не хранить secrets в Git или Obsidian.
- Не считать
--check --diffполной симуляцией Proxmox provisioning. - Не запускать замороженный Prometheus stack без отдельного решения.
- Не считать generic roles
lxc_docker_hostиcompose_serviceподключенными к production: активные service playbooks пока остаются источником поведения. - Не исправлять обнаруженный технический долг в рамках несвязанной задачи.
- Не редактировать archive, generated files, installed Galaxy collections или
node_modulesкак active implementation.
Документы
architecture.md- observed architecture и data/control flows.tech-stack.md- runtimes, dependencies и команды.edge-cases.md- failure modes, safety gaps и coverage.plan.md- только подтвержденная активная работа.migration-tofu.md- пошаговый план перехода provisioning LXC на OpenTofu по схеме blue-green.legacy-warning.md- границы legacy/frozen/prototype кода.links.md- официальные version-relevant references.