Fix bootstrap OS detection — use /etc/os-release instead of ansible_os_family
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user