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!

Um die Effizienz des Lernens von Python in einer begrenzten Zeit zu maximieren, können Sie Pythons DateTime-, Zeit- und Zeitplanmodule verwenden. 1. Das DateTime -Modul wird verwendet, um die Lernzeit aufzuzeichnen und zu planen. 2. Das Zeitmodul hilft, die Studie zu setzen und Zeit zu ruhen. 3. Das Zeitplanmodul arrangiert automatisch wöchentliche Lernaufgaben.

Python zeichnet sich in Gaming und GUI -Entwicklung aus. 1) Spielentwicklung verwendet Pygame, die Zeichnungen, Audio- und andere Funktionen bereitstellt, die für die Erstellung von 2D -Spielen geeignet sind. 2) Die GUI -Entwicklung kann Tkinter oder Pyqt auswählen. Tkinter ist einfach und einfach zu bedienen. PYQT hat reichhaltige Funktionen und ist für die berufliche Entwicklung geeignet.

Python eignet sich für Datenwissenschafts-, Webentwicklungs- und Automatisierungsaufgaben, während C für Systemprogrammierung, Spieleentwicklung und eingebettete Systeme geeignet ist. Python ist bekannt für seine Einfachheit und sein starkes Ökosystem, während C für seine hohen Leistung und die zugrunde liegenden Kontrollfunktionen bekannt ist.

Sie können grundlegende Programmierkonzepte und Fähigkeiten von Python innerhalb von 2 Stunden lernen. 1. Lernen Sie Variablen und Datentypen, 2. Master Control Flow (bedingte Anweisungen und Schleifen), 3.. Verstehen Sie die Definition und Verwendung von Funktionen, 4. Beginnen Sie schnell mit der Python -Programmierung durch einfache Beispiele und Code -Snippets.

Python wird in den Bereichen Webentwicklung, Datenwissenschaft, maschinelles Lernen, Automatisierung und Skripten häufig verwendet. 1) In der Webentwicklung vereinfachen Django und Flask Frameworks den Entwicklungsprozess. 2) In den Bereichen Datenwissenschaft und maschinelles Lernen bieten Numpy-, Pandas-, Scikit-Learn- und TensorFlow-Bibliotheken eine starke Unterstützung. 3) In Bezug auf Automatisierung und Skript ist Python für Aufgaben wie automatisiertes Test und Systemmanagement geeignet.

Sie können die Grundlagen von Python innerhalb von zwei Stunden lernen. 1. Lernen Sie Variablen und Datentypen, 2. Master -Steuerungsstrukturen wie wenn Aussagen und Schleifen, 3. Verstehen Sie die Definition und Verwendung von Funktionen. Diese werden Ihnen helfen, einfache Python -Programme zu schreiben.

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Dreamweaver Mac
Visuelle Webentwicklungstools

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software