bundlewrap/bundles/postfix/metadata.py

95 lines
2.3 KiB
Python
Raw Normal View History

2020-11-07 21:31:18 +00:00
defaults = {
'apt': {
'packages': {
'postfix': {},
},
},
2020-11-10 09:21:37 +00:00
'icinga2_api': {
'postfix': {
'services': {
'POSTFIX PROCESS': {
'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_systemd_unit postfix@-',
},
'POSTFIX QUEUE': {
'command_on_monitored_host': 'sudo /usr/local/share/icinga/plugins/check_postfix_queue -w 20 -c 40 -d 50',
},
},
},
},
2020-11-07 21:31:18 +00:00
}
2020-11-10 09:21:37 +00:00
if node.has_bundle('postfixadmin'):
2020-11-13 11:37:26 +00:00
defaults['backups'] = {
'paths': {
'/var/mail',
},
}
2020-11-10 09:21:37 +00:00
defaults['icinga2_api']['postfix']['services'].update({
'SMTP CONNECT': {
'check_command': 'check_smtp',
'vars.notification.sms': True,
2020-11-10 09:21:37 +00:00
},
'SMTP SUBMISSION CONNECT': {
'check_command': 'check_smtp',
'vars.port': '587',
2021-01-02 11:26:37 +00:00
'vars.notification.sms': True,
2020-11-10 09:21:37 +00:00
},
})
else:
defaults['icinga2_api']['postfix']['services'].update({
'SMTP CONNECT': {
'command_on_monitored_host': '/usr/lib/nagios/plugins/check_smtp -H localhost',
},
})
2020-11-21 09:30:05 +00:00
# FIXME find a working, non-shitty check for that
#@metadata_reactor.provides(
# 'icinga2_api/postfix/services',
#)
2020-11-10 09:21:37 +00:00
def fill_icinga_spam_blocklist_check_with_hostname(metadata):
checks = {}
2021-02-12 19:37:36 +00:00
for _, ips in repo.libs.tools.resolve_identifier(repo, node.name).items():
for ip in ips:
if not ip.is_private:
checks[f'SPAM BLOCKLIST {ip}'] = {
'check_command': 'check_rbl',
'vars.ip': str(ip),
}
2020-11-10 09:21:37 +00:00
return {
'icinga2_api': {
'postfix': {
'services': checks,
2020-11-10 09:21:37 +00:00
},
},
}
@metadata_reactor.provides(
'letsencrypt/domains',
'letsencrypt/reload_after',
)
2020-11-07 21:31:18 +00:00
def letsencrypt(metadata):
if not node.has_bundle('letsencrypt'):
raise DoNotRunAgain
result = {
'reload_after': {
'postfix',
},
}
myhostname = metadata.get('postfix/myhostname', None)
if myhostname and myhostname != metadata.get('hostname'):
result['domains'] = {
myhostname: set(),
2020-11-07 21:31:18 +00:00
}
return {
'letsencrypt': result,
}