home-infra/60_bird_setup.yaml
2025-02-01 20:23:49 +01:00

97 lines
2.5 KiB
YAML

---
- name: "DN42 router setup"
hosts: dn42_routers
vars_files:
./host_config/{{ inventory_hostname }}.yaml
become: true
handlers:
- name: "Restart bird"
ansible.builtin.systemd_service:
name: bird
state: restarted
- name: "Reload bird"
ansible.builtin.systemd_service:
name: bird
state: reloaded
- name: "Reload systemd"
ansible.builtin.systemd:
daemon_reload: true
- name: "Reload networkd"
ansible.builtin.command:
cmd: "networkctl reload"
changed_when: true
tasks:
- name: "Ensure bird2 is installed"
ansible.builtin.apt:
state: present
name:
- bird2
- name: "Ensure bird2 is enabled"
ansible.builtin.systemd_service:
name: bird
enabled: true
- name: "Ensure /etc/bird/peers directory is present"
ansible.builtin.file:
path: "/etc/bird/peers"
state: directory
mode: '0755'
owner: root
group: root
- name: "Setup bird2 config"
ansible.builtin.template:
src: ./templates/dn42/bird.conf.j2
dest: /etc/bird/bird.conf
mode: "0644"
notify:
- "Reload bird"
- name: "Setup internal bgp peers"
ansible.builtin.template:
src: ./templates/dn42/bird_internal_peer.conf.j2
dest: /etc/bird/peers/{{ ipeer.name }}.conf
mode: "0644"
loop: "{{ internal_peers | default([]) }}"
loop_control:
loop_var: ipeer
when: internal_peers is not none
notify:
- "Restart bird"
- name: "Setup external bgp peers"
ansible.builtin.template:
src: ./templates/dn42/bird_peer.conf.j2
dest: /etc/bird/peers/{{ peer.name }}.conf
mode: "0644"
loop: "{{ peers | default([]) }}"
loop_control:
loop_var: peer
when: peers is not none
notify:
- "Restart bird"
- name: "Create dn42-dummy interface"
ansible.builtin.template:
src: ./templates/dn42/dn42_dummy_interface.netdev.j2
dest: /etc/systemd/network/dn42-dummy.netdev
mode: "0644"
notify:
- "Reload systemd"
- "Reload networkd"
- name: "Configure dn42-dummy interface"
ansible.builtin.template:
src: ./templates/dn42/dn42_dummy_interface.network.j2
dest: /etc/systemd/network/dn42-dummy.network
mode: "0644"
notify:
- "Reload systemd"
- "Reload networkd"