Разворачивает 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
7 lines
364 B
YAML
7 lines
364 B
YAML
# Per-node адаптер над ansible/site-a.env (префикс A3_*).
|
|
router_id: "{{ lookup('env', 'A3_ROUTER_ID') }}"
|
|
neighbor_b1_ip: "{{ lookup('env', 'A3_NEIGHBOR_B1_IP') }}"
|
|
neighbor_b1_asn: "{{ lookup('env', 'A3_NEIGHBOR_B1_ASN') }}"
|
|
neighbor_b2_ip: "{{ lookup('env', 'A3_NEIGHBOR_B2_IP') }}"
|
|
neighbor_b2_asn: "{{ lookup('env', 'A3_NEIGHBOR_B2_ASN') }}"
|