joe-speedboat.os_update
Rollenname
Diese Rolle wendet Sicherheitsupdates oder vollständige Patches auf Red Hat-, Ubuntu- und Alpine- Maschinen an.
Sie kann:
- Sicherheits- oder Vollpatches durchführen
- Alte Kernversionen bereinigen
- Notwendige Neustarts erkennen und durchführen (siehe Variablen)
Da ich nur mit AWX (v20.0.1) arbeite, ist sie nur mit den (neuesten) Ansible-Versionen dieser Plattform getestet.
Voraussetzungen
Aktive Internetverbindung und richtige Repository-Konfiguration auf den Maschinen.
Unterstützte Betriebssysteme:
RHEL, CentOS, Rocky, Alma
- Version: 6-9
Ubuntu LTS: 20.04, 22.04
Alpine: stable-latest
Debian sollte funktionieren, ich verwende nur LTS-Distributionen, die eine SLA haben können.
Mint funktioniert, hat aber keinen Fokus (persönliche Bedürfnisse)
Rollenvariablen
- gather_facts ist deaktiviert, da wir zuerst entscheiden müssen, ob der Host online ist.
Wir tun dies mehrmals, um Lade- und Verbindungsprobleme zu vermeiden.
Bitte schaue imtests
-Ordner nach.
Die meisten Variablen haben ein varname_default
Äquivalent, das dazu gedacht ist, das Standardverhalten auf Playbook-Ebene zu überschreiben.
So kannst du das Standardverhalten für alle Ziele definieren, die keine Variablen definiert haben, z.B. vollständige oder Sicherheits-Patches.
Lass uns ein Beispiel machen:
- Das Standardwert von
os_update_reboot
indefaults/main.yml
ist aufTrue
gesetzt - Im Playbook definierst du
os_update_reboot_default
mitFalse
- In der Inventarliste hast du
os_update_reboot
für deine Hostgruppetesting
aufTrue
gesetzt. Somit werden alle deine Hosts nach dem Patchen keinen Neustart durchführen, außer deine Hostgruppetesting
.... Voilà, clever, oder?
Denke daran: varname
hat immer Vorrang, varname_default
überschreibt nur das Standardverhalten der Rolle.
os_update_level:
sicherheit
os_update_level: [none|security|full]os_update_reboot:
wahr
os_update_reboot: [true|false]os_update_remove_old_kernel:
wahr
os_update_remove_old_kernel: [true|false]os_update_keep_kernel_nr:
2
Abhängigkeiten
Bisher keine.
Beispiel-Spielbuch
Überprüfe das Testverzeichnis auf Beispiele.
Lizenz
GPLv3
Security or full patching, cleanup old kernel versions, detect needed reboots and boot them. All that is controlled by defaults in clever way :-)
ansible-galaxy install joe-speedboat.os_update