Heim  >  Artikel  >  Backend-Entwicklung  >  Dynamische risikobasierte Updates mit Python und Excel

Dynamische risikobasierte Updates mit Python und Excel

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-04 19:44:02325Durchsuche

Dynamic Risk-Based Updates Using Python and Excel

Dynamische risikobasierte Updates mit Python und Excel“

In diesem Blog nehmen wir ein einfaches Ansible-Server-Update-Skript und verwandeln es in ein Risikobasiertes Update-System. Hier werden die Server mit dem geringsten Risiko zuerst gepatcht, was uns die Möglichkeit gibt, gründlich zu testen, bevor wir zu Systemen mit höherer Priorität übergehen.

  • Ansible-Automatisierung:
    • Dynamische risikobasierte Updates mit Python und Excel“
    • Hostdatei
    • Dynamische Hostliste
    • Warum nicht eine Hosts-Datei verwenden?

Die geheime Soße? Richten Sie klar definierte Gruppen ein, um einen reibungslosen Ablauf zu gewährleisten. Aber die eigentliche Frage ist: Können wir das ohne größere Änderungen an unserem Ansible-Skript vom letzten Mal hinbekommen? Finden wir es heraus!

Hostdatei

Die Hostdatei ist das Herzstück dieser Änderung. Im letzten Beitrag haben wir eine statische Datei verwendet, die nach Servertypen gruppiert ist. Jetzt fügen wir eine zweite Ebene der Gruppierung nach Risikostufe hinzu – was die Hostdatei etwas komplexer macht.

Aber hier ist die Wendung: Was wäre, wenn unsere Hostdatei dynamisch aus einer allgemeineren Quelle generiert werden könnte? Das würde die Dinge flexibel halten und uns die endlose Dateibearbeitung ersparen!

Dynamische Hostliste

Ansible kann mit dynamisch erstellten Hostdateien arbeiten, was uns eine flexiblere Möglichkeit bietet, den Überblick über Server zu behalten. In diesem Beispiel verwenden wir eine Excel-Datei, um unsere Hosts zu organisieren.

Beispiel hosts_data.xlsx-Struktur:

Host Name Server Environment Ansible User Server Type DNS Notes
mint dev richard desktop desktop.sebostech.LOCAL Mint desk top
ansible_node dev ansible_admin Ansible ansible_node.sebostech.local Development server; Only updates monthly
clone_master dev ansible_admin clone clone.dev.sebostech.local Development server; Only updates monthly
mele staging richard nas nas.stage.sebostech.local Testing server; Used for application testing
pbs production root backup server pbs.prod.sebostech.local Testing server; Used for application testing
pve production root hypervisor api.stage.sebostech.local Testing server; Used for application testing
samba production richard nas nas.prod.sebostech.local Critical server; Requires daily backup
firewall production richard firewall firewall.sebostech.local Critical server; Requires daily backup

Die meisten IT-Abteilungen haben bereits eine Liste der Server in einer Excel-Datei gespeichert. Warum also nicht diese sinnvoll nutzen? Dieser Ansatz macht es einfach, unsere Ansible-Hosts ohne ständige manuelle Updates organisiert und auf dem neuesten Stand zu halten.

Aber wie nutzt Ansible die Excel-Datei? Lassen Sie uns untersuchen, wie wir diese Daten in ein nutzbares dynamisches Inventar umwandeln können!

## This will run agains all host
ansible-playbook -i dynamic_inventory.py playbook.yml

Sie können auch die Option Umgebungsvariablen verwenden, um bestimmte Gruppen anzusprechen, basierend auf Serverumgebung, Servertyp oder sogar einer Kombination aus beidem:

## Just production
SERVER_ENVIRONMENT="production" 
ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web"

## Just nas
SERVER_TYPE="nas" 
ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web"

## production nas
SERVER_ENVIRONMENT="production" 
SERVER_TYPE="nas" 
ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web"

Brauchen Sie neue Gruppen? Aktualisieren Sie einfach die Excel-Datei und passen Sie das Python-Skript entsprechend an – ganz einfach!

Einen Blick auf den Python-Code finden Sie hier.

Warum nicht eine Hosts-Datei verwenden?

Als ich Ansible zum ersten Mal verwendete, war die Hosts-Datei meine erste Wahl. Aber als ich weitere Server hinzufügte, insbesondere solche mit Doppelrollen, wurde diese Datei immer komplexer.

Könnten Sie dazu eine herkömmliche Hosts-Datei verwenden? Sicher – aber es gibt ein paar Nachteile.

Bei einer Hosts-Datei würden Sie wahrscheinlich mit doppelten Einträgen oder zusätzlichen Variablen enden, um die gesamte Struktur zu erfassen, die Sie benötigen. Eine Excel-Datei hingegen bietet eine saubere, leicht zu pflegende Struktur, die für Ordnung sorgt.

In einer Unternehmensumgebung besteht eine gute Chance, dass bereits mindestens eine Excel-Datei mit einer Serverliste vorhanden ist. Warum also nicht davon profitieren?

Wenn Sie möchten, dass ich tiefer in den Python-Code eintauche, lassen Sie es mich einfach wissen!

Das obige ist der detaillierte Inhalt vonDynamische risikobasierte Updates mit Python und Excel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn