Wie man ansible lineInfile verwendet

Wie man ansible lineInfile verwendet
Ansible ist ein kostenloses Open-Source-Automatisierungswerkzeug, mit dem ein oder Hunderte von Remote-Hosts verwaltet werden können. Die Hauptverwendung besteht darin, Konfigurationen zu verwalten, Remote -Server bereitzustellen, Anwendungen und Dienste zu verwalten und vieles mehr. Es funktioniert auch sowohl auf Unix- als auch auf Unix-ähnlichen Systemen sowie auf Windows.

Out of the Box verfügt über viele Werkzeuge und Funktionen. Einer von ihnen ist das LineInfile -Modul. Mit diesem Modul können Sie eine einzelne Zeile in einer Datei auf einem Remote -Host verwalten.

Es unterstützt Funktionen wie das Austausch von Inhalten in einer Datei, das Aktualisieren von Inhalten in einer Zeile, das Hinzufügen von Inhalten in einer Zeile und mehr.

In diesem Handbuch wird veranschaulicht.

Anforderungen

Stellen Sie sicher, dass Sie die folgenden grundlegenden Anforderungen haben, um das Konzept dieses Tutorials zu verfolgen:

  1. Ein ansibler Steuerknoten
  2. Ein Remote -Host zum Verwalten
  3. SSH -Zugriff auf den Remote -Host

Bestätigen Sie, ob ein bestimmter Eintrag vorliegt

Um sicherzustellen, dass ein bestimmter Eintrag in einer Datei vorhanden ist.

Betrachten Sie das unten gezeigte Beispiel -Playbook:

---
- Hosts: Alles
sammeln_facts: Ja
Werde: Ja
Aufgaben:
- Name: Überprüfen Sie, ob /etc /hosts 127 enthält.0.0.1 "
LineInfile:
Pfad: "/etc/hosts"
Zustand: Gegenwart
Zeile: "127.0.0.1 "
check_mode: Ja
Register: Out

Das obige Beispiel prüft, ob der Eintrag in der angegebenen Datei vorhanden ist, und fügen Sie hinzu, wenn er nicht vorhanden ist.

Erstellen Sie eine Datei und fügen Sie eine neue Zeile hinzu

Wir können das LineInFile -Modul verwenden, um eine Datei zu erstellen und der erstellten Datei eine neue Zeile hinzuzufügen.

Betrachten Sie das unten gezeigte Beispiel -Playbook:

---
- Hosts: Alles
sammle_facts: nein
Aufgaben:
- Name: Datei erstellen und Zeile hinzufügen
LineInfile:
dest:/home/ubuntu/Beispiel.Conf
Zeile: Dies ist ein neuer Eintrag in die Datei
Zustand: Gegenwart
erstellen: wahr

Im obigen Beispiel -Spielbuch verwenden wir den Parameter Dest, um den Pfad der Datei anzugeben.

Als Nächst. Wir verwenden dies in Verbindung mit dem Status: gegenwärtigen Parameter.

Schließlich setzen wir den Parameter create create auf true, der Ansible erstellt, die Datei zu erstellen, wenn sie vorhanden ist.

Wenn Sie das Spielbuch zweimal ausführen.

Fügen Sie vor/nach einem Eintrag eine Zeile hinzu

Um vor oder nach einem bestimmten Eintrag eine Zeile hinzuzufügen, können Sie den InsertAfter- oder Insert -Vor -Parameter verwenden.

Schauen Sie sich das unten gezeigte Beispiel an:

---
- Hosts: Alles
sammle_facts: nein
Aufgaben:
- Name: Zeile vor/danach hinzufügen
LineInfile:
Pfad:/etc/apache2/apache2.Conf
Regex: '^Serverroot' '
InsertAfter: '^#Serverroot' '
Zeile: Serverroot "/etc/apache2"

Nach der kommentierten Linie fügt das LineInFile-Modul den Eintrag "/etc/apache2" hinzu.

Löschen einer Linie

Um einen Eintrag aus einer Datei zu entfernen, stellen Sie den Status auf Abwesenheit ein, wie im folgenden Beispiel -Spielbuch gezeigt:

---
- Hosts: Alles
sammle_facts: nein
Aufgaben:
- Name: Eine Zeile löschen
LineInfile:
Pfad:/etc/apache2/apache2.Conf
Regex: '^#Serverroot' '
Zustand: abwesend

Das obige Beispiel verwendet einen einfachen regulären Ausdruck, der mit #Serverroot mit der Zeile übereinstimmt.

Eine Zeile ausnehmen

Um eine Zeile zu kommentieren, verwenden Sie den Ansible LineInfile -BackRefs -Parameter. Schauen Sie sich das unten gezeigte Beispiel -Playbook an:

---
- Hosts: Alles
sammle_facts: nein
Aufgaben:
- Name: Eine Zeile löschen
LineInfile:
Pfad:/etc/apache2/apache2.Conf
Linie 1'
Regex: '^#hören 8080'
BackRefs: Ja

Im obigen Beispiel verwenden wir einen regulären Ausdruck, der der Zeile übereinstimmt, die wir aus Kommentar abgeben möchten.

Wir verwenden dann den Inhalt der Matching -Zeile und fügen einen Kommentarcharakter hinzu.

Sicherungsdatei vor dem Ändern

Es ist gut, sicherzustellen, dass Sie eine Kopie Ihrer Dateien sichern, bevor Sie sie bearbeiten, um die Dateiwiederherstellung bei Fehlern zu erleichtern.

Um eine Datei mit dem LineInFile -Modul zu sichern, können wir die Sicherungsoption auf true festlegen.

Betrachten Sie das Beispiel -Spielbuch unten:

---
- Hosts: Alles
sammle_facts: nein
Aufgaben:
- Name: Eine Zeile löschen
LineInfile:
Pfad:/etc/apache2/apache2.Conf
Regex: '^#Serverroot' '
Zustand: abwesend
Backup: Ja

Abschluss

Das Modul ansible lineInfile ist bei der Änderung von Konfigurationsdateien auf Remote -Hosts mithilfe von Ansible Playbooks von Vorteil.

Vielen Dank für das Lesen!