From c85806e3289b5e207d51d382f8dc75edad04404d Mon Sep 17 00:00:00 2001 From: Kumar Damani Date: Tue, 23 Aug 2022 12:02:28 -0400 Subject: switched to alpine initial commit --- roles/wireguard/handlers/main.yaml | 5 ----- roles/wireguard/tasks/main.yaml | 38 +++++++++++++++++++++++++++++++---- roles/wireguard/templates/wg0.conf.j2 | 7 ++++--- 3 files changed, 38 insertions(+), 12 deletions(-) (limited to 'roles/wireguard') diff --git a/roles/wireguard/handlers/main.yaml b/roles/wireguard/handlers/main.yaml index bd5fc0d..cd21505 100644 --- a/roles/wireguard/handlers/main.yaml +++ b/roles/wireguard/handlers/main.yaml @@ -1,7 +1,2 @@ --- -- name: 'Restart wireguard' - systemd: - name: 'wg-quick@wg0' - state: 'restarted' - listen: 'restart wireguard' diff --git a/roles/wireguard/tasks/main.yaml b/roles/wireguard/tasks/main.yaml index d7e1e51..c3f0942 100644 --- a/roles/wireguard/tasks/main.yaml +++ b/roles/wireguard/tasks/main.yaml @@ -1,20 +1,35 @@ # https://dev.to/tangramvision/exploring-ansible-via-setting-up-a-wireguard-vpn-3389 --- -- name: 'install wireguard package' +- block: + - name: 'Install necessary pkgs for Alpine' + apk: + name: '{{ item }}' + state: 'latest' + loop: + - 'iptables' + - 'wireguard-tools' + + - name: 'Enable iptables' + service: + name: 'iptables' + enabled: true + when: 'ansible_os_family == "Alpine"' + +- name: 'Install wireguard package for Debian' apt: name: 'wireguard' state: 'present' update_cache: true + when: 'ansible_os_family == "Debian"' -- name: 'create server wireguard config' +- name: 'Create server wireguard config' template: dest: '/etc/wireguard/wg0.conf' src: 'wg0.conf.j2' owner: 'root' group: 'root' mode: '600' - notify: 'restart wireguard' - name: 'Enable IP Forwarding' sysctl: @@ -31,8 +46,23 @@ - sysctl_key: 'net.ipv6.conf.all.forwarding' sysctl_val: "1" -- name: 'start wireguard and enable on boot' +- name: 'Start wireguard and enable on boot in Debian' systemd: name: 'wg-quick@wg0' state: 'started' enabled: true + when: 'ansible_os_family == "Debian"' + +- name: 'Ensure that wireguard interface starts on boot in Alpine' + blockinfile: + path: '/etc/network/interfaces' + block: | + auto wg0 + iface wg0 inet static + requires eth0 + address 192.168.10.1 + pre-up ip link add dev wg0 type wireguard + pre-up wg setconf wg0 <(wg-quick strip wg0) + post-up iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;iptables -A FORWARD -o wg0 -j ACCEPT + post-down iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;iptables -D FORWARD -o wg0 -j ACCEPT + when: 'ansible_os_family == "Alpine"' diff --git a/roles/wireguard/templates/wg0.conf.j2 b/roles/wireguard/templates/wg0.conf.j2 index 6e7bcc1..5201c32 100644 --- a/roles/wireguard/templates/wg0.conf.j2 +++ b/roles/wireguard/templates/wg0.conf.j2 @@ -1,12 +1,13 @@ # {{ ansible_managed }} [Interface] +{% if ansible_os_family == "Debian" %} Address = {{ wireguard_server_ip }} +{% endif %} ListenPort = {{ wireguard_server_listen_port }} PrivateKey = {{ wireguard_server_priv_key }} -PostUp = iptables -A FORWARD -i wg0 -o wg0 -j ACCEPT -PostUp = iptables -w -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -w -t nat -A POSTROUTING -o eth0 -j MASQUERADE -PostDown = iptables -w -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -w -t nat -D POSTROUTING -o eth0 -j MASQUERADE +PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;iptables -A FORWARD -o %i -j ACCEPT +PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;iptables -D FORWARD -o %i -j ACCEPT {% for peer in wireguard_peers %} -- cgit v1.2.3