timezone = node.metadata.get('timezone') actions['systemd-reload'] = { 'command': 'systemctl daemon-reload', 'cascade_skip': False, 'triggered': True, 'needed_by': { 'svc_systemd:', }, } 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', }, } # 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', }, } # monitoring files['/usr/local/share/icinga/plugins/check_timesyncd_sync'] = { 'mode': '0755', }