63 lines
1.8 KiB
YAML
63 lines
1.8 KiB
YAML
---
|
|
- name: Update all servers (FreeBSD, Rocky9, Debian)
|
|
hosts: all
|
|
become: yes
|
|
gather_facts: yes
|
|
|
|
tasks:
|
|
|
|
##################################################
|
|
# Debian / Ubuntu
|
|
##################################################
|
|
- name: Update package cache (Debian/Ubuntu)
|
|
apt:
|
|
update_cache: yes
|
|
when: ansible_facts['os_family'] == "Debian"
|
|
|
|
- name: Upgrade all packages (Debian/Ubuntu)
|
|
apt:
|
|
upgrade: dist
|
|
register: debian_update
|
|
when: ansible_facts['os_family'] == "Debian"
|
|
|
|
- name: Reboot Debian only if packages changed
|
|
reboot:
|
|
when:
|
|
- ansible_facts['os_family'] == "Debian"
|
|
- debian_update is defined
|
|
- debian_update.changed
|
|
|
|
##################################################
|
|
# Rocky 9 / RHEL family (uses DNF)
|
|
##################################################
|
|
- name: Upgrade all packages (RHEL/Rocky)
|
|
dnf:
|
|
name: "*"
|
|
state: latest
|
|
register: rhel_updates
|
|
when: ansible_facts['os_family'] == "RedHat"
|
|
|
|
- name: Reboot RHEL only if packages changed
|
|
reboot:
|
|
when:
|
|
- ansible_facts['os_family'] == "RedHat"
|
|
- rhel_update is defined
|
|
- rhel_update.changed
|
|
|
|
##################################################
|
|
# FreeBSD
|
|
##################################################
|
|
- name: Upgrade all packages and refresh repo cache (FreeBSD)
|
|
community.general.pkgng:
|
|
name: "*"
|
|
state: latest
|
|
register: freebsd_update
|
|
when: ansible_facts['os_family'] == "FreeBSD"
|
|
|
|
- name: Reboot FreeBSD only if packages changed
|
|
reboot:
|
|
when:
|
|
- ansible_facts['os_family'] == "FreeBSD"
|
|
- freebsd_update is defined
|
|
- freebsd_update.changed
|