directories = { '/etc/ppp/ip-up.d': { 'purge': True, 'needs': { 'pkg_apt:ppp', }, }, '/etc/ppp/ip-down.d': { 'purge': True, 'needs': { 'pkg_apt:ppp', }, }, '/etc/ppp/ipv6-up.d': { 'purge': True, 'needs': { 'pkg_apt:ppp', }, }, '/etc/ppp/ipv6-down.d': { 'purge': True, 'needs': { 'pkg_apt:ppp', }, }, '/etc/ppp/peers': { 'purge': True, 'needs': { 'pkg_apt:ppp', }, }, } files = { '/etc/nftables-rules.d/90-pppd': { 'content_type': 'any', }, '/etc/ppp/chap-secrets': { 'source': 'secrets', 'content_type': 'mako', 'context': node.metadata.get('pppd'), 'mode': '0400', 'triggers': { 'svc_systemd:pppoe:restart', }, }, '/etc/ppp/pap-secrets': { 'source': 'secrets', 'content_type': 'mako', 'context': node.metadata.get('pppd'), 'mode': '0400', 'triggers': { 'svc_systemd:pppoe:restart', }, }, '/etc/ppp/ip-down.d/nftables': { 'source': 'ip-down', 'mode': '0755', }, '/etc/ppp/ip-up.d/nftables': { 'source': 'ip-up', 'content_type': 'mako', 'context': { 'nftables': node.metadata.get('pppd/nftables-rules.d', set()), }, 'mode': '0755', }, '/etc/ppp/peers/provider': { 'content_type': 'mako', 'context': node.metadata.get('pppd'), 'triggers': { 'svc_systemd:pppoe:restart', }, }, '/etc/ppp/wait-until-stopped': { 'content_type': 'mako', 'context': { 'services': node.metadata.get('pppd/wait-until-stopped', set()), }, 'mode': '0700', }, '/etc/sysctl.d/90-pppd.conf': { 'content_type': 'any', }, '/etc/systemd/system/pppoe.service': { 'triggers': { 'action:systemd-reload', 'svc_systemd:pppoe:restart', }, }, '/usr/local/bin/restart-pppoe-if-no-public-ip': { 'mode': '0755', }, } svc_systemd = { 'pppoe': { 'needs': { 'file:/etc/ppp/chap-secrets', 'file:/etc/ppp/pap-secrets', 'file:/etc/ppp/peers/provider', 'file:/etc/systemd/system/pppoe.service', }, }, } if node.metadata.get('pppd/dyndns', {}): files['/etc/ppp/ip-up.d/dyndns'] = { 'content_type': 'mako', 'context': node.metadata.get('pppd/dyndns'), 'mode': '0755', } files['/usr/local/share/icinga/plugins/check_dyndns_update'] = { 'content_type': 'mako', 'context': node.metadata.get('pppd/dyndns'), 'mode': '0755', } files['/usr/local/bin/dyndns_periodic'] = { 'content_type': 'mako', 'context': node.metadata.get('pppd/dyndns'), 'mode': '0755', } files['/etc/systemd/system/dyndns_periodic.timer'] = { 'triggers': { 'action:systemd-reload', 'svc_systemd:dyndns_periodic.timer:restart', }, } files['/etc/systemd/system/dyndns_periodic.service'] = { 'triggers': { 'action:systemd-reload', }, } svc_systemd['dyndns_periodic.timer'] = { 'needs': { 'file:/etc/systemd/system/dyndns_periodic.timer', 'file:/etc/systemd/system/dyndns_periodic.service', }, } else: files['/etc/systemd/system/dyndns_periodic.timer'] = { 'delete': True, } files['/etc/systemd/system/dyndns_periodic.service'] = { 'delete': True, } svc_systemd['dyndns_periodic.timer'] = { 'before': { 'file:/etc/systemd/system/dyndns_periodic.timer', 'file:/etc/systemd/system/dyndns_periodic.service', }, }