ryandaniels.server_update_reboot

ansible-role-server-update-reboot

Ansible-Rolle, um den Server auf die neuesten Pakete zu aktualisieren, den Server neu zu starten und auf die Wiederinbetriebnahme des Servers zu warten. Fügen Sie nach dieser Rolle weitere Rollen hinzu, um die Installation/konfiguration des Servers fortzusetzen.
Pakete können auch von der Aktualisierung ausgeschlossen werden, nur bestimmte Pakete aktualisiert oder bestimmte Pakete installiert werden.
Funktioniert mit Redhat/CentOS und Ubuntu.

Kann verwendet werden, um Pakete für Meltdown/Spectre-Minderung für Redhat/CentOS 7 und Ubuntu 16.04 zu aktualisieren.

Ein detaillierteres Beispiel finden Sie im Blogbeitrag: Ansible verwenden, um Ubuntu, CentOS und Redhat zu aktualisieren

Erfordert: Ansible 2.7.1 (verwendet das Modul reboot und 2.7.1 behebt reboot_timeout)

Hinweis:
Diese Rolle kann den Server neu starten, wenn ein Kernel-Update erfolgt und die Neustartvariable wahr ist (Neustart ist die Standardeinstellung).

Getestete Distributionen

  • Ubuntu 18.04 / 16.04
  • CentOS & RHEL 7.x

Gruppenvariablen

./group_vars/centos-dev/proxy.yml
Mit Proxy:

proxy_env:
  http_proxy: http://my.internal.proxy:80
  https_proxy: https://my.internal.proxy:80

Ohne Proxy:

proxy_env: []

Standardeinstellungen

  • debug_enabled_default: true|false (Standard false)
  • update_default: true|false (Standard true)
  • reboot_default: true|false (Standard true)
  • server_update_reboot_pre_delay: Zeit (in Sekunden), die gewartet werden soll, bevor Aufgaben in dieser Rolle ausgeführt werden
  • server_update_reboot_pre_reboot_delay: Zeit (in Sekunden), die gewartet werden soll, bevor neu gestartet wird
  • server_update_reboot_post_reboot_delay: Zeit (in Sekunden), die nach dem Neustart gewartet werden soll
  • server_update_reboot_reboot_timeout: Maximale Zeit (in Sekunden), die auf den Neustart des Servers gewartet wird

Variablen für RHEL/CentOS:

  • server_update_yum_exclude_pkgs: durch Kommas getrennte Liste von Paketen, die von der Aktualisierung ausgeschlossen werden sollen. Wildcards können verwendet werden. (Standard [])
  • server_update_yum_install_pkgs: durch Kommas getrennte Liste von Paketen, die NUR aktualisiert werden sollen. Wildcards können verwendet werden. (Standard '*' bedeutet alle Pakete)

Variablen für Ubuntu:

  • server_update_apt_exclude_default: true|false. auf true setzen, wenn die folgende Ausschlussliste verwendet wird (Standard false)
  • server_update_apt_exclude_pkgs: Liste von Paketen, die nicht aktualisiert werden sollen (einzelne Zeilen). Kann Wildcards enthalten (verwenden Sie jedoch ^ am Anfang des Musters, um viele Übereinstimmungen zu vermeiden). (Standard undefiniert)
  • server_update_apt_default: full|update_specific|install (Standard full)
    • full: alle Pakete mit "apt-get dist-upgrade" aktualisieren
    • update_specific: nur die aus der Variable server_update_apt_install_pkgs angegebene Liste aktualisieren
    • install: nur die aus der Variable server_update_apt_install_pkgs angegebene Liste installieren
  • server_update_apt_install_pkgs: Liste von Paketen, die NUR aktualisiert oder installiert werden sollen (einzelne Zeilen). Kann Wildcards enthalten, um mehrere Pakete zuzuordnen. (Standard undefiniert)

Beispiel-Playbook server-update-reboot.yml

Das folgende Beispiel-Playbook aktualisiert/startet einen Server gleichzeitig (unter Verwendung von max_fail_percentage und serial Variablen). Wenn Sie alles auf einmal aktualisieren/neustarten möchten, entfernen Sie die Kommentierung dieser Zeilen.

---
- hosts: '{{inventory}}'
  max_fail_percentage: 0
  serial: 1
  become: yes
  roles:
#  - stop-applications
  - server-update-reboot
#  - server-config-xyz
#  - start-applications

Vorbereitung

  • Ansible installieren
  • Schlüssel erstellen
  • SSH zum Client, um einen Eintrag in die known_hosts-Datei hinzuzufügen
  • Konfigurieren Sie die autorisierten Schlüssel des Client-Servers
  • Ansible-Befehle ausführen

Verwendung

Für Redhat/CentOS/Ubuntu

Verwenden Sie alle Standardeinstellungen, um: zu aktualisieren, den Server neu zu starten und auf die Wiederinbetriebnahme des Servers zu warten:

ansible-playbook server-update-reboot.yml --extra-vars "inventory=all-dev" -i hosts-dev

Gleich wie oben, aber den Server nicht neu starten:

ansible-playbook server-update-reboot.yml --extra-vars "inventory=all-dev reboot_default=false" -i hosts-dev

Für Redhat/CentOS

Aktualisieren Sie alle Pakete, mit Ausnahme der angegebenen Pakete (für RHEL):

ansible-playbook server-update-reboot.yml --extra-vars 'inventory=centos-dev server_update_yum_exclude_pkgs="mysql*, bash, openssh*"' -i hosts-dev

Nur spezifische Pakete (einzelne Zeilen) aktualisieren (oder installieren) (für RHEL):

ansible-playbook server-update-reboot.yml --extra-vars "inventory=centos-dev server_update_yum_install_pkgs='kernel-*, iwl*firmware, microcode_ctl, dracut'" -i hosts-dev

Für Ubuntu

Aktualisieren Sie alle Pakete, mit Ausnahme der angegebenen Pakete (für Ubuntu):

ansible-playbook server-update-reboot.yml --extra-vars 'inventory=ubuntu-dev server_update_apt_exclude_default=true' --extra-vars '{"server_update_apt_exclude_pkgs": [bash, openssl, ^mysql*, ^openssh*]}' -i hosts-dev

Nur spezifische Pakete (einzelne Zeilen) aktualisieren (für Ubuntu):

ansible-playbook server-update-reboot.yml --extra-vars "inventory=ubuntu-dev server_update_apt_default=update_specific" --extra-vars "{'server_update_apt_install_pkgs': [linux-firmware, linux-generic, linux-headers-generic, linux-image-generic, intel-microcode, openssh*]}" -i hosts-dev

Nur spezifische Pakete (einzelne Zeilen) installieren (für Ubuntu). Seien Sie vorsichtig mit Wildcards:

ansible-playbook server-update-reboot.yml --extra-vars "inventory=ubuntu-dev server_update_apt_default=install" --extra-vars "{'server_update_apt_install_pkgs': [bash, openssh-server]}" -i hosts-dev

Spectre/Meltdown-Minderung

Um Redhat/CentOS 7 und Ubuntu 16.04 zu patchen, für Spectre und Meltdown (CVE-2017-5754, CVE-2017-5753, CVE-2017-5715)
Info von Ubuntu
Info von Redhat

Oder patchen Sie einfach alles mit dem ersten Befehl oben.

Für Redhat/CentOS 7 (Spectre/Meltdown-Minderung)

ansible-playbook server-update-reboot.yml --extra-vars "inventory=centos-dev server_update_yum_install_pkgs='kernel-*, iwl*firmware, microcode_ctl, dracut'" -i hosts-dev

Für Ubuntu 16.04 (Spectre/Meltdown-Minderung)

ansible-playbook server-update-reboot.yml --extra-vars "inventory=ubuntu-dev server_update_apt_default=update_specific" --extra-vars "{'server_update_apt_install_pkgs': [linux-firmware, linux-generic, linux-headers-generic, linux-image-generic, intel-microcode]}" -i hosts-dev

Hinweise

RHEL5

RHEL/CentOS 5 hat eine Abhängigkeit, die installiert werden muss: python-simplejson
Dieser Befehl verwendet das raw-Modul, um es zu installieren:

ansible centos5 -m raw -a "yum install -y python-simplejson" --become --ask-pass --become-method=su --ask-become-pass --extra-vars="ansible_ssh_user=username123" -i hosts-dev

SELinux

Wenn SELinux aktiviert/permissiv ist, wird eine Abhängigkeit benötigt: libselinux-python
Dieser Befehl verwendet das raw-Modul, um es zu installieren:

ansible centos5 -m raw -a "yum install -y libselinux-python" --become --ask-pass --become-method=su --ask-become-pass --extra-vars="ansible_ssh_user=username123" -i hosts-dev
Über das Projekt

Role to update packages on linux and optionally reboot

Installieren
ansible-galaxy install ryandaniels.server_update_reboot
Lizenz
mit
Downloads
15.9k
Besitzer
Ansible all the things