Files
poc-frr-anycast/ansible/inventory/site-cloud.yml
T
ayurishchevandClaude Sonnet 5 b2b7306a3c Generalize frr_anycast role, add site-cloud environment (4 nodes, prepend, sNAT)
По updated_dia.png: новое окружение "Облачная площадка" (vr01-vr04, AS 65200,
anycast 172.31.255.10/32) с двумя внешними BGP-каналами — основным (ASN 65104,
без as-path prepend) и резервным (ASN 65103, с prepend на всех узлах) — плюс
sNAT (nftables masquerade) на внешнем интерфейсе.

Роль frr_anycast обобщена под это: вместо двух жёстко именованных соседей —
список bgp_neighbors произвольной длины с флагом prepend; sNAT/ip_forward —
опциональный блок (enable_snat). Площадка A мигрирована на новый формат
host_vars/group_vars без изменения site-a.env и без изменения рендера —
render-check.sh (golden-diff) по-прежнему проходит 6/6.

Для site-cloud (окружение новое, ВМ не подняты) добавлен render-check-cloud.sh
с grep-инвариантами: 4 соседа на узел, prepend только на резервном канале,
nftables masquerade на внешнем интерфейсе — 56/56 проверок пройдено.

run.sh обобщён на несколько окружений: инвентарь по имени playbook'а,
env-файл через SITE_ENV_FILE (алиас SITE_A_ENV_FILE сохранён).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bc3HkMiDwooSyLBLoMKNyF
2026-09-09 20:59:40 +03:00

16 lines
502 B
YAML

all:
children:
site_cloud:
hosts:
vr01:
ansible_host: "{{ lookup('env', 'VR01_MGMT_IP') }}"
vr02:
ansible_host: "{{ lookup('env', 'VR02_MGMT_IP') }}"
vr03:
ansible_host: "{{ lookup('env', 'VR03_MGMT_IP') }}"
vr04:
ansible_host: "{{ lookup('env', 'VR04_MGMT_IP') }}"
vars:
ansible_user: "{{ lookup('env', 'SSH_USER') }}"
ansible_ssh_private_key_file: "{{ lookup('env', 'SSH_PRIVATE_KEY_FILE') }}"