bundlewrap/bundles/systemd/items.py

50 lines
1.3 KiB
Python

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',
},
},
}