97 lines
2.5 KiB
YAML
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"
|