summaryrefslogtreecommitdiffstats
path: root/roles
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2025-10-20 01:55:06 +0200
committerAhmed Abdelhalim <[email protected]>2025-10-20 15:17:20 +0200
commit34039e4525b21534b20c3aa68a543e0b2d13dda1 (patch)
tree8eb138b6d87004d911257e7cb5783e0e5138bb88 /roles
parenta4892eed8d08dfb5aabd3ed5ba3c931353899b34 (diff)
Implement a better download/install for python, pihole and go role
Diffstat (limited to 'roles')
-rw-r--r--roles/go/tasks/main.yml2
-rw-r--r--roles/pihole/tasks/main.yml7
-rw-r--r--roles/python/tasks/main.yml7
3 files changed, 15 insertions, 1 deletions
diff --git a/roles/go/tasks/main.yml b/roles/go/tasks/main.yml
index 69c552bf..f29e6c2d 100644
--- a/roles/go/tasks/main.yml
+++ b/roles/go/tasks/main.yml
@@ -1,7 +1,7 @@
---
- name: "Check installed go versions"
ansible.builtin.command:
- cmd: "go version"
+ cmd: "/usr/local/go/bin/go version"
register: go_installed_version
changed_when: false
failed_when: false
diff --git a/roles/pihole/tasks/main.yml b/roles/pihole/tasks/main.yml
index 6556a7ce..0d21fc07 100644
--- a/roles/pihole/tasks/main.yml
+++ b/roles/pihole/tasks/main.yml
@@ -45,11 +45,17 @@
tags:
- molecule-idempotence-notest
+- name: "Check if pihole binary exists"
+ ansible.builtin.stat:
+ path: "/usr/local/bin/pihole"
+ register: pihole_binary
+
- name: "Download Pi-hole installer"
ansible.builtin.get_url:
url: "https://install.pi-hole.net"
dest: "/tmp/install_pihole.sh"
mode: "0755"
+ when: not pihole_binary.stat.exists
- name: "Run Pi-hole installer"
ansible.builtin.command:
@@ -59,6 +65,7 @@
PIHOLE_SKIP_OS_CHECK: "true"
args:
creates: "/usr/local/bin/pihole"
+ when: not pihole_binary.stat.exists
- name: "Show install output"
ansible.builtin.debug:
diff --git a/roles/python/tasks/main.yml b/roles/python/tasks/main.yml
index 55f4e34a..ddecbbbb 100644
--- a/roles/python/tasks/main.yml
+++ b/roles/python/tasks/main.yml
@@ -2,17 +2,24 @@
- name: "Include OS-specific variables"
ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml"
+- name: "Check if uv binary exists"
+ ansible.builtin.stat:
+ path: "{{ ansible_env.HOME }}/.local/bin/uv"
+ register: python_uv_binary
+
- name: "Download uv installer"
ansible.builtin.get_url:
url: "https://astral.sh/uv/install.sh"
dest: "/tmp/install_uv.sh"
mode: "0755"
+ when: not python_uv_binary.stat.exists
- name: "Run uv installer"
ansible.builtin.command:
cmd: "/tmp/install_uv.sh"
args:
creates: "{{ ansible_env.HOME }}/.local/bin/uv"
+ when: not python_uv_binary.stat.exists
- name: "Add uv to shell profile"
ansible.builtin.blockinfile: