Franziska Kunsmann
6b90d568cf
All checks were successful
bundlewrap/pipeline/head This commit looks good
The library isn't available as a debian package, so we would have to manually install that every time the python package updates its minor version number.
88 lines
2.1 KiB
Python
88 lines
2.1 KiB
Python
if node.has_bundle('postfixadmin'):
|
|
repo.libs.tools.require_bundle(node, 'letsencrypt')
|
|
|
|
mynetworks = {
|
|
'127.0.0.0/8',
|
|
'[::1]/128',
|
|
'[::ffff:127.0.0.0]/104',
|
|
}
|
|
for identifier in node.metadata.get('postfix/mynetworks', set()):
|
|
ips = repo.libs.tools.resolve_identifier(repo, identifier)
|
|
|
|
for ip in ips['ipv4']:
|
|
mynetworks.add(str(ip))
|
|
|
|
for ip in ips['ipv6']:
|
|
ip = str(ip)
|
|
if '/' in ip:
|
|
ip6, netmask = ip.split('/', 2)
|
|
else:
|
|
ip6 = ip
|
|
netmask = '128'
|
|
mynetworks.add(f'[{ip6}]/{netmask}')
|
|
|
|
my_package = 'pkg_pacman:postfix' if node.has_bundle('pacman') else 'pkg_apt:postfix'
|
|
|
|
files = {
|
|
'/etc/mailname': {
|
|
'content': node.metadata.get('postfix/myhostname', node.metadata['hostname']),
|
|
'triggers': {
|
|
'svc_systemd:postfix:restart',
|
|
},
|
|
},
|
|
'/etc/aliases': {
|
|
'content_type': 'mako',
|
|
'triggers': {
|
|
'action:postfix_newaliases',
|
|
},
|
|
},
|
|
'/etc/postfix/master.cf': {
|
|
'content_type': 'mako',
|
|
'triggers': {
|
|
'svc_systemd:postfix:restart',
|
|
},
|
|
},
|
|
'/etc/postfix/main.cf': {
|
|
'content_type': 'mako',
|
|
'context': {
|
|
'mynetworks': mynetworks,
|
|
},
|
|
'triggers': {
|
|
'svc_systemd:postfix:restart',
|
|
},
|
|
},
|
|
'/etc/postfix/submission_header_cleanup': {
|
|
'triggers': {
|
|
'svc_systemd:postfix:restart',
|
|
},
|
|
},
|
|
'/usr/local/bin/postfix-telegraf-queue': {
|
|
'mode': '0755',
|
|
},
|
|
'/usr/local/share/icinga/plugins/check_postfix_queue': {
|
|
'mode': '0755',
|
|
},
|
|
'/usr/local/share/icinga/plugins/check_spam_blocklist': {
|
|
'mode': '0755',
|
|
},
|
|
}
|
|
|
|
actions = {
|
|
'postfix_newaliases': {
|
|
'command': 'newaliases',
|
|
'triggered': True,
|
|
'needs': {
|
|
my_package,
|
|
},
|
|
},
|
|
}
|
|
|
|
svc_systemd = {
|
|
'postfix': {
|
|
'needs': {
|
|
'file:/etc/postfix/master.cf',
|
|
'file:/etc/postfix/main.cf',
|
|
my_package,
|
|
},
|
|
},
|
|
}
|