READ OUR TIPS & TRICKS!

Viele Infos rund um den Betrieb von Websites.

Tipps & Tricks - Artikel


Updates über mehrere Server leicht gemacht

, 15. 08. 2020 - 15:22

Verwaltest Du mehrere Server? Dann kennst Du das Problem, wenn Du zum Beispiel auf allen Deinem VPS Package Updates durchführst oder eine Konfiguration änderst, dann musst Du Dich bei jeden einzeln einloggen und die gleiche Aufgabe auf jedem Deiner Server erledigen.

Das kann eine sehr mühsame Sache sein, die Zeit kostet.

Dafür gibt es jedoch eine elegante Lösung. Mit Ansible kannst Du eine Vielzahl an Servern von einem einzigen Node aus verwalten.

Ansible Controller-Server

Der Controller-Server (Ansible) verteilt Module auf Deinen Servern über SSH und diese Module werden temporär auf dem jeweiligen Ziel-Server gespeichert und die Nodes kommunizieren mit Ansible über eine JSON-Verbindung über den Standard-Output.

Ansible hat keine Clients, das bedeutet, Du musst auf den Ziel-Servern keine Software installieren, es laufen dafür auch keine weiteren Prozesse auf diesen Servern. Alles was Du auf den Ziel-Servern benötigst, ist der SSH-Key vom Controller auf dem Ansible läuft.

Ansible selbst ist auch kein Prozess, sondern im wesentlichen eine Ansammlung von Scripts, welche durch Dich als Administrator ausgeführt werden.

Ansible kann hunderte Ziel-Server von einem einzigen Server aus über SSH mit der einfachen Ausführung des Kommandos „ansible“ verwalten. Wenn Du einen neuen Server installierst, kannst Du dafür notwendige Aufgaben in Ansible konfigurieren und so auch gleichzeitig mehrere neue Server aufsetzen. Dieser Prozess wird mit dem Kommando "ansible-playbook" ausgeführt.

Ansible auf Ubuntu 16.04 installieren

Ansible kann sehr einfach über den Package Manager installiert werden:

sudo apt-get install ansible

Die Datei-Struktur von Ansible

Alle Konfigurationsdateien, die Du benötigst, findest Du in /etc/ansible

Hier befindet sich folgende Struktur:

– ansible.cfg
– hosts
d roles
– site.retry
– site.yml

Im Verzeichnis roles sind alle Regeln mit den Aufgaben enthalten, die auf Deinen Ziel-Servern ausgeführt werden sollen.

Es existiert im Verzeichnis roles auch das Verzeichnis _template, welches Du zum Erstellen einer neuen Regel kopieren kannst.

Es gibt jedoch auch eine große Anzahl an existierenden Regeln für Ansible auf Galaxy Ansible, welche Du herunterladen und selbst verwenden kannst.

Für die detaillierte Konfiguration verweisen wir auf die Originaldokumentation unter docs.ansible.com

Die hosts Datei

Nicht zu verwechseln mit /etc/hosts, ansible hat eine eigene hosts Datei /etc/ansible/hosts. Hier konfigurierst Du Deine Server, welche Du auch gruppieren kannst:

green.example.com
blue.example.com
192.168.100.1
192.168.100.10

[webservers]

alpha.example.org
beta.example.org
192.168.1.100
192.168.1.110

[dbservers]

db01.intranet.mydomain.net
db02.intranet.mydomain.net
10.25.1.56
10.25.1.57

Im ersten Block findest Du ungruppierte Server. Der nächste Block ist eine Gruppe. Um Aufgaben auf den Ziel-Servern zu starten, kannst Du dies auch nur für eine bestimmte Gruppe durchführen, weil Du bei der Ausführung von Ansible direkt eine Gruppe adressieren kannst.

Wenn Du Server-Namen hast, die einem bestimmten Muster folgen, zb. www001.domain.com bis www006.domain.com, so kannst Du dies auch in einer einzigen Zeile konfigurieren:
www[001:006].domain.com

Beispiele

Sobald Du Ansible für Deine Anforderungen konfiguriert hast, kannst Du die Aufgaben nun auf allen Servern mit folgendem Kommando ausführen lassen:

$ ansible-playbook /etc/ansible/site.yml

So ist es möglich mehrere Server gleichzeitig zu konfigurieren oder in kurzer Zeit auch nur einen einzigen aufzusetzen, wie z.b. einen Standard Webserver mit Apache und MySQL.

Mit der Option -l schränkst Du die Server Auswahl auf eine Gruppe oder einen einzelnen Host ein:

$ ansible-playbook /etc/ansible/site.yml -l dbservers

In diesem Fall werden die Aufgaben nur auf den Servern der Gruppe dbservers ausgeführt.

$ ansible-playbook /etc/ansible/site.yml -l alpha.example.org

In diesem Fall werden die Aufgaben nur auf dem Server „alpha.example.org“ ausgeführt.

Möchtest Du nun auf allen Ihren Servern Package Upgrades durchführen, wo Ubuntu installiert ist, kannst Du die mit dem Modul „apt“ ausführen:

$ ansible all -m apt -a "upgrade=dist" -f 4

Bevor Du jedoch Deine Aufgaben tatsächlich auf den Ziel-Servern von Ansible ausführen lässt, kannst Du Deine Konfiguration mit der Option -C testen. Ansible testet alle Aufgaben, jedoch ohne sie dabei am Ziel-Server auszuführen. So kannst Du Deine Konfiguration testen und gegebenenfalls anpassen.

Mehr information findest Du direkt in der Dokumentation von Ansible http://docs.ansible.com

Keywords/Schlüsselwörter:
Updates

« zurück   

Hier findest Du Antworten auf die wichtigsten Fragen für Deinen perfekten Start im Online-Business.

Alle Preisangaben sind exkl. MwSt. Die MwSt. ist abhängig vom angegebenen Land des Bestellers und wird bei der Bestellung automatisch berechnet.
Copyright © 2024 Alle Rechte vorbehalten.

Hinweis bezüglich des Einsatzes von Cookies

Auf diesen Seiten werden Session- und Statistik-Cookies eingesetzt. Wenn Du die Seiten weiter benutzt, wird angenommen, dass Du mit der Verwendung einverstanden bist.

ZACKZACK-Cookies nicht akzeptieren - Alle erforderlichen ZACKZACK-Cookies akzeptieren.