Fix bootstrap OS detection — use /etc/os-release instead of ansible_os_family

This commit is contained in:
Semaphore
2026-03-11 10:41:35 -07:00
parent db3c849811
commit 964b2a7909

View File

@@ -1,18 +1,25 @@
---
# Runs before gather_facts using raw commands — no Python required
- name: Check if python3 is installed
ansible.builtin.raw: which python3 || echo "missing"
register: python_check
changed_when: false
- name: Install python3 on Alpine (raw — no Python needed)
- name: Check OS type for bootstrap
ansible.builtin.raw: cat /etc/os-release | grep ^ID= | cut -d= -f2 | tr -d '"'
register: os_id
changed_when: false
- name: Install python3 on Alpine
ansible.builtin.raw: apk add --no-cache python3
when: "'missing' in python_check.stdout"
when: "'missing' in python_check.stdout and 'alpine' in os_id.stdout"
changed_when: true
- name: Install python3 on Debian/Ubuntu (raw — no Python needed)
- name: Install python3 on Debian/Ubuntu
ansible.builtin.raw: apt-get install -y python3
when:
- "'missing' in python_check.stdout"
- ansible_os_family is not defined or ansible_os_family == 'Debian'
when: "'missing' in python_check.stdout and ('debian' in os_id.stdout or 'ubuntu' in os_id.stdout)"
changed_when: true
- name: Install python3 on RHEL/CentOS
ansible.builtin.raw: dnf install -y python3 || yum install -y python3
when: "'missing' in python_check.stdout and ('rhel' in os_id.stdout or 'centos' in os_id.stdout or 'fedora' in os_id.stdout)"
changed_when: true