100 lines
2.5 KiB
Python
100 lines
2.5 KiB
Python
from os import listdir
|
|
from os.path import join
|
|
|
|
directories = {
|
|
'/etc/rspamd/local.d': {
|
|
'purge': True,
|
|
'needs': {
|
|
'pkg_apt:rspamd',
|
|
},
|
|
'triggers': {
|
|
'svc_systemd:rspamd:restart',
|
|
},
|
|
},
|
|
'/etc/rspamd/override.d': {
|
|
'purge': True,
|
|
'needs': {
|
|
'pkg_apt:rspamd',
|
|
},
|
|
'triggers': {
|
|
'svc_systemd:rspamd:restart',
|
|
},
|
|
},
|
|
}
|
|
|
|
svc_systemd = {
|
|
'rspamd': {
|
|
'needs': {
|
|
'file:',
|
|
'pkg_apt:rspamd',
|
|
},
|
|
},
|
|
'clamav-daemon': {
|
|
'needs': {
|
|
'pkg_apt:clamav',
|
|
'pkg_apt:clamav-daemon',
|
|
},
|
|
},
|
|
'clamav-freshclam': {
|
|
'needs': {
|
|
'pkg_apt:clamav-freshclam',
|
|
},
|
|
},
|
|
}
|
|
|
|
files = {
|
|
'/etc/rspamd/local.d/ip_whitelist.map': {
|
|
'content_type': 'mako',
|
|
'triggers': {
|
|
'svc_systemd:rspamd:restart',
|
|
},
|
|
},
|
|
}
|
|
|
|
# TODO manage this using bundlewrap
|
|
if node.metadata.get('rspamd', {}).get('dkim', False):
|
|
for i in {'arc', 'dkim_signing'}:
|
|
files[f'/etc/rspamd/local.d/{i}.conf'] = {
|
|
'source': 'dkim.conf',
|
|
'content_type': 'mako',
|
|
'needs': {
|
|
'action:rspamd_generate_dkim_key',
|
|
},
|
|
'triggers': {
|
|
'svc_systemd:rspamd:restart',
|
|
},
|
|
}
|
|
|
|
actions = {
|
|
'rspamd_generate_dkim_key': {
|
|
'command': node.metadata['rspamd']['dkim'].format_into('cd /var/lib/rspamd/dkim && /usr/bin/rspamadm dkim_keygen -s "{fault}" -b 2048 -k "{fault}.key" > "{fault}.txt"'),
|
|
'unless': node.metadata['rspamd']['dkim'].format_into('test -f "/var/lib/rspamd/dkim/{fault}.key"'),
|
|
},
|
|
}
|
|
|
|
if 'password' in node.metadata.get('rspamd', {}):
|
|
files['/etc/rspamd/local.d/worker-controller.inc'] = {
|
|
'content_type': 'mako',
|
|
'triggers': {
|
|
'svc_systemd:rspamd:restart',
|
|
},
|
|
}
|
|
|
|
local_config_path = join(repo.path, 'bundles', 'rspamd', 'files', 'local.d')
|
|
for f in listdir(local_config_path):
|
|
files[f'/etc/rspamd/local.d/{f}'] = {
|
|
'source': f'local.d/{f}',
|
|
'triggers': {
|
|
'svc_systemd:rspamd:restart',
|
|
},
|
|
}
|
|
|
|
override_config_path = join(repo.path, 'bundles', 'rspamd', 'files', 'override.d')
|
|
for f in listdir(override_config_path):
|
|
files[f'/etc/rspamd/override.d/{f}'] = {
|
|
'source': f'override.d/{f}',
|
|
'triggers': {
|
|
'svc_systemd:rspamd:restart',
|
|
},
|
|
}
|