timezone = node.metadata.get('timezone', 'UTC') hostname = node.metadata.get('hostname', node.name) actions = { 'systemd-reload': { 'command': 'systemctl daemon-reload', 'cascade_skip': False, 'triggered': True, 'needed_by': { 'svc_systemd:', }, }, 'systemd-hostname': { 'command': 'hostnamectl set-hostname {}'.format(hostname), 'unless': '[ "$(hostnamectl --static)" = "{}" ]'.format(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\'', }, } 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', }, }, }