In diesem Blog werden wir ein einfaches Ansible-Server-Aktualisierungsskript aufnehmen und es in ein risikobasiertes Update-System verwandeln. Hier werden Server mit dem niedrigsten Risiko zuerst gepatcht und geben uns die Möglichkeit, gründlich zu testen, bevor wir zu Systemen mit höherer Priorität übergehen.
Die geheime Sauce? Einrichten gut definierter Gruppen, um diesen Fluss nahtlos zu machen. Aber die eigentliche Frage ist: Können wir dies ohne wesentliche Änderungen an unserem Ansible -Skript vom letzten Mal abziehen? Lass uns herausfinden!
Die Host -Datei steht im Mittelpunkt dieser Änderung. Im letzten Beitrag haben wir eine statische Datei verwendet, die nach Servertypen gruppiert wurde. Jetzt fügen wir eine zweite Gruppenschicht nach Risikostufe hinzu, die der Hostdatei eine gewisse Komplexität verleiht.
Aber hier ist die Wendung: Was ist, wenn unsere Host -Datei dynamisch aus einer generischen Quelle generiert werden könnte? Das würde die Dinge flexibel halten und uns vor endloser Dateibearbeitung retten!
Ansible kann mit dynamisch erstellten Hostdateien funktionieren, was uns eine flexiblere Möglichkeit bietet, Server im Auge zu behalten. In diesem Beispiel werden wir eine Excel -Datei verwenden, um unsere Hosts zu organisieren.
Beispiel hosts_data.xlsx Struktur:
host name | server Umgebung | ansible user | server type | dns | Notes |
---|---|---|---|---|---|
Minze | dev | Richard | desktop | desktop.sebostech.local | Mint Desk top |
ansible_node | dev | ansible_admin | ansible | ansible_node.sebostech.local | Entwicklungsserver; Nur monatlich aktualisiert |
klone_master | dev | ansible_admin | Klon | clone.dev.sebostech.local | Entwicklungsserver; Nur monatlich aktualisiert |
mele | staging | Richard | nas | nas.stage.sebostech.local | Testserver; Verwendet für Anwendungstests |
pbs | Produktion | Wurzel | backup server | pbs.prod.sebostech.local | Testserver; Verwendet für Anwendungstests |
pve | Produktion | Wurzel | hypervisor | api.stage.sebostech.local | Testserver; Verwendet für Anwendungstests |
Samba | Produktion | Richard | nas | nas.prod.sebostech.local | Critical Server; Benötigt tägliche Sicherung |
Firewall | Produktion | Richard | Firewall | firewall.sebostech.local | Critical Server; Benötigt tägliche Sicherung |
Die meisten IT -Abteilungen haben bereits eine Liste von Servern in einer Excel -Datei. Warum also nicht nutzen? Dieser Ansatz erleichtert es einfach, unsere Ansible-Hosts ohne ständige manuelle Aktualisierungen organisiert und auf dem neuesten Stand zu halten.
Aber wie verwendet Ansible die Excel -Datei? Lassen Sie uns darüber eingehen, wie wir diese Daten in ein verwendbares dynamisches Inventar verwandeln können!
## This will run agains all host ansible-playbook -i dynamic_inventory.py playbook.yml
Sie können auch Umgebungsvariablen verwenden, um bestimmte Gruppen basierend auf der Serverumgebung, dem Servertyp oder sogar einer Kombination von beiden zu zielen:
## 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"
Benötigen Sie neue Gruppen? Aktualisieren Sie einfach die Excel-Datei und passen Sie das Python-Skript entsprechend so an!
Für einen Blick auf den Python -Code siehe hier.
Als ich ansible anfing, war die Hosts-Datei meine Anlaufstelle. Aber als ich mehr Server hinzufügte, insbesondere solche mit doppelten Rollen, wurde diese Datei immer komplexer.
Könnten Sie eine traditionelle Hosts -Datei verwenden, um dies zu erreichen? Sicher, aber es gibt ein paar Nachteile.
Mit 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 dagegen bietet eine saubere, leicht zu machende Struktur, die die Dinge organisiert.
In einer Unternehmensumgebung besteht eine gute Chance, dass es bereits mindestens eine Excel -Datei mit einer Serverliste gibt. Warum also nicht die Vorteile von
nutzen?Wenn Sie möchten, dass ich tiefer in den Python -Code eintauche, lassen Sie es mich einfach wissen!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3