So verwalten Sie mehrere Server gleichzeitig / Sudo Null IT News

Inhaltsverzeichnis

Stellen Sie sich vor, Sie müssen viele Server verwalten, die sich in verschiedenen Teilen der Welt befinden. Jedes Gerät muss konfiguriert, aktualisiert und überwacht werden.

Der einfachste Weg, dies zu tun, besteht darin, sich per SSH in jeden Server einzuloggen und Änderungen vorzunehmen. Aber trotz seiner Einfachheit ist diese Methode arbeitsintensiv. Es wird viel Zeit für die Durchführung typischer Operationen aufgewendet.

Um das Einrichten und Konfigurieren von Servern zu vereinfachen, können Sie Shell-Skripts schreiben. Aber ist das der ideale Weg? Nein. Skripte unterliegen regelmäßigen Änderungen und Anpassungen für eine bestimmte Aufgabe. Es ist wichtig, den Unterschied zwischen Betriebssystem und Version zu berücksichtigen. Und das Einrichten von Skripten ist ein mühsamer Prozess und erfordert viel Zeit.

In einer solchen Situation ist die Implementierung eines Remote-Konfigurationsverwaltungssystems eine gute Option. Sie müssen nur den erforderlichen Zustand des Knotens angeben, und das System ermittelt selbstständig, was dazu erforderlich ist, und führt dies aus.

Ansible ist eine hervorragende Lösung für die Automatisierung und Implementierung eines Remote-Konfigurationsmanagementsystems.

Serverflottenmanagement: Gründe für die Wahl von Ansible

Ansible ist ein Remote-Konfigurationsverwaltungstool zum Konfigurieren von Remote-Computern. Der auffälligste Unterschied zu ähnlichen Systemen ist die Nutzung der bestehenden SSH-Infrastruktur. Andere Tools wie Chef und Puppet erfordern eine spezielle PKI-Umgebung.

Ansible basiert auf dem Push-Modus. In diesem Modus werden Änderungen manuell oder mithilfe eines Skripts remote auf den Server übertragen. In anderen Systemen wird der umgekehrte Vorgang beobachtet: Im Pull-Modus vergleicht der Agent die Konfigurationen und kopiert und wendet sie bei Änderungen an.

Der Push-Modus ist eine einfache Architektur und speichert alle Konfigurationen lokal in einer für den Administrator bequemen Form. Es ist ein guter Ersatz für einmal ausgeführte Skripts bei der Bereitstellung virtueller Maschinen.

Mit Ansible können Sie entfernte Server in den gewünschten Zustand bringen. Dazu muss der Administrator lediglich beschreiben, wie dieser Zustand mittels Skripten erreicht wird. Dank dieser Technologie ist das System schnell neu konfiguriert. Man muss nur neue Zeilen zu dem bestehenden Skript hinzufügen.

Produktvorteile gegenüber Analoga

Betrachten Sie die Vorteile von Ansible gegenüber Puppet und Chef:

Ansible hat Puppet auf dem Markt für Konfigurationsmanagement überholt. Es wurde eher in Python als in Ruby entwickelt und ähnelt Salt. Der Vorteil dieser Sprache ist, dass sie in vielen Unix- und Linux-Anwendungen verwendet wird. Daher sind in Python entwickelte SCMs einfach zu installieren und zu betreiben.

Die Einzigartigkeit von Ansible ist die einfache und schnelle Bereitstellung. Tatsächlich verwendet ein solches System keine einsetzbaren Agenten. Jede Programmiersprache kann verwendet werden, um ein solches Produkt zu schreiben. Sie werden über klassische JSON-Module verteilt. Dies ist ein großer Vorteil gegenüber der Auswahl einer bestimmten Sprache.

Chef ist schwieriger zu erlernen, weil es mit Ruby erstellt wurde. Diese Programmiersprache ist für fortgeschrittene Benutzer konzipiert. Es kann viel Motivation erfordern, es zu lernen.

Eine der größten Stärken von Ansible ist, dass es dank seiner einfachen Benutzeroberfläche leicht zu erlernen ist.

Alle Skripte und Befehle in Ansible werden mit der Push-Methode ausgeführt. Bei Bedarf wird das Skript gestartet und sequentiell auf entfernten Servern ausgeführt. Aber die Macher haben sich um die Möglichkeit gekümmert, die Pull-Methode zu verwenden. Zu diesem Zweck wurde ein spezielles Modul geschrieben, um einen Teil der Softwarelösung auf entfernten Hosts zu installieren.

Ansible-Module

Bei der Installation von Ansible wird eine große Modulbibliothek geladen. Gleichzeitig erfüllt jeder von ihnen eine genau festgelegte Aufgabe. Können Module separat ausgeführt werden?

Zweifellos.

Dies kann in Ad-hoc-Befehlen erfolgen und in ein Skript und dann in ein Playbook kompiliert werden.

Das Konfigurationsmanagementsystem ermöglicht Ihnen die Nutzung von mehr als 200 Modulen zur Konfiguration Ihrer IT-Infrastruktur.

Befehlsmodul

Das Modul akzeptiert einen Befehlsnamen und Argumente. Shell-Variablen oder -Operationen (<,>, |, &) funktionieren nicht mit dem Befehlsmodul, da sie von der Shell verarbeitet werden. Dieses Modul kann die folgenden Parameter annehmen:

rohes Befehlsmodul

Es wird verwendet, wenn es unmöglich ist, andere Befehlsmodule zu verwenden. Damit werden Remote-Befehle über SSH an Server gesendet. Raw funktioniert auf Servern auch ohne installiertes Python.

Shell-Befehlsmodul

Dieses Modul unterscheidet sich von command darin, dass standardmäßig /bin/sh zum Ausführen von Befehlen verwendet wird. Es ist möglich, Shell-Variablen und andere Funktionen zu verwenden.

Dateimodul

Es ändert die Attribute einer Datei. Es kann eine Datei erstellen, ein Verzeichnis und einen symbolischen Link erstellen oder löschen.

Eine vollständige Liste der verwendeten Module finden Sie in der offiziellen Ansible-Dokumentation. Es gibt nicht viele von ihnen.

Rechteausweitung in Ansible-Playbooks

Manchmal, wenn ein Modul oder Befehl erweiterte Systemrechte oder einen anderen Benutzer erfordert, ist es notwendig, das Berechtigungseskalationsmodul auszuführen. Es ist eine Abstraktion für sudo und andere Softwarelösungen zur Rechteausweitung.

Privilegieneskalationsaufgaben werden im Namen des Benutzers ausgeführt, der eine Verbindung herstellt. Dies kann der Root-Benutzer oder ein normaler Benutzer mit SSH-Zugriff auf die Remote-Knoten sein.

Um einen Befehl mit erweiterten Rechten auszuführen, müssen Sie die Bewere-Direktive mit dem Wert yes in das Spiel einschließen. Diese Einstellung kann global sein, in diesem Fall gilt sie für alle Aufgaben in diesem Spiel. Einzelne Parameter gelten für eine Aufgabe. Je nachdem, wie der Benutzer auf den Remote-Knoten eingerichtet ist, müssen Sie möglicherweise einen Schlüssel eingeben.

Es ist auch möglich, den Benutzer zu ändern, zu dem Sie wechseln möchten, während die Aufgabe ausgeführt wird. Dazu müssen Sie den Benutzernamen in der begin_user-Direktive angeben. Diese Anweisung ist nützlich, wenn Sie mehrere Aufgaben in Ihrem Playbook haben, die für verschiedene Benutzer ausgeführt werden.

Rechteeskalationssysteme, nämlich sudo, erfordern eine Authentifizierungsbestätigung des Benutzers. Dazu werden Sie aufgefordert, ein Passwort einzugeben. Dies kann dazu führen, dass der Befehl mit Ansible fehlschlägt. Um ein Passwort zu übergeben, können Sie die Option –ask-become-pass oder -K verwenden, in diesem Fall fordert Ansible Sie zur Eingabe eines sudo-Passworts auf:

ansible server1 -i Inventory -a “tail /var/log/nginx/error.log” –become -K

Dieses Modul ist eine Abstraktion für sudo und andere Privilegieneskalationslösungen, die Ansible betriebssystemübergreifend unterstützt.

Beispielsweise müssen Sie die Option -become aktivieren, wenn Sie den tail-Befehl ausführen möchten, um die neuesten Meldungen aus dem Nginx-Fehlerprotokoll auf server1 aus dem Inventar anzuzeigen:

ansible server1 -i Inventory -a “tail /var/log/nginx/error.log” –become

Dies ist dasselbe wie das Senden von sudo tail /var/log/nginx/error.log an den Remote-Host.

Neustart von Servern bei der Installation eines Remote-Konfigurationsverwaltungssystems

Ansible ist ein Tool, das kein Modul bereitstellt, mit dem Sie Server neu starten können. Dies kann jedoch mit einem Bash-Befehl erfolgen, der /sbin/reboot auf dem Remote-Host ausführt.

Um den Server neu zu starten, müssen Sie sich um erweiterte Systemrechte kümmern. Es ist wichtig sicherzustellen, dass der entfernte Benutzer sudo-Zugriff hat und dass die Option –become enthalten ist. Das Flag -K fordert Sie zur Eingabe des sudo-Passworts Ihres Benutzers auf.

Aufmerksamkeit! Der nächste Befehl startet die Server neu, auf denen Ansible ausgeführt wird. Ein solches Ereignis kann dazu führen, dass alle Anwendungen, die diese Server verwenden, kurzzeitig ausfallen.

Um beispielsweise alle Server in der Webserver-Gruppe neu zu starten, würden Sie den folgenden Befehl eingeben:

ansible Webservers -i Inventory -a “/sbin/reboot” –become -K

Mit Hilfe von Befehlen zum Verwalten von Servern ist es möglich, eine Vielzahl von Aufgaben zu erledigen. Ansible ist eine großartige Lösung für die Automatisierung und Implementierung eines Remote-Konfigurationsverwaltungssystems.

Als Ergebnis werden Zeit und Arbeitsaufwand zum Durchführen monotoner Operationen eingespart. Es reicht aus, den erforderlichen Zustand des Knotens zu beschreiben, und das System erledigt alles.

Im Kurs Ansible: Infrastructure as Code können Sie sich intensiv mit Ansible beschäftigen

Sie lernen, Routineaufgaben zu konfigurieren, und keine Konfigurationsänderungen können Sie aufhalten. Sie konfigurieren nicht nur, sondern auch mit Hilfe eines komfortablen und einfachen Tools. Sie können komplexe Aufgaben ausführen, sich an Ihre Aufgaben anpassen und sicher unter die Haube von Ansible gelangen. Verstehen Sie, wann und wie Sie Ihre Module schreiben.

Der Kurs besteht nicht nur aus Theorie, sondern auch aus der Erfahrung des Referenten, seinen vollen Beulen, Fällen, sowie 78 Test- und 46 praktischen Aufgaben auf den Ständen in Ihrem persönlichen Konto.

Kurz zum Programm:

— Lernen Sie, wie man mit Variablen arbeitet, wie man Playbooks und Rollen schreibt;

– LEMP-Stack, PostgreSQL- und Mongo-Cluster bereitstellen, Flask-Anwendung bereitstellen;

– Schreiben Sie Ihr Modul für Ansible;

– IaC in Gitlab einrichten;

– Verstehen, wie man mit Clouds und Unternehmenslösungen arbeitet.

Sehen Sie sich das detaillierte Programm an und melden Sie sich an:

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *