Разворачивает FRR на a1/a2/a3 (площадка A) через Ansible вместо
Docker-лабы, для реальных ВМ. Provisioning ВМ (3 NIC: внешний +
2 приватных) — Terraform, вне рамок этой задачи; playbook создаёт
только dummy0 (netplan) и конфигурирует FRR.
- ansible/site-a.env — единственный источник site-A-специфичных
значений (ASN, anycast-префикс, router-id/BGP-соседи по узлам,
имена интерфейсов); роль frr_anycast полностью параметризована
- ansible/roles/frr_anycast — задачи, handlers (netplan apply перед
restart frr), шаблоны frr.conf.j2/daemons.j2/dummy0.netplan.yml.j2
- ansible/tests/render-check.sh — офлайн golden-diff проверка
рендера конфигов против уже провалидированных в Docker-лабе
frr/a{1,2,3}/ (ВМ ещё не подняты, функциональный тест недоступен)
- README.md — раздел «Развёртывание площадки A на ВМ (Ansible)»
- docs/ — план и summary изменения
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bc3HkMiDwooSyLBLoMKNyF
2.5 KiB
2.5 KiB
План внедрения: Ansible playbook для настройки площадки A
Дата: 2026-09-03
Цель
Ansible playbook для конфигурации FRR на ВМ площадки A (a1/a2/a3), полностью параметризованный через файл переменных окружения ansible/site-a.env. Provisioning ВМ (3 сетевых интерфейса: 1 внешний + 2 приватных) выполняется отдельным Terraform-сценарием вне рамок этой задачи — приватные интерфейсы и IP на них уже сконфигурированы к моменту запуска playbook; playbook создаёт только dummy0 (anycast) и разворачивает FRR.
Полный план (архитектура, структура каталогов, содержимое site-a.env, шаблон frr.conf.j2, задачи роли, handlers, файлы, проверка) согласован с пользователем в чате — см. историю диалога. Ключевые решения:
- Сеть: netplan, приватные интерфейсы предзаданы Terraform'ом,
dummy0создаёт Ansible. - Все site-A-специфичные значения (ASN, anycast-префикс, router-id, BGP-соседи, имена интерфейсов) — в
ansible/site-a.env, рольfrr_anycastполностью generic. frr.conf.j2при рендере для a1/a2/a3 должен побайтово соответствовать уже проверенным в Docker-лабеfrr/a{1,2,3}/frr.conf.- ВМ площадки A не подняты — функциональная проверка (
vtysh, реальный apply) невозможна и не входит в эту задачу; проверяется синтаксис + рендеринг шаблонов (golden-file diff противfrr/a{1,2,3}/frr.conf). - Ansible уже установлен системно (2.14.18) — venv не потребовался (был бы создан в
venv/при отсутствии).
Definition of done
ansible/с playbook, рольюfrr_anycast, inventory, group_vars/host_vars,site-a.env,run.sh.ansible-playbook --syntax-checkпроходит.ansible/tests/render-check.shподтверждает: рендерfrr.conf.j2для a1/a2/a3 совпадает сfrr/a{1,2,3}/frr.conf.- README и summary обновлены.