Wie man systemd mit Ansible steuert

Wie man systemd mit Ansible steuert
Das Verwalten von Diensten ist eine der grundlegenden Anforderungen für jeden Benutzer. Mit Tools wie Systemd, die alle wichtigen Linux -Verteilungen ausführen, ist es wichtig zu verstehen, wie die Dienste verwaltet werden können.

In diesem Tutorial werden Sie das Ansible Systemd -Modul zum Starten, Anhalten und Verwalten von Diensten auf jedem Host mit dem Systemd Init -Dienst beibringen.

Einrichten ansible

Der erste Schritt besteht darin, Ansible auf Ihrem System zu installieren und zu konfigurieren. In diesem Beispiel laufen wir auf Debian 11 System ansible.

Beginnen Sie mit der Aktualisierung der Software -Repositorys und der Installation von Ansible:

sudo apt-Get-Update
sudo apt -get install Ansible -y

Nach der Installation können wir die Remote -Hosts einrichten, die mit dem Ansible Control Knoten verwaltet werden sollen.

Konfigurieren Sie das Ansible -Inventar

Öffnen Sie das Terminal und bearbeiten Sie die Bestandsdatei wie in dem folgenden Befehl gezeigt:

sudo vim/etc/ansible/hosts

Fügen Sie in der Host -Inventardatei die IP -Adresse der Remote -Hosts hinzu, die Sie mit Ansible verwalten möchten.

Setup SSH -Schlüssel

Der nächste Schritt besteht darin, ein SSH -Schlüsselpaar zu erstellen. Auf diese Weise können Sie sich von Ihrem Ansible -Steuerknoten bei dem Remote -Host anmelden, ohne ein Passwort einzugeben.

Generieren Sie mit dem Befehl einen SSH -Taste:

$ ssh-keygen

Befolgen Sie die Eingabeaufforderungen des Befehls SSH-Keygen, um ein öffentliches und privates Schlüsselpaar zu generieren.

Verwenden Sie nach Abschluss den Befehl SSH-Copy-ID, um Ihren SSH-öffentlichen Schlüssel zum Remote-Host zu kopieren.

Ein Beispielbefehl lautet wie gezeigt:

ssh-copy-id -i ~/.ssh/id_rsa.Pub [email protected]

Ersetzen Sie den Benutzernamen und das Passwort durch den Remote -Benutzer und die IP -Adresse Ihres Remote -Hosts.

Geben Sie als Nächst.

Sobald SSH in den Remote -Host abgeschlossen ist, werden Sie ohne Passwortaufforderung angemeldet.

Verwalten von Diensten mit Systemd

Stellen Sie sicher, dass der SystemD -Service und der Systemmanager den Remote -Host verwalten, um die Dienste auf einem Remote -Host mithilfe des Systemd -Moduls zu verwalten.

Das SystemD -Modul ist Teil des Ansible Core und standardmäßig in allen Ansible -Installationen verfügbar.

Sehen wir uns einige Beispiele für die Verwendung des Systemd -Moduls zur Verwaltung von Diensten auf den Remote -Hosts an.

Startdienste

Das SystemD -Modul in Ansible ist einfach zu verwenden. Zum Beispiel, um einen Dienst zu starten, den Namen des Dienstes und den Staat zu übergeben, den er in diesem Fall begonnen hat.

Das folgende Beispiel -Playbook zeigt, wie ein Dienst mit dem SystemD -Modul gestartet wird.

---
- Name: Ansible Start Service
Hosts: Alles
sammeln_facts: true
Aufgaben:
- Name: Starten Sie einen Dienst mit Systemd
systemd:
Name: Apache2
Zustand: Begonnen

Das obige Beispiel -Playbook startet den Apache2 HTTP -Server mithilfe von Systemd.

Sicherstellen, dass der Zieldienst von Systemd auf dem Remote -Host installiert und verwaltet wird, ist gut, um Fehler zu vermeiden.

Wenn der Dienst nicht vorhanden ist, wirft Ansible einen Fehler, wie im folgenden Beispiel -Screenshot gezeigt:

Dienste stoppen

Ändern Sie beim Ansetzen von Diensten den State -Parameter so, wie im folgenden Beispiel -Playbook gezeigt:

---
- Name: Ansible Stop Services
Hosts: Alles
sammeln_facts: true
Aufgaben:
- Name: Stoppen Sie einen Dienst mit Systemd
systemd:
Name: Apache2
Staat: gestoppt

Nach erfolgreicher Ausführung wird der Zieldienst auf dem Remote -Host gestoppt.

Dienste neu laden

Stellen Sie den Status auf das Nachladen ein, um einen Dienst mithilfe von Systemd neu zu laden. Es ist gut zu wissen, dass Sie den vollständigen Namen des Dienstes oder kurz verwenden können.

Zum Beispiel:

---
- Name: Ansible laden einen Dienst neu laden
Hosts: Alles
sammeln_facts: true
Aufgaben:
- Name: Dienste mit Systemd neu laden
systemd:
Name: Nginx.Service
Zustand: neu geladen

Das obige Beispiel laden den Nginx -Dienst wie im Spielbuch übergeben.

Dienstleistungen aktivieren

In den Fällen, in denen Sie einen Dienst benötigen, um mit dem System zu starten, müssen Sie sicherstellen, dass der Dienst aktiviert ist.

Das Ansible SystemD -Modul bietet Ihnen den aktivierten Parameter, mit dem Sie einen Dienst ermöglichen können, um beim Systemstart zu beginnen.

Betrachten Sie das unten gezeigte Beispiel -Playbook:

---
- Name: Ansible aktivieren Service
Hosts: Alles
sammeln_facts: true
Aufgaben:
- Name: Aktivieren Sie den NGINX -Dienst
systemd:
Name: Nginx.Service
aktiviert: wahr
maskiert: nein

Das obige Spielbuch ermöglicht den Nginx -Dienst und stellt sicher, dass es nicht maskiert ist.

Mehrere Dienste verwalten

Sie können auch den Parameter mit mit dem_Items verwenden, um mehrere Dienste zu verwalten. Um beispielsweise verschiedene Dienste gleichzeitig zu starten, können wir ein Spielbuch erstellen wie:

---
- Name: Ansible Start Services
Hosts: Alles
sammeln_facts: true
Aufgaben:
- Name: Starten Sie diese Dienste
systemd:
Name: "item"
Zustand: Begonnen
With_items:
- Apache2
- Mysql
- Redis-Server

Das Beispiel -Spielbuch oben sollte die Dienste im Block with_items neu starten.

Schließen

Diese Anleitung zeigt, wie Sie Dienste auf Remote -Hosts verwalten, die das SystemD -Modul in Ansible verwenden.

Vielen Dank für das Lesen!