bundlewrap/bundles/postfix/items.py
Franziska Kunsmann 6b90d568cf
All checks were successful
bundlewrap/pipeline/head This commit looks good
bundles/postfix: use dig in check_spam_blocklist instead of a python library
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.
2021-05-29 09:29:40 +02:00

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