Files
ayurishchevandClaude Sonnet 5 98f9f502ce Add Ansible playbook for Site A FRR configuration on VMs
Разворачивает 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
2026-09-03 14:14:04 +03:00

43 lines
1.7 KiB
Bash

# Все специфичные для площадки A параметры разворачивания (hld.md).
# Источник истины: значения из этого файла и только из него подставляются
# в шаблоны роли frr_anycast — сама роль site-специфичных значений не содержит.
#
# Использование: ./run.sh site-a.yml [доп. аргументы ansible-playbook]
# (run.sh делает `set -a; source site-a.env; set +a` перед вызовом ansible-playbook)
# --- site-wide ---
SITE_A_ASN=65001
ANYCAST_PREFIX=10.200.200.1/32
DUMMY_IFACE=dummy0
PRIV1_IFACE=ens7 # интерфейс к B1 на всех A-нодах (имя задаёт Terraform-провижининг)
PRIV2_IFACE=ens8 # интерфейс к B2
FRR_APT_SERIES=frr-8 # ветка репозитория deb.frrouting.org
# SSH/подключение (пользователь и ключ, которые Terraform выдал ВМ при создании)
SSH_USER=ansible
SSH_PRIVATE_KEY_FILE=~/.ssh/site-a-deploy
# --- per-node: A1 (bgp router-id 10.0.0.1) ---
A1_MGMT_IP=192.168.100.11
A1_ROUTER_ID=10.0.0.1
A1_NEIGHBOR_B1_IP=10.0.1.2
A1_NEIGHBOR_B1_ASN=65002
A1_NEIGHBOR_B2_IP=10.0.2.2
A1_NEIGHBOR_B2_ASN=65003
# --- per-node: A2 (bgp router-id 10.0.0.2) ---
A2_MGMT_IP=192.168.100.12
A2_ROUTER_ID=10.0.0.2
A2_NEIGHBOR_B1_IP=10.0.3.2
A2_NEIGHBOR_B1_ASN=65002
A2_NEIGHBOR_B2_IP=10.0.4.2
A2_NEIGHBOR_B2_ASN=65003
# --- per-node: A3 (bgp router-id 10.0.0.3) ---
A3_MGMT_IP=192.168.100.13
A3_ROUTER_ID=10.0.0.3
A3_NEIGHBOR_B1_IP=10.0.5.2
A3_NEIGHBOR_B1_ASN=65002
A3_NEIGHBOR_B2_IP=10.0.6.2
A3_NEIGHBOR_B2_ASN=65003