summaryrefslogtreecommitdiffstats
path: root/roles/cloudflared/tasks
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-07-17 15:40:59 +0200
committerAhmed Abdelhalim <[email protected]>2026-07-17 15:40:59 +0200
commit28d802e0ebcf6d192ac398a6b64be2760d7ba2a4 (patch)
tree29daf2e814be989fbf8033ecf9353c8417e516bf /roles/cloudflared/tasks
parent22988554510dd5d76df4037cebe8e6662f4dbc61 (diff)
Add cloudflare tunnel configurations
Diffstat (limited to 'roles/cloudflared/tasks')
-rw-r--r--roles/cloudflared/tasks/install-alpine.yml32
-rw-r--r--roles/cloudflared/tasks/install-archlinux.yml23
-rw-r--r--roles/cloudflared/tasks/install-debian.yml23
-rw-r--r--roles/cloudflared/tasks/main.yml7
4 files changed, 85 insertions, 0 deletions
diff --git a/roles/cloudflared/tasks/install-alpine.yml b/roles/cloudflared/tasks/install-alpine.yml
new file mode 100644
index 00000000..28437fc9
--- /dev/null
+++ b/roles/cloudflared/tasks/install-alpine.yml
@@ -0,0 +1,32 @@
+---
+- name: "Check if cloudflared binary exists"
+ ansible.builtin.stat:
+ path: "/usr/local/bin/cloudflared"
+ register: cloudflared_binary
+
+- name: "Download cloudflared binary"
+ become: true
+ ansible.builtin.get_url:
+ url: "https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64"
+ dest: "/usr/local/bin/cloudflared"
+ mode: "0755"
+ owner: "root"
+ group: "root"
+ when: not cloudflared_binary.stat.exists
+
+- name: "Deploy cloudflared OpenRC service"
+ become: true
+ ansible.builtin.template:
+ src: "cloudflared.initd.j2"
+ dest: "/etc/init.d/cloudflared"
+ owner: "root"
+ group: "root"
+ mode: "0755"
+ notify: "Restart cloudflared"
+
+- name: "Start and enable cloudflared"
+ become: true
+ ansible.builtin.service:
+ name: "cloudflared"
+ state: "started"
+ enabled: true
diff --git a/roles/cloudflared/tasks/install-archlinux.yml b/roles/cloudflared/tasks/install-archlinux.yml
new file mode 100644
index 00000000..5d122644
--- /dev/null
+++ b/roles/cloudflared/tasks/install-archlinux.yml
@@ -0,0 +1,23 @@
+---
+- name: "Install cloudflared"
+ become: true
+ ansible.builtin.package:
+ name: "cloudflared"
+ state: "present"
+
+- name: "Deploy cloudflared systemd service"
+ become: true
+ ansible.builtin.template:
+ src: "cloudflared.service.j2"
+ dest: "/etc/systemd/system/cloudflared.service"
+ owner: "root"
+ group: "root"
+ mode: "0644"
+ notify: "Restart cloudflared"
+
+- name: "Start and enable cloudflared"
+ become: true
+ ansible.builtin.service:
+ name: "cloudflared"
+ state: "started"
+ enabled: true
diff --git a/roles/cloudflared/tasks/install-debian.yml b/roles/cloudflared/tasks/install-debian.yml
new file mode 100644
index 00000000..5d122644
--- /dev/null
+++ b/roles/cloudflared/tasks/install-debian.yml
@@ -0,0 +1,23 @@
+---
+- name: "Install cloudflared"
+ become: true
+ ansible.builtin.package:
+ name: "cloudflared"
+ state: "present"
+
+- name: "Deploy cloudflared systemd service"
+ become: true
+ ansible.builtin.template:
+ src: "cloudflared.service.j2"
+ dest: "/etc/systemd/system/cloudflared.service"
+ owner: "root"
+ group: "root"
+ mode: "0644"
+ notify: "Restart cloudflared"
+
+- name: "Start and enable cloudflared"
+ become: true
+ ansible.builtin.service:
+ name: "cloudflared"
+ state: "started"
+ enabled: true
diff --git a/roles/cloudflared/tasks/main.yml b/roles/cloudflared/tasks/main.yml
new file mode 100644
index 00000000..e4a3b36e
--- /dev/null
+++ b/roles/cloudflared/tasks/main.yml
@@ -0,0 +1,7 @@
+---
+- name: "Skip if tunnel token not defined"
+ when: cloudflared_tunnel_token is not defined
+ ansible.builtin.meta: end_role
+
+- name: "Include OS-specific installation tasks"
+ ansible.builtin.include_tasks: "install-{{ ansible_facts['os_family'] | lower }}.yml"