Role service-ntpd: only run ntpdate on primary interface during if-up

This commit is contained in:
Julian Labus 2019-03-18 10:05:11 +01:00
parent f43931649a
commit f9700c4dd8
No known key found for this signature in database
GPG key ID: 8AF209F2C6B3572A
2 changed files with 49 additions and 0 deletions

View file

@ -15,6 +15,14 @@
- ntpdate - ntpdate
- ntpstat - ntpstat
- name: update if-up ntpdate script
template:
src: ntpdate.j2
dest: /etc/network/if-up.d/ntpdate
mode: 0755
owner: root
group: root
- name: enable and start ntp daemon - name: enable and start ntp daemon
systemd: systemd:
name: ntp name: ntp

View file

@ -0,0 +1,41 @@
#!/bin/sh
set -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# This is a heuristic: The idea is that if a static interface is brought
# up, that is a major event, and we can put in some extra effort to fix
# the system time. Feel free to change this, especially if you regularly
# bring up new network interfaces.
if [ "$METHOD" = static ]; then
OPTS="-b"
fi
if [ "$METHOD" = loopback ] || [ "$METHOD" = none ]; then
exit 0
fi
# only run on primary network interface
if [ "$IFACE" != {{ ansible_default_ipv4.interface }} ]; then
exit 0
fi
# Check whether ntpdate was removed but not purged; it's useless to wait for
# it in that case.
if [ ! -x /usr/sbin/ntpdate-debian ] && [ -d /usr/sbin ]; then
exit 0
fi
(
# This is for the case that /usr will be mounted later.
if [ -r /lib/udev/hotplug.functions ]; then
. /lib/udev/hotplug.functions
wait_for_file /usr/sbin/ntpdate-debian
fi
# Avoid running more than one at a time
flock -n /run/lock/ntpdate /usr/sbin/ntpdate-debian -s $OPTS 2>/dev/null || :
) &