22 lines
2.5 KiB
Markdown
22 lines
2.5 KiB
Markdown
# План внедрения: 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 обновлены.
|