summaryrefslogtreecommitdiffstats
path: root/roles/gateway/tasks
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2025-09-12 00:17:35 +0200
committerAhmed Abdelhalim <[email protected]>2025-09-12 00:17:35 +0200
commit4a812a999a79dae501db62e0eeb9e33e34282b83 (patch)
tree7843b04b7f6be1eac6d5d4e421b38a5e12bb4fec /roles/gateway/tasks
parentd8bd623f3a86e7f472cd034f627a86dc8ccf4955 (diff)
Implement the gateway role (replacing old wireguard-gateway)
Diffstat (limited to 'roles/gateway/tasks')
-rw-r--r--roles/gateway/tasks/main.yml73
1 files changed, 73 insertions, 0 deletions
diff --git a/roles/gateway/tasks/main.yml b/roles/gateway/tasks/main.yml
new file mode 100644
index 00000000..f0bdb4d4
--- /dev/null
+++ b/roles/gateway/tasks/main.yml
@@ -0,0 +1,73 @@
+---
+- name: "Ensure iptables and iproute2 are installed"
+ become: true
+ ansible.builtin.package:
+ name:
+ - "iptables"
+ - "iproute2"
+ state: "present"
+
+- name: "Configure IP forwarding"
+ become: true
+ ansible.builtin.blockinfile:
+ path: "/etc/sysctl.conf"
+ state: "{{ 'present' if gateway_enabled else 'absent' }}"
+ prepend_newline: true
+ append_newline: true
+ marker: "# ==== {mark} ANSIBLE GATEWAY CONFIG"
+ create: true
+ mode: "0644"
+ block: |
+ net.ipv4.ip_forward=1
+ net.ipv6.conf.all.forwarding=1
+ notify: "Reload sysctl"
+
+- name: "Deploy gateway apply rules script"
+ become: true
+ ansible.builtin.template:
+ src: "gateway-apply-rules.sh.j2"
+ dest: "/usr/local/bin/gateway-apply-rules"
+ mode: "0755"
+ owner: "root"
+ group: "root"
+
+- name: "Deploy udev rules for WireGuard interface events"
+ become: true
+ ansible.builtin.template:
+ src: "99-wireguard-gateway.rules.j2"
+ dest: "/etc/udev/rules.d/99-wireguard-gateway.rules"
+ mode: "0644"
+ owner: "root"
+ group: "root"
+ notify: "Reload udev"
+
+- name: "Deploy gateway VPN mode systemd service"
+ become: true
+ ansible.builtin.template:
+ src: "gateway-vpn-mode.service.j2"
+ dest: "/etc/systemd/system/gateway-vpn-mode.service"
+ mode: "0644"
+ notify: "Reload systemd"
+
+- name: "Deploy gateway direct mode systemd service"
+ become: true
+ ansible.builtin.template:
+ src: "gateway-direct-mode.service.j2"
+ dest: "/etc/systemd/system/gateway-direct-mode.service"
+ mode: "0644"
+ notify: "Reload systemd"
+
+- name: "Deploy gateway init systemd service"
+ become: true
+ ansible.builtin.template:
+ src: "gateway-init.service.j2"
+ dest: "/etc/systemd/system/gateway-init.service"
+ mode: "0644"
+ notify: "Reload systemd"
+
+- name: "Enable gateway init service"
+ become: true
+ ansible.builtin.systemd_service:
+ name: "gateway-init.service"
+ enabled: "{{ gateway_enabled }}"
+ daemon_reload: true