Ansible Dateimodul -Tutorial

Ansible Dateimodul -Tutorial
Ansible ist ein unglaubliches Dienstprogramm für Automatisierung, das mit Funktionen und Tools zum Verwalten von Remote -Hosts ausgestattet ist. Es wird durchgeführt, indem Module implementiert werden, um bestimmte Aufgaben und Vorgänge auszuführen.

Ein praktisches Modul in Ansible ist das Dateimodul. Dieses Modul ist verantwortlich für die Ausführung von Aufgaben wie das Erstellen von Dateien und Verzeichnissen, das Löschen von Dateien und Verzeichnissen, das Erstellen von sanften und harten symbolischen Links, Hinzufügen und Ändern von Datei- und Verzeichnisberechtigungen und mehr.

Mit diesem Leitfaden führt Sie durch die Arbeit mit dem Ansible -Dateimodul. Wir werden dies anhand einer Sammlung von Beispielen und Spielbüchern veranschaulichen.

NOTIZ: Stellen Sie sicher, dass Sie Zugriff auf Ihre Remote -Hosts haben.

Wie das Ansible -Dateimodul funktioniert

Der Ansible.gebaut.Das Dateimodul befindet sich in der Standard-Ansible-Installation als Teil von Ansible-Core. Ansible empfiehlt, sich auf das Modul unter Verwendung des "vollständig qualifizierten Namens" anstelle des kurzen Modulnamens zu beziehen, um Konflikte mit Modulen ähnlicher Namen zu vermeiden.

Das Dateimodul enthält eine Sammlung vordefinierter Parameter für die Dateiverwaltung. Wir verwenden diese Parameter, um die Aktionen auf dem Remote -Host zu konfigurieren.

Im Folgenden können Sie wichtige Parameter verwenden, die Sie verwenden können:

  1. Eigentümer - Benutzername des Benutzers, der die erstellte Datei und das Verzeichnis besitzt
  2. Weg - Pfad zur verwalteten Datei oder Verzeichnis
  3. Modus - Berechtigungsmodus für die angegebene Datei oder das angegebene Verzeichnis festgelegt. Verwenden Sie Oktalnotation in einem Paar einzelner Zitate.
  4. Gruppe - Legt den Gruppenbesitz für eine Datei oder ein Verzeichnis fest
  5. Gewalt - Ein boolescher Wert, der verwendet wird, um die Erstellung von Symlinks zu erzwingen, wenn die Quelldatei derzeit nicht verfügbar ist (aber später hinzugefügt) oder der Zielsymlink bereits vorhanden ist.
  6. Folgen - Wenn Dateisystem -Links vorhanden sind, folgen Sie ihnen.
  7. Attribute - Legt Attribute für die angegebene Datei oder das angegebene Verzeichnis fest. Ähnlich wie beim Standard -Chattr -Dienstprogramm unter Linux
  8. Zustand - Definiert den Kontext für die Erstellung einer Datei. Zu den akzeptierten Optionen gehören:
    1. Berühren - Erstellen Sie eine leere Datei
    2. Verzeichnis - Erstellen Sie ein Verzeichnis
    3. Hart - Erstellen Sie einen harten Link
    4. Verknüpfung - Erstellen Sie einen weichen Link
    5. Abwesend - Löschen Sie Dateien und Verzeichnisse rekursiv und entlasten Sie Links

Überprüfen Sie die Ansible-Dateimoduldokumente auf andere vordefinierte Parameter.

Der beste Weg, um zu lernen, wie man mit dem Ansible -Dateimodul arbeitet.

Ansible Dateimodul: Praktische Beispiele

NOTIZ: In dieser Anleitung wird davon ausgegangen.

So erstellen Sie eine leere Datei

Um eine leere Datei mit dem Ansible -Dateimodul zu erstellen, setzen wir den Status so, wie im Spielbuch dargestellt wird.

---
- Hosts: Alles
Aufgaben:
- Name: Leere Datei erstellen
Datei:
Pfad: $ home/touch_file
Zustand: Berührung

Das obige Spielbuch enthält eine grundlegende Ansible -Konfiguration:

  1. Gastgeber - Legt die Remote -Zielhosts fest, um das Spielbuch auszuführen. Sie können eine Gruppe von Remote -Hosts oder einen einzelnen Host definieren.
  2. Aufgaben - Fordert Ansible an, die angegebene Aufgabe auf dem Remote -Host auszuführen.
  3. Name - Gibt den Namen der Aufgabe an, um auszuführen
  4. Datei - Ruft das Ansible -Dateimodul auf
  5. Weg - Definiert einen Pfad auf dem Remote -Computer, auf dem die Datei erstellt wird.
  6. Zustand - Erstellen Sie eine leere Datei mit Touch.

Speichern Sie das Spielbuch und führen Sie es auf den Remote -Hosts aus:

Ansible-Playbook leseFile.YML

So erstellen Sie mehrere Dateien

Mit Ansible können Sie mehrere Dateien in einer einzelnen Aufgabe erstellen. Unten finden Sie ein Beispiel Playbook:

---
- Hosts: Alles
Aufgaben:
- Name: Erstellen Sie mehrere Dateien
Datei:
Pfad: $ home/item
Zustand: Berührung
With_items:
- Datei1.C
- Header.H
- Datei2.py
- Datei3.txt
- Datei4.rb

Im Spielbuch verwenden wir zwei Ansible -Einträge:

  1. Artikel - Fordert Ansible an, einen eindeutigen Pfad für die angegebenen Dateien zu erstellen.
  2. With_Item - Erstellt eine Liste von Dateien, die auf dem Remote -Host erstellt werden können. Sie können so viele Dateien und Erweiterungen hinzufügen, wie Sie es für richtig halten.

Führen Sie das Ansible-Playbook aus, um angegebene mehrere Dateien zu erstellen:

Ansible-Playbook Multiple Dateien.YML

So erstellen Sie eine Datei mit Inhalten

In den obigen Beispielen erstellen wir leere Dateien mit dem Befehl touch. Um eine Datei mit Inhalten zu erstellen, können wir das Kopiermodul verwenden und den Inhaltsparameter auf den Inhalt der Datei festlegen.

Unten finden Sie ein Beispiel Playbook:

---
- Hosts: Alles
Aufgaben:
- Name: Datei mit Inhalten erstellen
Kopieren:
Ziel: $ home/Hallo.CPP
Inhalt: |
#enthalten
Verwenden von Namespace STD
int main ()
Cout << "hello world" << endl;
Rückkehr 0;

Die Module und Parameter im obigen Spielbuch sind:

  1. Kopieren - Beinhaltet das Ansible -Kopie -Modul.
  2. Ziel - Der Zielweg für Ihre Datei
  3. Inhalt - Der Inhalt, der zu Ihrer Datei hinzugefügt werden soll. Jede Zeile wird einer neuen Zeile hinzugefügt.

Führen Sie das Spielbuch aus:

Ansible-Playbook mit Incontent.YML

So erstellen Sie ein Verzeichnis

Das Spielbuch zum Erstellen eines Verzeichnisses mit dem Ansible -Dateimodul ähnelt dem Erstellen einer leeren Datei. Wie unten gezeigt, setzen wir den Status jedoch auf "Verzeichnis" anstelle von "Datei":

---
- Hosts: Alles
Aufgaben:
- Name: CreateeADirectory
Datei:
Pfad: $ home/ansible-dir
Zustand: Verzeichnis

So löschen Sie eine Datei oder einen symbolischen Link

Das Entfernen von Dateien, Verzeichnissen oder symbolischen Links ist sehr einfach. Alles, was wir tun müssen, ist, den Zustand abwesend zu setzen, wie im Spielbuch unten gezeigt:

---
- Hosts: Alles
Aufgaben:
- Name: REMEDFILES
Datei:
Pfad: $ home/ansible-dir
Zustand: abwesend

Das Spielbuch erledigt nichts, wenn die angegebene Datei nicht vorhanden ist.

So ändern Sie die Erlaubnis eines Verzeichnisses

Wir verwenden den Besitzer, die Gruppe und die Modus -Parameter des Spielbuchs, um die Erlaubnis eines Verzeichnisses zu ändern.

Im folgenden Beispiel werden die angegebenen Berechtigungen im Verzeichnis festgelegt.

---
- Hosts: Alles
wahr werden
Aufgaben:
- Name: ModifyDirpermissions
Datei:
Pfad: /var /log
Zustand: Verzeichnis
Besitzer: Wurzel
Gruppe: Wurzel
Modus: 0755

Im Beispiel für Playbook oben werden wir: wahr: wahr. Dies ist erforderlich, wenn Berechtigungen für andere Benutzer festgelegt werden, mit Ausnahme von Ansible_User

  1. Verwenden Sie Octal Notation, um Berechtigungen anzugeben, einschließlich der führenden 0.

Verwenden des symbolischen Modus

Mit Ansible können Sie die Berechtigungen im symbolischen Modus anstelle des Oktalformats festlegen. Der folgende Modus entspricht 0777.

---
- Hosts: Alles
wahr werden
Aufgaben:
- Name: ModifyDirpermissions im symbolischen Format modifizieren
Datei:
Pfad:/var/log/
Zustand: Verzeichnis
Modus: u = rwx, g = rwx, o = rwx

NOTIZ: Das Einstellen von 0777 in ein Verzeichnis wie /var /log ist nicht die beste Praxis, und wir haben es hier nur für Illustrationszwecke verwendet.

Verzeichnisberechtigungen rekursiv ändern

Wenn Sie die Berechtigungen in einem Verzeichnis rekursiv ändern möchten, können Sie den Parameter Recurse verwenden, wie im folgenden Spielbuch gezeigt:

---
- Hosts: Alles
wahr werden
Aufgaben:
- Name: ModifyDirpermissionsRecursiv
Datei:
Pfad:/var/log/
Zustand: Verzeichnis
Besitzer: Wurzel
Gruppe: Wurzel
Modus: 0755
Wiederholung: wahr

Einstellung der Wiederholung: True wirkt sich auf die Dateien im angegebenen übergeordneten Verzeichnis aus.

So erstellen Sie einen symbolischen Link

Das Erstellen eines Symlinks mit dem Ansible -Dateimodul ist so einfach wie das Erstellen eines leeren Verzeichnisses. In diesem Fall setzen wir den Status so, wie es im Beispiel -Playbook unten gezeigt wird:

---
- Hosts: Alles
- wahr werden
Aufgaben:
- Name: CreateasymLink
Datei:
SRC: $ home/src_file
dest: /etc /dest_symlink
Zustand: Link

So löschen Sie einen symbolischen Link

Das Entfernen eines Symlinks ähnelt dem Entfernen einer regulären Datei.

---
- Hosts: Alles
- wahr werden
Aufgaben:
- Name: removeasymlink
Datei:
Pfad: /etc /dest_symlink
Zustand: abwesend

So ändern Sie die Zugriffszeit

Sie können die Zugriffs- und Änderungszeit mit den Parametern Access_time und Modification_Time ändern.

Beispiel Playbook:

- wahr werden
Aufgaben:
- Name: ModifyAccessandModifiedTime
Datei:
Pfad:/etc/ansible/hosts
Status: Datei
Access_time: Jetzt
Modification_Time: "202110041123.11 "

Wir setzen die Access_time als aktuelle Zeit mit der jetzt Funktion nun.

Sie können auch Zeit für Access_Time und Modification_Time -Parameter im Format (als Zeichenfolge) angeben:

Yyyymmddhhmm.Ss

Abschluss

Dieser Leitfaden hat Ihnen geholfen zu verstehen, wie man mit dem Ansible -Dateimodul in einem Spielbuch arbeitet.