mirror of
https://github.com/RWejlgaard/pez-infra.git
synced 2026-05-06 04:14:43 +00:00
64 lines
1.8 KiB
YAML
64 lines
1.8 KiB
YAML
---
|
|
# Update all hosts (apt for Linux, pkg for FreeBSD, apk for Alpine).
|
|
# Usage: ansible-playbook playbooks/update-all.yml
|
|
|
|
- name: Update Linux hosts (apt)
|
|
hosts: linux
|
|
ignore_unreachable: true
|
|
tags: [update, linux]
|
|
tasks:
|
|
- name: Apt update + upgrade + autoremove
|
|
ansible.builtin.apt:
|
|
update_cache: true
|
|
upgrade: dist
|
|
autoremove: true
|
|
autoclean: true
|
|
register: apt_result
|
|
|
|
- name: Show upgrade summary
|
|
ansible.builtin.debug:
|
|
msg: "{{ apt_result.stdout_lines | default(['No output']) }}"
|
|
|
|
- name: Check if reboot is required
|
|
ansible.builtin.stat:
|
|
path: /var/run/reboot-required
|
|
register: reboot_required
|
|
|
|
- name: Notify if reboot needed
|
|
ansible.builtin.debug:
|
|
msg: "WARNING: REBOOT REQUIRED on {{ inventory_hostname }}"
|
|
when: reboot_required.stat.exists
|
|
|
|
- name: Update Alpine hosts (apk)
|
|
hosts: alpine
|
|
ignore_unreachable: true
|
|
tags: [update, alpine]
|
|
tasks:
|
|
- name: Apk update + upgrade
|
|
community.general.apk:
|
|
update_cache: true
|
|
upgrade: true
|
|
register: apk_result
|
|
|
|
- name: Show upgrade summary
|
|
ansible.builtin.debug:
|
|
msg: "{{ apk_result.stdout_lines | default(['No output']) }}"
|
|
|
|
- name: Update FreeBSD hosts (pkg)
|
|
hosts: freebsd
|
|
ignore_unreachable: true
|
|
tags: [update, freebsd]
|
|
tasks:
|
|
- name: Pkg update
|
|
ansible.builtin.command: pkg update -f
|
|
register: pkg_update_result
|
|
changed_when: "'Updating' in pkg_update_result.stdout"
|
|
|
|
- name: Pkg upgrade
|
|
ansible.builtin.command: pkg upgrade -y
|
|
register: pkg_upgrade_result
|
|
changed_when: "'upgraded' in pkg_upgrade_result.stdout or 'installed' in pkg_upgrade_result.stdout"
|
|
|
|
- name: Show upgrade summary
|
|
ansible.builtin.debug:
|
|
msg: "{{ pkg_upgrade_result.stdout_lines | default(['No output']) }}"
|