File tree Expand file tree Collapse file tree 5 files changed +69
-0
lines changed Expand file tree Collapse file tree 5 files changed +69
-0
lines changed Original file line number Diff line number Diff line change
1
+ [Unit]
2
+ Description =Check if systemd-networkd has broken NDisc routes and fix
3
+
4
+ [Service]
5
+ Type =oneshot
6
+ # This needs to be root for the service restart to work
7
+ User =root
8
+ Group =root
9
+ ExecStart =/usr/local/bin/systemd-networkd-check-and-fix.sh
10
+
11
+ Requisite =systemd-networkd.service
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ # Check for occurrences of an NDisc log error
4
+ # NOTE: --since timer flag must match the cadence of systemd timer unit. Risk of repeat matches and restart loop
5
+ journalctl --no-pager --unit systemd-networkd --since " 1 minutes ago" --grep " Could not set NDisc route" > /dev/null
6
+ NDISC_ERROR=$?
7
+
8
+ if systemctl is-active --quiet systemd-networkd.service && [ " ${NDISC_ERROR} " == 0 ]; then
9
+ echo " $( date) systemd-network running but NDisc routes are broken. Restarting systemd.networkd.system"
10
+ /usr/bin/systemctl restart systemd-networkd.service
11
+ fi
Original file line number Diff line number Diff line change
1
+ [Unit]
2
+ Description=Check if systemd-networkd has broken NDisc routes and fix
3
+
4
+ [Timer]
5
+ # NOTE: cadence must match that of the journalctl search (--since). Risk of repeat matches and restart loop
6
+ OnCalendar=minutely
7
+
8
+ [Install]
9
+ WantedBy=timers.target
Original file line number Diff line number Diff line change 71
71
tags :
72
72
- install-supabase-internal
73
73
74
+ - name : Fix IPv6 NDisc issues
75
+ import_tasks : tasks/fix_ipv6_ndisc.yml
76
+ tags :
77
+ - install-supabase-internal
78
+
74
79
- name : Start Postgres Database
75
80
systemd :
76
81
name : postgresql
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : fix Network - systemd timer file
3
+ copy :
4
+ dest : /etc/systemd/system/systemd-networkd-check-and-fix.timer
5
+ src : " files/systemd-networkd/systemd-networkd-check-and-fix.timer"
6
+ owner : root
7
+ group : root
8
+ mode : 0644
9
+
10
+ - name : fix Network - systemd service file
11
+ copy :
12
+ dest : /etc/systemd/system/systemd-networkd-check-and-fix.service
13
+ src : " files/systemd-networkd/systemd-networkd-check-and-fix.service"
14
+ owner : root
15
+ group : root
16
+ mode : 0644
17
+
18
+ - name : fix Network - detect script
19
+ copy :
20
+ dest : /usr/local/bin/systemd-networkd-check-and-fix.sh
21
+ src : " files/systemd-networkd/systemd-networkd-check-and-fix.sh"
22
+ owner : root
23
+ group : root
24
+ mode : 0700
25
+
26
+ - name : fix Network - reload systemd
27
+ systemd :
28
+ daemon_reload : yes
29
+
30
+ - name : fix Network - enable systemd timer
31
+ systemd :
32
+ name : systemd-networkd-check-and-fix.timer
33
+ enabled : true
You can’t perform that action at this time.
0 commit comments