Разворачивает 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
21 lines
514 B
Django/Jinja
21 lines
514 B
Django/Jinja
frr version 8.5
|
|
frr defaults traditional
|
|
hostname {{ inventory_hostname }}
|
|
log stdout informational
|
|
no ipv6 forwarding
|
|
!
|
|
router bgp {{ site_a_asn }}
|
|
bgp router-id {{ router_id }}
|
|
no bgp ebgp-requires-policy
|
|
neighbor {{ neighbor_b1_ip }} remote-as {{ neighbor_b1_asn }}
|
|
neighbor {{ neighbor_b2_ip }} remote-as {{ neighbor_b2_asn }}
|
|
!
|
|
address-family ipv4 unicast
|
|
network {{ anycast_prefix }}
|
|
neighbor {{ neighbor_b1_ip }} activate
|
|
neighbor {{ neighbor_b2_ip }} activate
|
|
exit-address-family
|
|
!
|
|
line vty
|
|
!
|