Разворачивает 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
14 lines
410 B
YAML
14 lines
410 B
YAML
all:
|
|
children:
|
|
site_a:
|
|
hosts:
|
|
a1:
|
|
ansible_host: "{{ lookup('env', 'A1_MGMT_IP') }}"
|
|
a2:
|
|
ansible_host: "{{ lookup('env', 'A2_MGMT_IP') }}"
|
|
a3:
|
|
ansible_host: "{{ lookup('env', 'A3_MGMT_IP') }}"
|
|
vars:
|
|
ansible_user: "{{ lookup('env', 'SSH_USER') }}"
|
|
ansible_ssh_private_key_file: "{{ lookup('env', 'SSH_PRIVATE_KEY_FILE') }}"
|