--- - name: Pre-flight | приватные интерфейсы должны быть уже сконфигурированы Terraform-слоем ansible.builtin.assert: that: - priv1_iface in ansible_facts.interfaces - priv2_iface in ansible_facts.interfaces - ansible_facts[priv1_iface]['active'] | default(false) - ansible_facts[priv2_iface]['active'] | default(false) fail_msg: >- Интерфейсы {{ priv1_iface }}/{{ priv2_iface }} не найдены или не активны. Ожидается, что Terraform-провижининг уже создал и поднял их до запуска этого playbook. success_msg: "Приватные интерфейсы {{ priv1_iface }} и {{ priv2_iface }} на месте." - name: FRR APT-репозиторий | добавить GPG-ключ ansible.builtin.get_url: url: https://deb.frrouting.org/frr/keys.gpg dest: /usr/share/keyrings/frrouting.gpg mode: "0644" - name: FRR APT-репозиторий | добавить источник пакетов ansible.builtin.apt_repository: repo: >- deb [signed-by=/usr/share/keyrings/frrouting.gpg] https://deb.frrouting.org/frr {{ ansible_distribution_release }} {{ frr_apt_series }} filename: frr state: present update_cache: true - name: Установить пакеты FRR ansible.builtin.apt: name: "{{ frr_packages }}" state: present - name: Конфиг | /etc/frr/daemons ansible.builtin.template: src: daemons.j2 dest: "{{ frr_daemons_path }}" owner: frr group: frr mode: "0640" notify: Restart frr - name: Конфиг | /etc/frr/frr.conf ansible.builtin.template: src: frr.conf.j2 dest: "{{ frr_conf_path }}" owner: frr group: frr mode: "0640" notify: Restart frr - name: Сеть | netplan-конфиг для dummy0 (anycast) ansible.builtin.template: src: dummy0.netplan.yml.j2 dest: "{{ netplan_dummy_config_path }}" owner: root group: root mode: "0600" notify: - Apply netplan - Restart frr - name: FRR | сервис включён и запущен ansible.builtin.systemd: name: frr enabled: true state: started