Tronde.ansible_role_rhel_patchmanagement
RHEL-Patchmanagement
Patchmanagement für Red Hat Enterprise Linux Server.
Anwendungsfall
In unserer Umgebung setzen wir RHEL-Server für unsere Abteilungen ein, um deren Anwendungen zu betreiben.
Diese Rolle wurde geschrieben, um einen Mechanismus bereitzustellen, der es ermöglicht, Red Hat Advisories einmal im Monat auf Zielknoten zu installieren. Der Sysadmin kann auswählen, welche Advisories installiert werden sollen, z.B. RHSA, RHBA und/oder RHEA.
In unserem speziellen Anwendungsfall werden nur RHSA installiert, um ein Mindestmaß an Sicherheit zu gewährleisten. Die Installation erfolgt einmal im Monat. Die Advisories werden in "Patch-Sets" zusammengefasst. So wird sichergestellt, dass die gleichen Advisories in allen Stufen während eines Patch-Zyklus verwendet werden.
Im Ansible-Inventory sind die Knoten in eine der folgenden Gruppen zusammengefasst, die definieren, wann ein Knoten für die Patch-Installation eingeplant ist:
- [rhel-patch-phase1] - am zweiten Dienstag eines Monats
- [rhel-patch-phase2] - am dritten Dienstag eines Monats
- [rhel-patch-phase3] - am vierten Dienstag eines Monats
- [rhel-patch-phase4] - am vierten Mittwoch eines Monats
Falls Pakete auf den Zielknoten aktualisiert wurden, werden die Hosts anschließend neu gestartet.
Da die Produktionssysteme am wichtigsten sind, sind sie in zwei separate Gruppen (phase3 und phase4) unterteilt, um das Risiko von Fehlern und Ausfallzeiten durch die Installation von Advisories zu verringern.
Natürlich können Sie selbst entscheiden, welche Hosts in welche Phase und an welchem Tag Sie einen Patch-Zyklus durchführen möchten. Passen Sie die Rolle gerne an Ihre Bedürfnisse an.
Ein Bash-Skript wird verwendet, um das Playbook zu starten, das das Patch-Management zum vorgesehenen Termin ausführt.
Sobald die Rolle eingerichtet ist, läuft das RHEL-Patchmanagement vollautomatisch. Bitte verwenden Sie den Issue-Tracker, um Fragen zur Nutzung der Rolle oder zur Rolle selbst zu stellen und Fehler zu melden, die Sie möglicherweise finden.
Wie erhalten Sie die Advisory-Informationen?
Um die Advisory-Informationen abzurufen und ein Patch-Set in vars/main.yml
zu erstellen, müssen Sie das Skript create_vars.sh
ausführen.
Für weitere Informationen über die Advisories können Sie sich für die Red Hat Advisory Notifications im Kundenportal anmelden oder den Befehl yum updateinfo list all
verwenden, um die Advisory-Informationen abzurufen.
Rollenvariablen
Die Rollenvariablen in vars/main.yml
werden automatisch vom Skript create_vars.sh
gesetzt, das durch Cron ausgelöst wird.
Beispiel-Playbook
Ein Beispiel, wie Sie Ihre Rolle verwenden können (zum Beispiel mit als Parameter übergebenen Variablen), ist immer hilfreich für die Benutzer:
hosts: all
tasks:
- name: Nach Betriebssystem gruppieren group_by: key=os_{{ ansible_distribution }} changed_when: False
hosts: os_RedHat roles:
- rhel_patchmanagement
Wie man diese Rolle benutzt
Bitte beachten Sie, dass das folgende Handbuch für den oben beschriebenen Anwendungsfall gedacht ist. Möglicherweise müssen Sie einige Dinge anpassen, wenn Sie einen anderen Anwendungsfall haben. Ich gehe davon aus, dass Sie dieses Repository bereits geklont oder alle notwendigen Dateien heruntergeladen haben. Danach müssen Sie die folgenden Schritte ausführen, um das RHEL-Patchmanagement zum Laufen zu bringen.
- Bearbeiten Sie
run_rhel_patch_mgmt.sh
und fügen Sie den SSH-Private-Key ein, der verwendet wird, um eine Verbindung zu Ihren Knoten herzustellen. - Erstellen Sie einen Cronjob, der
run_rhel_patch_mgmt.sh
jeden Dienstag und Mittwoch zu einer gewählten Zeit ausführt. Das Skript löst das Ansible-Playbook zu den im Anwendungsfall beschriebenen Zeiten aus. Sie können es an Ihre Bedürfnisse anpassen. - Möglicherweise müssen Sie
patch_rhel.yml
bearbeiten, um es Ihren Anforderungen anzupassen. Standardmäßig läuft dieses Playbook auf allen Hosts Ihres Inventars, die ein Red Hat-Betriebssystem installiert haben und Mitglieder der entsprechenden rhel-patch-phaseX-Gruppe sind. - Benennen Sie
variables.txt.example
invariables.txt
um und bearbeiten Sie die Datei entsprechend Ihrer Umgebung. - Bearbeiten Sie
create_vars.sh
und setzen Sie den Pfad zu dervariables.txt
-Datei. - Benennen Sie
variables.py.example
invariables.py
um und bearbeiten Sie die Datei, um den absoluten Pfad zu Ihrer Ansible-Inventory-Datei anzugeben. - Standardmäßig wird
create_vars.sh
am ersten Dienstag des Monats ausgeführt, um eine neuevars/main.yml
-Datei mit einem aktuellen Patch-Set und der Dateimail_text.txt
zu erstellen. - Sie können die Funktion
send_mail
verwenden, um automatisch eine Benachrichtigung an eine angegebene E-Mail-Adresse zu senden. Diese Funktion ist standardmäßig aktiviert. - Optional: Sie können den Inhalt von
mail_text.txt
verwenden, um Ihre Benutzer darüber zu informieren, welche Advisories installiert werden.
Lizenz
MIT
Autoreninformationen
- Original: Joerg Kastning <joerg(dot)kastning(at)uni-bielefeld(dot)de>
ansible-galaxy install Tronde.ansible_role_rhel_patchmanagement