From 3b829caaf6b63e392f5bd2da07a5656b8fb2df55 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Fri, 13 Nov 2020 21:41:02 +0100 Subject: [PATCH] bundles/pppd: introduce --- bundles/pppd/files/pppoe.service | 12 +++++ bundles/pppd/files/provider | 18 ++++++++ bundles/pppd/files/secrets | 2 + bundles/pppd/items.py | 77 ++++++++++++++++++++++++++++++++ bundles/pppd/metadata.py | 8 ++++ 5 files changed, 117 insertions(+) create mode 100644 bundles/pppd/files/pppoe.service create mode 100644 bundles/pppd/files/provider create mode 100644 bundles/pppd/files/secrets create mode 100644 bundles/pppd/items.py create mode 100644 bundles/pppd/metadata.py diff --git a/bundles/pppd/files/pppoe.service b/bundles/pppd/files/pppoe.service new file mode 100644 index 0000000..bc0e7ba --- /dev/null +++ b/bundles/pppd/files/pppoe.service @@ -0,0 +1,12 @@ +[Unit] +Description=PPPoE connection +After=network-online.target + +[Service] +Type=oneshot +RemainAfterExit=true +ExecStart=/usr/bin/pon +ExecStop=/usr/bin/poff -a + +[Install] +WantedBy=default.target diff --git a/bundles/pppd/files/provider b/bundles/pppd/files/provider new file mode 100644 index 0000000..bdd0485 --- /dev/null +++ b/bundles/pppd/files/provider @@ -0,0 +1,18 @@ +user ${username} +pty "/usr/sbin/pppoe -I ${interface} -T 80 -m 1452" + +noipdefault +# We're not setting 'usepeerdns' on purpose. We're running our own +# resolver instead. +defaultroute + +hide-password +lcp-echo-interval 20 +lcp-echo-failure 3 +connect /bin/true +noauth +persist +mtu 1492 + +noaccomp +default-asyncmap diff --git a/bundles/pppd/files/secrets b/bundles/pppd/files/secrets new file mode 100644 index 0000000..904f289 --- /dev/null +++ b/bundles/pppd/files/secrets @@ -0,0 +1,2 @@ +# client server secret IP addresses +${username} * ${password} * diff --git a/bundles/pppd/items.py b/bundles/pppd/items.py new file mode 100644 index 0000000..3d63ca1 --- /dev/null +++ b/bundles/pppd/items.py @@ -0,0 +1,77 @@ +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/ppp/chap-secrets': { + 'source': 'secrets', + 'content_type': 'mako', + 'context': node.metadata['pppd'], + 'mode': '0400', + 'triggers': { + 'svc_systemd:pppoe:restart', + }, + }, + '/etc/ppp/pap-secrets': { + 'source': 'secrets', + 'content_type': 'mako', + 'context': node.metadata['pppd'], + 'mode': '0400', + 'triggers': { + 'svc_systemd:pppoe:restart', + }, + }, + '/etc/ppp/peers/provider': { + 'content_type': 'mako', + 'context': node.metadata['pppd'], + 'triggers': { + 'svc_systemd:pppoe:restart', + }, + }, + '/etc/systemd/system/pppoe.service': { + 'triggers': { + 'action:systemd-reload', + 'svc_systemd:pppoe:restart', + }, + }, +} + +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', + }, + }, +} diff --git a/bundles/pppd/metadata.py b/bundles/pppd/metadata.py new file mode 100644 index 0000000..d2e4d80 --- /dev/null +++ b/bundles/pppd/metadata.py @@ -0,0 +1,8 @@ +defaults = { + 'apt': { + 'packages': { + 'ppp': {}, + 'pppoe': {}, + }, + }, +}