summaryrefslogtreecommitdiff
path: root/roles/install_wireguard_mesh/templates
diff options
context:
space:
mode:
Diffstat (limited to 'roles/install_wireguard_mesh/templates')
-rw-r--r--roles/install_wireguard_mesh/templates/down.sh.j212
-rw-r--r--roles/install_wireguard_mesh/templates/up.sh.j216
-rw-r--r--roles/install_wireguard_mesh/templates/wg.conf.j212
3 files changed, 21 insertions, 19 deletions
diff --git a/roles/install_wireguard_mesh/templates/down.sh.j2 b/roles/install_wireguard_mesh/templates/down.sh.j2
index a1f8d52..979523c 100644
--- a/roles/install_wireguard_mesh/templates/down.sh.j2
+++ b/roles/install_wireguard_mesh/templates/down.sh.j2
@@ -1,8 +1,8 @@
#!/bin/bash
-{% if item.wireguard_mesh_peers %}
-{% for peer in item.wireguard_mesh_peers %}
-batctl -m bat{{ item.name }} if del mesh{{ item.name }}{{ peer.number }}
-ip link set down dev mesh{{ item.name }}{{ peer.number }}
-ip link del mesh{{ item.name }}{{ peer.number }} type ip6gretap
+{% for host in groups['fastd'] %}
+{% for site in hostvars[host]['sites'] if site.name == item.name and site.wireguard_mesh_number != item.wireguard_mesh_number %}
+batctl -m bat{{ item.name }} if del mesh{{ item.name }}{{ site.wireguard_mesh_number }}
+ip link set down dev mesh{{ item.name }}{{ site.wireguard_mesh_number }}
+ip link del mesh{{ item.name }}{{ site.wireguard_mesh_number }} type ip6gretap
+{% endfor %}
{% endfor %}
-{% endif %}
diff --git a/roles/install_wireguard_mesh/templates/up.sh.j2 b/roles/install_wireguard_mesh/templates/up.sh.j2
index c413685..23e24aa 100644
--- a/roles/install_wireguard_mesh/templates/up.sh.j2
+++ b/roles/install_wireguard_mesh/templates/up.sh.j2
@@ -1,11 +1,12 @@
#!/bin/bash
-{% if item.wireguard_mesh_peers %}
-{% for peer in item.wireguard_mesh_peers %}
-ip link add mesh{{ item.name }}{{ peer.number }} type ip6gretap remote {{ peer.address }} local {{ item.wireguard_mesh_address }} ttl 255 dev wg{{ item.name }}
-ip link set mtu 1280 dev mesh{{ item.name }}{{ peer.number }}
-ip link set address {{ peer.mac }} dev mesh{{ item.name }}{{ peer.number }}
-ip link set up dev mesh{{ item.name }}{{ peer.number }}
-batctl -m bat{{ item.name }} if add mesh{{ item.name }}{{ peer.number }}
+{% for host in groups['fastd'] %}
+{% for site in hostvars[host]['sites'] if site.name == item.name and site.wireguard_mesh_number != item.wireguard_mesh_number %}
+ip link add mesh{{ item.name }}{{ site.wireguard_mesh_number }} type ip6gretap remote {{ site.wireguard_mesh_address }} local {{ item.wireguard_mesh_address }} ttl 255 dev wg{{ item.name }}
+ip link set mtu 1280 dev mesh{{ item.name }}{{ site.wireguard_mesh_number }}
+ip link set address {{ item.wireguard_mesh_mac_prefix }}{{ site.wireguard_mesh_number }} dev mesh{{ item.name }}{{ site.wireguard_mesh_number }}
+ip link set up dev mesh{{ item.name }}{{ site.wireguard_mesh_number }}
+batctl -m bat{{ item.name }} if add mesh{{ item.name }}{{ site.wireguard_mesh_number }}
+{% endfor %}
{% endfor %}
batctl -m bat{{ item.name }} gw server 1000000/1000000
batctl -m bat{{ item.name }} it 10000
@@ -14,4 +15,3 @@ echo 64 > /sys/class/net/bat{{ item.name }}/mesh/hop_penalty
netctl start bat{{ item.name }}
systemctl restart dhcpd4.service
systemctl restart named.service
-{% endif %}
diff --git a/roles/install_wireguard_mesh/templates/wg.conf.j2 b/roles/install_wireguard_mesh/templates/wg.conf.j2
index e3af3f2..410d591 100644
--- a/roles/install_wireguard_mesh/templates/wg.conf.j2
+++ b/roles/install_wireguard_mesh/templates/wg.conf.j2
@@ -1,15 +1,17 @@
[Interface]
ListenPort = {{ item.wireguard_mesh_port }}
-PrivateKey = {{ item.wireguard_mesh_key }}
+PrivateKey = {{ item.wireguard_mesh_priv_key }}
Address = {{ item.wireguard_mesh_address }}/48
MTU = 1400
PostUp = /etc/wireguard/up{{ item.name }}.sh
PreDown = /etc/wireguard/down{{ item.name }}.sh
-{% for peer in item.wireguard_mesh_peers %}
+{% for host in groups['fastd'] %}
+{% for site in hostvars[host]['sites'] if site.name == item.name and site.wireguard_mesh_number != item.wireguard_mesh_number %}
[Peer]
-PublicKey = {{ peer.key }}
-AllowedIPs = {{ peer.address }}/128
-Endpoint = [{{ peer.endpoint }}]:{{ item.wireguard_mesh_port }}
+PublicKey = {{ site.wireguard_mesh_pub_key }}
+AllowedIPs = {{ site.wireguard_mesh_address }}/128
+Endpoint = [{{ site.wireguard_mesh_endpoint }}]:{{ item.wireguard_mesh_port }}
PersistentKeepalive = 30
{% endfor %}
+{% endfor %}