Разворачивает 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
33 lines
1.6 KiB
YAML
33 lines
1.6 KiB
YAML
---
|
||
# Рендерит шаблоны роли frr_anycast локально (без SSH и без реальных ВМ) —
|
||
# используется render-check.sh для сверки с golden-файлами frr/a{1,2,3}/.
|
||
- name: "Render-only test шаблонов frr_anycast"
|
||
hosts: site_a
|
||
connection: local
|
||
gather_facts: false
|
||
become: false
|
||
tasks:
|
||
# group_vars/host_vars авто-подгружаются относительно каталога playbook'а
|
||
# или inventory; render-test.yml лежит в tests/, поэтому подключаем явно.
|
||
- name: Подключить site-wide переменные (group_vars/site_a.yml)
|
||
ansible.builtin.include_vars: "{{ playbook_dir }}/../group_vars/site_a.yml"
|
||
|
||
- name: Подключить per-node переменные (host_vars/{{ inventory_hostname }}.yml)
|
||
ansible.builtin.include_vars: "{{ playbook_dir }}/../host_vars/{{ inventory_hostname }}.yml"
|
||
|
||
- name: Создать выходную директорию для хоста
|
||
ansible.builtin.file:
|
||
path: "{{ render_out_dir }}/{{ inventory_hostname }}"
|
||
state: directory
|
||
mode: "0755"
|
||
|
||
- name: Рендер frr.conf
|
||
ansible.builtin.template:
|
||
src: "{{ playbook_dir }}/../roles/frr_anycast/templates/frr.conf.j2"
|
||
dest: "{{ render_out_dir }}/{{ inventory_hostname }}/frr.conf"
|
||
|
||
- name: Рендер daemons
|
||
ansible.builtin.template:
|
||
src: "{{ playbook_dir }}/../roles/frr_anycast/templates/daemons.j2"
|
||
dest: "{{ render_out_dir }}/{{ inventory_hostname }}/daemons"
|