From 496cd82fd73c95eab0a8220d5891251b5a3c642d Mon Sep 17 00:00:00 2001 From: Jeltz Date: Wed, 3 Feb 2021 23:31:56 +0100 Subject: [PATCH 01/12] Switch ipv6_edge_router to quagga --- roles/ipv6_edge_router/frr-apt-key.asc | 186 ------------------ roles/ipv6_edge_router/handlers/main.yml | 10 +- roles/ipv6_edge_router/tasks/main.yml | 55 +++--- .../templates/{frr.conf.j2 => bgpd.conf.j2} | 15 +- .../ipv6_edge_router/templates/zebra.conf.j2 | 8 + 5 files changed, 43 insertions(+), 231 deletions(-) delete mode 100644 roles/ipv6_edge_router/frr-apt-key.asc rename roles/ipv6_edge_router/templates/{frr.conf.j2 => bgpd.conf.j2} (68%) create mode 100644 roles/ipv6_edge_router/templates/zebra.conf.j2 diff --git a/roles/ipv6_edge_router/frr-apt-key.asc b/roles/ipv6_edge_router/frr-apt-key.asc deleted file mode 100644 index 3c311f8..0000000 --- a/roles/ipv6_edge_router/frr-apt-key.asc +++ /dev/null @@ -1,186 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -=IWDv ------END PGP PUBLIC KEY BLOCK----- ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -egKcOCfAMg== -=Lt8H ------END PGP PUBLIC KEY BLOCK----- ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -HGxIKIAggOUujclydhvu -=+/L/ ------END PGP PUBLIC KEY BLOCK----- diff --git a/roles/ipv6_edge_router/handlers/main.yml b/roles/ipv6_edge_router/handlers/main.yml index 604d632..7193e08 100644 --- a/roles/ipv6_edge_router/handlers/main.yml +++ b/roles/ipv6_edge_router/handlers/main.yml @@ -1,5 +1,11 @@ --- -- name: restart frr +- name: restart bgpd service: - name: frr + name: bgpd state: restarted + +- name: restart zebra + service: + name: zebra + state: restarted +... diff --git a/roles/ipv6_edge_router/tasks/main.yml b/roles/ipv6_edge_router/tasks/main.yml index 8ec1353..b93023c 100644 --- a/roles/ipv6_edge_router/tasks/main.yml +++ b/roles/ipv6_edge_router/tasks/main.yml @@ -1,39 +1,34 @@ --- -- name: install GPG +- name: Install quagga apt: - name: gnupg + name: quagga -- name: Add FRR repo key - apt_key: - data: "{{ lookup('file', 'frr-apt-key.asc') }}" - state: present +- name: Tweak sysctl for table size + ansible.posix.sysctl: + name: net.ipv6.route.max_size + value: 500000 + sysctl_set: yes + notify: Apply sysctl -- name: Add FRR apt repository - apt_repository: - repo: deb https://deb.frrouting.org/frr buster frr-stable - state: present - notify: restart frr - -- name: Install frr - apt: - name: frr - -- name: setup frr daemons +- name: Setup Quagga configuration template: - src: daemons.j2 - dest: /etc/frr/daemons - mode: 0644 - notify: restart frr + src: "{{ item }}.j2" + dest: "/etc/quagga/{{ item.dest }}" + mode: u=rw,g=r,o=r + loop: + - daemons.j2 + - zebra.conf.j2 + - bgpd.conf.j2 + notify: + - restart bgpd + - restart zebra -- name: setup frr.conf - template: - src: frr.conf.j2 - dest: /etc/frr/frr.conf - mode: 0644 - notify: restart frr - -- name: enable+start frr +- name: enable+start bgpd and quagga service: - name: frr + name: "{{ item }}" state: started enabled: true + loop: + - bgpd.service + - zebra.service +... diff --git a/roles/ipv6_edge_router/templates/frr.conf.j2 b/roles/ipv6_edge_router/templates/bgpd.conf.j2 similarity index 68% rename from roles/ipv6_edge_router/templates/frr.conf.j2 rename to roles/ipv6_edge_router/templates/bgpd.conf.j2 index 1f06f2f..3456739 100644 --- a/roles/ipv6_edge_router/templates/frr.conf.j2 +++ b/roles/ipv6_edge_router/templates/bgpd.conf.j2 @@ -1,15 +1,3 @@ -log syslog informational -log stdout - -hostname routeur-aurore -password Tux -enable password Tux - -interface lo -line vty - - -# Aurore AS. router bgp 43619 #no synchronization bgp router-id 45.66.111.254 @@ -21,4 +9,5 @@ router bgp 43619 neighbor 2001:1b48:2:103::d7:1 activate exit-address-family ! - +log file /var/log/quagga/bgpd.conf +log stdout diff --git a/roles/ipv6_edge_router/templates/zebra.conf.j2 b/roles/ipv6_edge_router/templates/zebra.conf.j2 new file mode 100644 index 0000000..b1aa3d2 --- /dev/null +++ b/roles/ipv6_edge_router/templates/zebra.conf.j2 @@ -0,0 +1,8 @@ +hostname routeur-aurore +password Tux +enable password Tux + +log file /var/log/quagga/zebra.log + +interface lo +line vty -- 2.43.4 From 79395b8a63203ef2f5bd8407b234ca78935d9e1d Mon Sep 17 00:00:00 2001 From: Jeltz Date: Wed, 3 Feb 2021 23:41:28 +0100 Subject: [PATCH 02/12] Remove useless handler reference --- roles/ipv6_edge_router/tasks/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/roles/ipv6_edge_router/tasks/main.yml b/roles/ipv6_edge_router/tasks/main.yml index b93023c..f7e0a23 100644 --- a/roles/ipv6_edge_router/tasks/main.yml +++ b/roles/ipv6_edge_router/tasks/main.yml @@ -8,7 +8,6 @@ name: net.ipv6.route.max_size value: 500000 sysctl_set: yes - notify: Apply sysctl - name: Setup Quagga configuration template: -- 2.43.4 From 9f8ad84581f9faf82886f9aaa7b7f085ec772088 Mon Sep 17 00:00:00 2001 From: Jeltz Date: Wed, 3 Feb 2021 23:51:42 +0100 Subject: [PATCH 03/12] Fix a few other mistakes in ipv6_edge_router --- roles/ipv6_edge_router/tasks/main.yml | 10 +++++----- roles/ipv6_edge_router/templates/bgpd.conf.j2 | 4 ++-- roles/ipv6_edge_router/templates/daemons.j2 | 18 ++---------------- 3 files changed, 9 insertions(+), 23 deletions(-) diff --git a/roles/ipv6_edge_router/tasks/main.yml b/roles/ipv6_edge_router/tasks/main.yml index f7e0a23..26e0c48 100644 --- a/roles/ipv6_edge_router/tasks/main.yml +++ b/roles/ipv6_edge_router/tasks/main.yml @@ -6,18 +6,18 @@ - name: Tweak sysctl for table size ansible.posix.sysctl: name: net.ipv6.route.max_size - value: 500000 + value: '500000' sysctl_set: yes - name: Setup Quagga configuration template: src: "{{ item }}.j2" - dest: "/etc/quagga/{{ item.dest }}" + dest: "/etc/quagga/{{ item }}" mode: u=rw,g=r,o=r loop: - - daemons.j2 - - zebra.conf.j2 - - bgpd.conf.j2 + - daemons + - zebra.conf + - bgpd.conf notify: - restart bgpd - restart zebra diff --git a/roles/ipv6_edge_router/templates/bgpd.conf.j2 b/roles/ipv6_edge_router/templates/bgpd.conf.j2 index 3456739..edb593d 100644 --- a/roles/ipv6_edge_router/templates/bgpd.conf.j2 +++ b/roles/ipv6_edge_router/templates/bgpd.conf.j2 @@ -1,5 +1,5 @@ router bgp 43619 - #no synchronization + no synchronization bgp router-id 45.66.111.254 # Remote-AS: Zayo. @@ -9,5 +9,5 @@ router bgp 43619 neighbor 2001:1b48:2:103::d7:1 activate exit-address-family ! -log file /var/log/quagga/bgpd.conf +log file /var/log/quagga/bgpd.log log stdout diff --git a/roles/ipv6_edge_router/templates/daemons.j2 b/roles/ipv6_edge_router/templates/daemons.j2 index 9cef233..957a337 100644 --- a/roles/ipv6_edge_router/templates/daemons.j2 +++ b/roles/ipv6_edge_router/templates/daemons.j2 @@ -1,22 +1,8 @@ -# This file tells the frr package which daemons to start. -# -# Sample configurations for these daemons can be found in -# /usr/share/doc/frr/examples/. -# -# ATTENTION: -# -# When activation a daemon at the first time, a config file, even if it is -# empty, has to be present *and* be owned by the user and group "frr", else -# the daemon will not be started by /etc/init.d/frr. The permissions should -# be u=rw,g=r,o=. -# When using "vtysh" such a config file is also needed. It should be owned by -# group "frrvty" and set to ug=rw,o= though. Check /etc/pam.d/frr, too. -# -# The watchfrr and zebra daemons are always started. -# + {% if 'backup' in inventory_hostname %} bgpd=no {% else %} +zebra=yes bgpd=yes {% endif %} ospfd=no -- 2.43.4 From 0988e8bbd054ad9f1187346fa06ce2460e066ffd Mon Sep 17 00:00:00 2001 From: Jeltz Date: Wed, 3 Feb 2021 23:55:44 +0100 Subject: [PATCH 04/12] Fix permissions It will become useful when we store the password in the vault. --- roles/ipv6_edge_router/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/ipv6_edge_router/tasks/main.yml b/roles/ipv6_edge_router/tasks/main.yml index 26e0c48..3e3e5ef 100644 --- a/roles/ipv6_edge_router/tasks/main.yml +++ b/roles/ipv6_edge_router/tasks/main.yml @@ -13,7 +13,7 @@ template: src: "{{ item }}.j2" dest: "/etc/quagga/{{ item }}" - mode: u=rw,g=r,o=r + mode: u=rw,g=r,o= loop: - daemons - zebra.conf -- 2.43.4 From 1816e0de71bbcc09254877dccdb7b656aebe4cf0 Mon Sep 17 00:00:00 2001 From: Jeltz Date: Thu, 4 Feb 2021 01:48:40 +0100 Subject: [PATCH 05/12] WIP: support for Quagga failover This change probably doesn't work --- roles/ipv6_edge_router/templates/daemons.j2 | 7 +------ roles/router/tasks/main.yml | 7 +++++++ roles/router/templates/keepalived-aurore.conf | 4 ++++ roles/router/templates/notify-quagga.j2 | 21 +++++++++++++++++++ 4 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 roles/router/templates/notify-quagga.j2 diff --git a/roles/ipv6_edge_router/templates/daemons.j2 b/roles/ipv6_edge_router/templates/daemons.j2 index 957a337..63557b0 100644 --- a/roles/ipv6_edge_router/templates/daemons.j2 +++ b/roles/ipv6_edge_router/templates/daemons.j2 @@ -1,10 +1,5 @@ - -{% if 'backup' in inventory_hostname %} -bgpd=no -{% else %} -zebra=yes bgpd=yes -{% endif %} +zebra=yes ospfd=no ospf6d=no ripd=no diff --git a/roles/router/tasks/main.yml b/roles/router/tasks/main.yml index 2014572..9c40df1 100644 --- a/roles/router/tasks/main.yml +++ b/roles/router/tasks/main.yml @@ -75,6 +75,13 @@ notify: restart keepalived when: "'routeur-aurore' not in ansible_hostname" +- name: install notify-quagga on routeur-aurore* + template: + src: notify-quagga.j2 + dest: /usr/local/sbin/notify-quagga + mode: u=rx,g=r,o=r + when: "'routeur-aurore' in ansible_hostname" + - name: configure keepalived for routeur-aurore* template: src: keepalived-aurore.conf diff --git a/roles/router/templates/keepalived-aurore.conf b/roles/router/templates/keepalived-aurore.conf index cd22a5b..78c0f49 100644 --- a/roles/router/templates/keepalived-aurore.conf +++ b/roles/router/templates/keepalived-aurore.conf @@ -127,5 +127,9 @@ vrrp_instance VI_ROUT_aurore_IPv6 { 2a09:6840:50::/64 via 2a09:6840:129::5:254 dev ens18 2a09:6840:51::/64 via 2a09:6840:129::5:254 dev ens18 } + + notify_master "/usr/local/sbin/notify-quagga master" + notify_backup "/usr/local/sbin/notify-quagga backup" + notify_fault "/usr/local/sbin/notify-quagga fault" } diff --git a/roles/router/templates/notify-quagga.j2 b/roles/router/templates/notify-quagga.j2 new file mode 100644 index 0000000..516d0fa --- /dev/null +++ b/roles/router/templates/notify-quagga.j2 @@ -0,0 +1,21 @@ +#!/bin/bash +{{ ansible_managed | comment }} + +if [[ $# = 0 ]]; then + echo "Invalid number of arguments" >&2 + exit 1 +fi + +case $1 in + master) + systemctl start zebra.service + systemctl start bgpd.service + ;; + backup | fault) + systemctl stop zebra.service + systemctl stop bgpd.service + ;; + *) + echo "Invalid argument" >&2 + exit 1 +esac -- 2.43.4 From ada5c64293d46a417f4afe85da4e900b053755fe Mon Sep 17 00:00:00 2001 From: shirenn Date: Thu, 4 Feb 2021 17:13:24 +0100 Subject: [PATCH 06/12] [quagga] deploys monitoriing for quagga --- roles/ipv6_edge_router/tasks/main.yml | 22 ++++++++ ...prometheus-node-exporter-quagga.service.j2 | 6 ++ .../prometheus-node-exporter-quagga.timer.j2 | 9 +++ roles/ipv6_edge_router/templates/quagga.py.j2 | 56 +++++++++++++++++++ 4 files changed, 93 insertions(+) create mode 100644 roles/ipv6_edge_router/templates/prometheus-node-exporter-quagga.service.j2 create mode 100644 roles/ipv6_edge_router/templates/prometheus-node-exporter-quagga.timer.j2 create mode 100755 roles/ipv6_edge_router/templates/quagga.py.j2 diff --git a/roles/ipv6_edge_router/tasks/main.yml b/roles/ipv6_edge_router/tasks/main.yml index 3e3e5ef..7cd8afd 100644 --- a/roles/ipv6_edge_router/tasks/main.yml +++ b/roles/ipv6_edge_router/tasks/main.yml @@ -30,4 +30,26 @@ loop: - bgpd.service - zebra.service + +- name: Install quagga prometheus exporter + template: + src: '{{ item.src }}' + dest: '{{ item.dest }}' + mode: '{{ item.mode }}' + loop: + - src: 'quagga.py.j2' + dest: '/usr/share/prometheus-node-exporter/quagga.py + mode: "0755" + - src: prometheus-node-exporter-quagga.service + dest: /etc/systemd/system/prometheus-node-exporter-quagga.service + mode: "0644" + - src: prometheus-node-exporter-quagga.timer + dest: /etc/systemd/system/prometheus-node-exporter-quagga.timer + mode: "0644" + +- name: Enable node-exporter + service: + name: prometheus-node-exporter.service + enabled: yes + state: started ... diff --git a/roles/ipv6_edge_router/templates/prometheus-node-exporter-quagga.service.j2 b/roles/ipv6_edge_router/templates/prometheus-node-exporter-quagga.service.j2 new file mode 100644 index 0000000..e9e06e6 --- /dev/null +++ b/roles/ipv6_edge_router/templates/prometheus-node-exporter-quagga.service.j2 @@ -0,0 +1,6 @@ +[Unit] +Description=Collect quagga metrics for prometheus-node-exporter + +[Service] +Type=oneshot +ExecStart=/bin/bash -c "/usr/share/prometheus-node-exporter/quagga.py | sponge /var/lib/prometheus/node-exporter/quagga.prom" diff --git a/roles/ipv6_edge_router/templates/prometheus-node-exporter-quagga.timer.j2 b/roles/ipv6_edge_router/templates/prometheus-node-exporter-quagga.timer.j2 new file mode 100644 index 0000000..ce1d2de --- /dev/null +++ b/roles/ipv6_edge_router/templates/prometheus-node-exporter-quagga.timer.j2 @@ -0,0 +1,9 @@ +[Unit] +Description=Run quagga metrics collection every 15 minutes + +[Timer] +OnBootSec=0 +OnUnitActiveSec=15min + +[Install] +WantedBy=timers.target diff --git a/roles/ipv6_edge_router/templates/quagga.py.j2 b/roles/ipv6_edge_router/templates/quagga.py.j2 new file mode 100755 index 0000000..4005f4a --- /dev/null +++ b/roles/ipv6_edge_router/templates/quagga.py.j2 @@ -0,0 +1,56 @@ +#!/usr/bin/python3 + +import re +import subprocess + + +def parse_bgp_summary(summary): + header = 'Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd\n' + res = {'routes': 0, 'uptime': 0} + try: + index = summary.index(header) + len(header) + except ValueError: + return res + summary = summary[index:] + match = re.match(r'(?P[^\s\n])+\n?\s+(?P4)\s+(?P\d{1,5})\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+(?P[^\s]+)\s+(?P\d+)\n', summary) + if match is None: + return res + res['routes'] = int(match.group('routes')) + uptime = match.group('uptime') + if re.fullmatch(r'[0-9]+:[0-9]+:[0-9]+', uptime) is not None: + uptime = line[8].split(':') + uptime = int(uptime[0])*3600 + int(uptime[1])*60 + int(uptime[2]) + else: + uptime_match = re.fullmatch(r'([0-9]+)d([0-9]+)h([0-9]+)m', uptime) + if uptime_match is not None: + uptime = int(uptime_match.group(1))*86400 + int(uptime_match.group(2))*3600 + int(uptime_match.group(3))*60 + else: + uptime_match = re.fullmatch(r'([0-9]+)w([0-9]+)d([0-9]+)h', uptime) + if uptime_match is not None: + uptime = int(uptime_match.group(1))*604800 + int(uptime_match.group(2))*86400 + int(uptime_match.group(3))*3600 + else: + uptime_match = re.fullmatch(r'([0-9]+)y([0-9]+)w([0-9]+)d', uptime) + if uptime_match is not None: + uptime = int(uptime_match.group(1))*220752000 + int(uptime_match.group(2))*604800 + int(uptime_match.group(3))*86400 + else: + uptime = 0 + res['uptime'] = uptime + return res + +def prompt(version='ipv4'): + summary = subprocess.run(['/usr/bin/vtysh', '-c', f'show bgp {version} unicast summary'], capture_output=True).stdout.decode('utf-8') + bgp_routes_uptime = parse_bgp_summary(bgp_ipv4_unicast_summary) + routes = bgp_routes_uptime['routes'] + uptime = bgp_routes_uptime['uptime'] + print(f'# HELP quagga_bgp_{version}_routes Number of {version} routes added by quagga') + print(f'# TYPE quagga_bgp_{version}_routes gauge') + print(f'quagga_bgp_{version}_routes {routes}') + print(f'# HELP quagga_bgp_{version}_uptime {version} BGP connection uptime') + print(f'# TYPE quagga_bgp_{version}_uptime gauge') + print(f'quagga_bgp_{version}_uptime {uptime}') + + + +if __name__ == '__main__': + prompt('ipv4') + prompt('ipv6') -- 2.43.4 From ecfd7037c2db5db34a04e596e091efde92488c63 Mon Sep 17 00:00:00 2001 From: shirenn Date: Thu, 4 Feb 2021 17:32:58 +0100 Subject: [PATCH 07/12] [quagga] Patch the previous script (squash) --- roles/ipv6_edge_router/templates/quagga.py.j2 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/ipv6_edge_router/templates/quagga.py.j2 b/roles/ipv6_edge_router/templates/quagga.py.j2 index 4005f4a..ff77346 100755 --- a/roles/ipv6_edge_router/templates/quagga.py.j2 +++ b/roles/ipv6_edge_router/templates/quagga.py.j2 @@ -18,7 +18,7 @@ def parse_bgp_summary(summary): res['routes'] = int(match.group('routes')) uptime = match.group('uptime') if re.fullmatch(r'[0-9]+:[0-9]+:[0-9]+', uptime) is not None: - uptime = line[8].split(':') + uptime = uptime.split(':') uptime = int(uptime[0])*3600 + int(uptime[1])*60 + int(uptime[2]) else: uptime_match = re.fullmatch(r'([0-9]+)d([0-9]+)h([0-9]+)m', uptime) @@ -38,8 +38,8 @@ def parse_bgp_summary(summary): return res def prompt(version='ipv4'): - summary = subprocess.run(['/usr/bin/vtysh', '-c', f'show bgp {version} unicast summary'], capture_output=True).stdout.decode('utf-8') - bgp_routes_uptime = parse_bgp_summary(bgp_ipv4_unicast_summary) + bgp_unicast_summary = subprocess.run(['/usr/bin/vtysh', '-c', f'show bgp {version} unicast summary'], capture_output=True).stdout.decode('utf-8') + bgp_routes_uptime = parse_bgp_summary(bgp_unicast_summary) routes = bgp_routes_uptime['routes'] uptime = bgp_routes_uptime['uptime'] print(f'# HELP quagga_bgp_{version}_routes Number of {version} routes added by quagga') -- 2.43.4 From 7632e8c986e777b12dc353ffb3c324a1e0902576 Mon Sep 17 00:00:00 2001 From: Jeltz Date: Thu, 4 Feb 2021 17:38:15 +0100 Subject: [PATCH 08/12] Fix typo (missing quote) --- roles/ipv6_edge_router/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/ipv6_edge_router/tasks/main.yml b/roles/ipv6_edge_router/tasks/main.yml index 7cd8afd..d11d5e8 100644 --- a/roles/ipv6_edge_router/tasks/main.yml +++ b/roles/ipv6_edge_router/tasks/main.yml @@ -37,8 +37,8 @@ dest: '{{ item.dest }}' mode: '{{ item.mode }}' loop: - - src: 'quagga.py.j2' - dest: '/usr/share/prometheus-node-exporter/quagga.py + - src: quagga.py.j2 + dest: /usr/share/prometheus-node-exporter/quagga.py mode: "0755" - src: prometheus-node-exporter-quagga.service dest: /etc/systemd/system/prometheus-node-exporter-quagga.service -- 2.43.4 From 5716c0da8bb31d2288143508d39d7c150c884b7e Mon Sep 17 00:00:00 2001 From: Jeltz Date: Thu, 4 Feb 2021 20:54:52 +0100 Subject: [PATCH 09/12] Fix missing .j2 extensions --- roles/ipv6_edge_router/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/ipv6_edge_router/tasks/main.yml b/roles/ipv6_edge_router/tasks/main.yml index d11d5e8..48336a1 100644 --- a/roles/ipv6_edge_router/tasks/main.yml +++ b/roles/ipv6_edge_router/tasks/main.yml @@ -40,10 +40,10 @@ - src: quagga.py.j2 dest: /usr/share/prometheus-node-exporter/quagga.py mode: "0755" - - src: prometheus-node-exporter-quagga.service + - src: prometheus-node-exporter-quagga.service.j2 dest: /etc/systemd/system/prometheus-node-exporter-quagga.service mode: "0644" - - src: prometheus-node-exporter-quagga.timer + - src: prometheus-node-exporter-quagga.timer.j2 dest: /etc/systemd/system/prometheus-node-exporter-quagga.timer mode: "0644" -- 2.43.4 From 48151a8057e6dd9226b2ce3c7701a09d1e42a12d Mon Sep 17 00:00:00 2001 From: Jeltz Date: Thu, 4 Feb 2021 21:35:06 +0100 Subject: [PATCH 10/12] Temporarily disable restart handlers for quagga --- roles/ipv6_edge_router/tasks/main.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/roles/ipv6_edge_router/tasks/main.yml b/roles/ipv6_edge_router/tasks/main.yml index 48336a1..cd5e208 100644 --- a/roles/ipv6_edge_router/tasks/main.yml +++ b/roles/ipv6_edge_router/tasks/main.yml @@ -18,9 +18,10 @@ - daemons - zebra.conf - bgpd.conf - notify: - - restart bgpd - - restart zebra + # FIXME: re-activate when failover is working + #notify: + # - restart bgpd + # - restart zebra - name: enable+start bgpd and quagga service: -- 2.43.4 From ee9503393a3e526904192df8842c5f7f29cf932b Mon Sep 17 00:00:00 2001 From: Jeltz Date: Thu, 4 Feb 2021 22:25:14 +0100 Subject: [PATCH 11/12] Reload keepalived instead of restarting it --- roles/router/handlers/main.yml | 4 ++-- roles/router/tasks/main.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/roles/router/handlers/main.yml b/roles/router/handlers/main.yml index 0583512..c304a64 100644 --- a/roles/router/handlers/main.yml +++ b/roles/router/handlers/main.yml @@ -1,7 +1,7 @@ --- -- name: restart keepalived +- name: reload keepalived systemd: - state: restarted + state: reloaded name: keepalived enabled: true diff --git a/roles/router/tasks/main.yml b/roles/router/tasks/main.yml index 9c40df1..1406ec2 100644 --- a/roles/router/tasks/main.yml +++ b/roles/router/tasks/main.yml @@ -72,7 +72,7 @@ src: keepalived.conf dest: /etc/keepalived/keepalived.conf mode: 0644 - notify: restart keepalived + notify: reload keepalived when: "'routeur-aurore' not in ansible_hostname" - name: install notify-quagga on routeur-aurore* @@ -87,7 +87,7 @@ src: keepalived-aurore.conf dest: /etc/keepalived/keepalived.conf mode: 0644 - notify: restart keepalived + notify: reload keepalived when: "'routeur-aurore' in ansible_hostname" - name: Configure cron -- 2.43.4 From df6b0e68c37147adf48cdb53f7f18276de32397b Mon Sep 17 00:00:00 2001 From: Jeltz Date: Fri, 5 Feb 2021 04:53:31 +0100 Subject: [PATCH 12/12] Remove default route on router-aurore* --- roles/router/templates/interfaces-aurore | 1 - 1 file changed, 1 deletion(-) diff --git a/roles/router/templates/interfaces-aurore b/roles/router/templates/interfaces-aurore index 401e5aa..7a5ef1d 100644 --- a/roles/router/templates/interfaces-aurore +++ b/roles/router/templates/interfaces-aurore @@ -11,7 +11,6 @@ iface lo inet loopback auto ens18 iface ens18 inet static address 10.129.0.{{ router_hard_ip_suffix }}/16 - gateway 10.129.0.1 iface ens18 inet6 static address 2a09:6840:129::0:{{ router_hard_ip_suffix }}/64 -- 2.43.4