summaryrefslogtreecommitdiff
path: root/roles/network/wireguard/gateway/templates/systemd.netdev.j2
diff options
context:
space:
mode:
Diffstat (limited to 'roles/network/wireguard/gateway/templates/systemd.netdev.j2')
-rw-r--r--roles/network/wireguard/gateway/templates/systemd.netdev.j226
1 files changed, 26 insertions, 0 deletions
diff --git a/roles/network/wireguard/gateway/templates/systemd.netdev.j2 b/roles/network/wireguard/gateway/templates/systemd.netdev.j2
new file mode 100644
index 00000000..96399b52
--- /dev/null
+++ b/roles/network/wireguard/gateway/templates/systemd.netdev.j2
@@ -0,0 +1,26 @@
+[NetDev]
+Name={{ item.key }}
+Kind=wireguard
+{% if 'description' in item.value %}
+Description={{ item.value.description }}
+{% endif %}
+
+
+[WireGuard]
+PrivateKey={{ item.value.priv_key }}
+ListenPort={{ item.value.listen_port | default(51820) }}
+
+{% for peer in item.value.peers %}
+
+[WireGuardPeer]
+PublicKey={{ peer.pub_key }}
+{% for ip in peer.allowed_ips %}
+AllowedIPs={{ ip }}
+{% endfor %}
+{% if 'endpoint' in peer %}
+Endpoint={{ peer.endpoint.host }}:{{ peer.endpoint.port | default(51820) }}
+{% endif %}
+{% if 'keepalive_interval' in peer %}
+PersistentKeepalive={{ peer.keepalive_interval }}
+{% endif %}
+{% endfor %}