From d6da47fc1eaf46b95e47af61f9e2c5e048ef636b Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Fri, 16 Dec 2022 15:10:52 +0100 Subject: [PATCH] bundles/systemd: also manage systemd-timesyncd --- bundles/systemd/files/timesyncd.conf | 22 ++++++ bundles/systemd/items.py | 105 ++++++++++++++++----------- 2 files changed, 83 insertions(+), 44 deletions(-) create mode 100644 bundles/systemd/files/timesyncd.conf diff --git a/bundles/systemd/files/timesyncd.conf b/bundles/systemd/files/timesyncd.conf new file mode 100644 index 0000000..2459a09 --- /dev/null +++ b/bundles/systemd/files/timesyncd.conf @@ -0,0 +1,22 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it under the +# terms of the GNU Lesser General Public License as published by the Free +# Software Foundation; either version 2.1 of the License, or (at your option) +# any later version. +# +# Entries in this file show the compile time defaults. Local configuration +# should be created by either modifying this file, or by creating "drop-ins" in +# the timesyncd.conf.d/ subdirectory. The latter is generally recommended. +# Defaults can be restored by simply deleting this file and all drop-ins. +# +# See timesyncd.conf(5) for details. + +[Time] +NTP=de.pool.ntp.org +FallbackNTP=pool.ntp.org +#RootDistanceMaxSec=5 +PollIntervalMinSec=32 +PollIntervalMaxSec=2048 +ConnectionRetrySec=10 +SaveIntervalSec=30 diff --git a/bundles/systemd/items.py b/bundles/systemd/items.py index 83b0906..bc822e8 100644 --- a/bundles/systemd/items.py +++ b/bundles/systemd/items.py @@ -1,57 +1,74 @@ timezone = node.metadata.get('timezone', 'UTC') -actions = { - 'systemd-reload': { - 'command': 'systemctl daemon-reload', - 'cascade_skip': False, - 'triggered': True, - 'needed_by': { - 'svc_systemd:', - }, - }, - 'systemd-hostname': { - 'command': 'hostnamectl set-hostname {}'.format(node.metadata['hostname']), - 'unless': '[ "$(hostnamectl --static)" = "{}" ]'.format(node.metadata['hostname']), - # Provided by bundle:basic - 'needs': { - 'file:/etc/hosts', - }, - }, - 'systemd-timezone': { - 'command': 'timedatectl set-timezone {}'.format(timezone), - 'unless': 'timedatectl status | grep -Fi \'time zone\' | grep -i \'{}\''.format(timezone.lower()), - }, - 'systemd-enable-ntp': { - 'command': 'timedatectl set-ntp true', - 'unless': 'timedatectl status | grep -Fi \'ntp service\' | grep -i \'active\'', +actions['systemd-reload'] = { + 'command': 'systemctl daemon-reload', + 'cascade_skip': False, + 'triggered': True, + 'needed_by': { + 'svc_systemd:', }, } -files = { - '/etc/systemd/journald.conf': { - 'content_type': 'mako', - 'context': { - 'journal': node.metadata.get('systemd/journal', {}), - }, - 'triggers': { - 'svc_systemd:systemd-journald:restart', - }, +actions['systemd-hostname'] = { + 'command': 'hostnamectl set-hostname {}'.format(node.metadata['hostname']), + 'unless': '[ "$(hostnamectl --static)" = "{}" ]'.format(node.metadata['hostname']), + # Provided by bundle:basic + 'needs': { + 'file:/etc/hosts', }, } -directories = { - '/usr/local/lib/systemd/system': { - 'purge': True, - 'triggers': { - 'action:systemd-reload', - }, +directories['/usr/local/lib/systemd/system'] = { + 'purge': True, + 'triggers': { + 'action:systemd-reload', }, } -svc_systemd = { - 'systemd-journald': { - 'needs': { - 'file:/etc/systemd/journald.conf', - }, + +# journal settings +files['/etc/systemd/journald.conf'] = { + 'content_type': 'mako', + 'context': { + 'journal': node.metadata.get('systemd/journal', {}), + }, + 'triggers': { + 'svc_systemd:systemd-journald:restart', }, } + +svc_systemd['systemd-journald'] = { + 'needs': { + 'file:/etc/systemd/journald.conf', + }, +} + +# NTP +files['/etc/systemd/timesyncd.conf'] = { + 'triggers': { + 'svc_systemd:systemd-timesyncd:restart', + }, +} + +actions['systemd-timezone'] = { + 'command': 'timedatectl set-timezone {}'.format(timezone), + 'unless': 'timedatectl status | grep -Fi \'time zone\' | grep -i \'{}\''.format(timezone.lower()), + 'after': { + 'svc_systemd:systemd-timesyncd', + }, +} + +actions['systemd-enable-ntp'] = { + 'command': 'timedatectl set-ntp true', + 'unless': 'timedatectl status | grep -Fi \'ntp service\' | grep -i \'active\'', + 'after': { + 'svc_systemd:systemd-timesyncd', + }, +} + +svc_systemd['systemd-timesyncd'] = { + 'needs': { + 'file:/etc/systemd/timesyncd.conf', + }, +} +