diff options
| author | Kumar Damani <me@kumardamani.net> | 2022-09-07 20:40:17 +0000 |
|---|---|---|
| committer | Kumar Damani <me@kumardamani.net> | 2022-09-07 20:40:17 +0000 |
| commit | bbe10895d9df8dd7899bbd65575d5bf12e57f8c8 (patch) | |
| tree | 244d2f1ad38320863fb60f695c88c97799be1171 /roles/wireguard | |
| parent | 4d34de2f5e757bfeae5738547aabb61d3d28a2f8 (diff) | |
| parent | c85806e3289b5e207d51d382f8dc75edad04404d (diff) | |
Merge branch 'alpine' into 'master'
switched to alpine initial commit
See merge request kdam0/vps!2
Diffstat (limited to 'roles/wireguard')
| -rw-r--r-- | roles/wireguard/handlers/main.yaml | 5 | ||||
| -rw-r--r-- | roles/wireguard/tasks/main.yaml | 38 | ||||
| -rw-r--r-- | roles/wireguard/templates/wg0.conf.j2 | 7 |
3 files changed, 38 insertions, 12 deletions
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 %} |
