Add Alpine apk support to linux_patch role — update check, upgrade, reboot detection
This commit is contained in:
@@ -30,6 +30,13 @@
|
|||||||
failed_when: upgradable_packages.rc not in [0, 100]
|
failed_when: upgradable_packages.rc not in [0, 100]
|
||||||
when: ansible_os_family == "RedHat"
|
when: ansible_os_family == "RedHat"
|
||||||
|
|
||||||
|
- name: Get list of upgradable packages (Alpine)
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
apk list --upgradable 2>/dev/null | awk -F'-[0-9]' '{print $1}'
|
||||||
|
register: upgradable_packages
|
||||||
|
changed_when: false
|
||||||
|
when: ansible_os_family == "Alpine"
|
||||||
|
|
||||||
- name: Log packages to be updated
|
- name: Log packages to be updated
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: "Packages to be updated on {{ inventory_hostname }}: {{ upgradable_packages.stdout_lines | length }} packages"
|
msg: "Packages to be updated on {{ inventory_hostname }}: {{ upgradable_packages.stdout_lines | length }} packages"
|
||||||
@@ -53,6 +60,13 @@
|
|||||||
register: dnf_upgrade_result
|
register: dnf_upgrade_result
|
||||||
when: ansible_os_family == "RedHat"
|
when: ansible_os_family == "RedHat"
|
||||||
|
|
||||||
|
- name: Perform upgrade (Alpine)
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
apk update && apk upgrade
|
||||||
|
register: apk_upgrade_result
|
||||||
|
changed_when: "'OK' in apk_upgrade_result.stdout"
|
||||||
|
when: ansible_os_family == "Alpine"
|
||||||
|
|
||||||
- name: Gather package facts after patching
|
- name: Gather package facts after patching
|
||||||
ansible.builtin.package_facts:
|
ansible.builtin.package_facts:
|
||||||
manager: auto
|
manager: auto
|
||||||
@@ -116,6 +130,18 @@
|
|||||||
host_reboot_required: "{{ reboot_required_post.stat.exists | default(false) }}"
|
host_reboot_required: "{{ reboot_required_post.stat.exists | default(false) }}"
|
||||||
when: ansible_os_family == "Debian"
|
when: ansible_os_family == "Debian"
|
||||||
|
|
||||||
|
- name: Check if reboot is required after patching (Alpine)
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
apk version -l = 2>/dev/null | grep -q kernel && echo "yes" || echo "no"
|
||||||
|
register: alpine_reboot_check
|
||||||
|
changed_when: false
|
||||||
|
when: ansible_os_family == "Alpine"
|
||||||
|
|
||||||
|
- name: Update reboot required fact (Alpine)
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
host_reboot_required: "{{ alpine_reboot_check.stdout | trim == 'yes' }}"
|
||||||
|
when: ansible_os_family == "Alpine"
|
||||||
|
|
||||||
- name: Reboot if required and auto_reboot is enabled
|
- name: Reboot if required and auto_reboot is enabled
|
||||||
ansible.builtin.reboot:
|
ansible.builtin.reboot:
|
||||||
reboot_timeout: 300
|
reboot_timeout: 300
|
||||||
|
|||||||
Reference in New Issue
Block a user