GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So erstellen Sie eine Datei in Ansible

Einführung

Ansible ist ein Infrastructure-as-Code-Tool, mit dem Sie einen einzigen zentralen Ort (Ansible-Steuerknoten) verwenden können, um eine große Anzahl von Remote-Servern (Hosts) zu überwachen und zu steuern.

Verwenden Sie Ansible, um eine Reihe von Aufgaben einzurichten, die die Remote-Hosts ausführen können, darunter das Erstellen neuer Dateien und Verzeichnisse.

Dieses Tutorial behandelt verschiedene Möglichkeiten, wie Sie mit Ansible Dateien auf Remote-Hosts erstellen können.

Voraussetzungen

  • Ein System, auf dem Ubuntu 20.04 ausgeführt wird
  • Zugriff auf die Kommandozeile / das Terminalfenster
  • Ansible installiert und konfiguriert (siehe unsere Anleitungen zum Installieren von Ansible unter Windows oder zum Installieren von Ansible unter Ubuntu)

Erstellen eines Ansible-Playbooks

Ansible-Playbooks sind Listen mit Aufgaben, die Ihre Remote-Hosts ausführen sollen. Sie können gespeichert und wiederverwendet werden, wodurch Sie komplexe Prozesse automatisieren können.

Jeder Befehl, den Sie an einen Remote-Host erteilen möchten, einschließlich des Erstellens von Dateien und Ordnern, ist eine Aufgabe, die Sie in ein Playbook aufnehmen müssen. Sobald Sie ein Playbook ausführen, führt Ihr Remote-Host alle darin definierten Aufgaben aus.

Um ein Ansible-Playbook zu erstellen, verwenden Sie den Befehl:

sudo nano /etc/ansible/playbook.yaml

Dieser Befehl erstellt eine .yaml-Datei mit dem Namen „playbook“ im Ansible-Installationsordner. Wir werden Aufgaben in der playbook.yaml verwenden Datei zum Erstellen von Dateien und Ordnern auf unseren Remote-Hosts.

Mit der Probelauffunktion von Ansible können Benutzer ein Playbook ausführen, ohne Änderungen an den Servern vorzunehmen. Es verwendet den eingebauten Prüfmodus, um ein Playbook vor der Ausführung auf Fehler zu prüfen.

Erstellen einer leeren Datei

Der schnellste Weg, eine leere Datei zu erstellen, ist die Verwendung von file von Ansible Modul.

Fügen Sie Ihrem Ansible-Playbook die folgende Konfiguration hinzu:

---

- hosts: all
  tasks:
  - name: Creating an empty file
    file:
      path: "/your path"
      state: touch

Die obige Datei hat die folgenden Komponenten:

  • hosts : Definiert, auf welchen Remote-Hosts aus Ihrer Ansible-Inventardatei Sie die Aufgabe ausführen möchten. Alle bedeutet, dass jeder Host den Befehl erhält, Sie können aber auch den Namen einer Hostkategorie oder eines einzelnen Hosts eingeben.
  • tasks : Kündigt an, dass der entfernte Host eine Aufgabe ausführen muss.
  • name :Hier können Sie einen Namen für die Aufgabe definieren. Der Name dient nur zu Ihrer Information und hat keinen Einfluss auf die Aufgabe selbst.
  • file :Aktiviert das Dateimodul von Ansible, um eine neue Datei zu erstellen.
  • path :Definiert den Pfad für die neue Datei auf der Festplatte des Remote-Hosts.
  • state :Ähnlich wie beim Touch-Befehl im Ubuntu-Terminal geben Sie touch ein erstellt eine leere Datei an dem von Ihnen gewählten Ort.

Um das Playbook auszuführen, verwenden Sie:

ansible-playbook /etc/ansible/playbook.yaml

Erstellen einer Datei mit Inhalt

Wenn Sie eine neue Datei mit Inhalt erstellen möchten, können Sie zuerst mit der obigen Methode eine leere Datei erstellen und dann die blockinfile verwenden oder lineinfile Modul zum Einfügen von Inhalten.

Ein schnellerer Weg ist die Verwendung von copy Modul. Obwohl dieses Modul verwendet wird, um eine Datei vom Steuerknoten auf den Remote-Host zu kopieren, können Sie den content einschließen Parameter zum sofortigen Hinzufügen von Inhalt zu einer leeren Datei.

Verwenden Sie diese Konfiguration in Ihrem Playbook:

---

- hosts: all
  tasks:
  - name: Creating a file with content
    copy:
      dest: "/your path"
      content: |
        line 01
        line 02

In der Datei haben wir verwendet:

  • copy :Aktiviert das Kopiermodul von Ansible.
  • dest :Definiert den Pfad für Ihre neue Datei.
  • content :Dieser Parameter fügt line 01 hinzu und line 02 als Inhalt der neuen Datei.

Mehrere Dateien erstellen

Sie können mehrere Dateien erstellen, indem Sie eine einzelne Aufgabe in einem Ansible-Playbook verwenden.

Verwenden Sie die folgende Konfiguration, um mehrere Dateien zu erstellen:

---

- hosts: all
  tasks:
  - name: Create multiple files
    file: 
      path: "{{ item }}"
      state: touch
    with_items:
    - test01.txt
    - test02.txt
    - test03.txt
    - test04.txt

In der obigen Konfigurationsdatei haben wir Folgendes definiert:

  • path :Der "{{ item }}" Wert bedeutet, dass Ansible einen separaten Pfad für jede entsprechende Datei erstellt. Standardmäßig werden diese Dateien im Home-Ordner des Remote-Hosts abgelegt. Definieren Sie einen anderen Pfad, indem Sie /your_folder_path/"{{ item }}" verwenden .
  • with_items :Dieser Parameter wird verwendet, um eine Liste der zu erstellenden Dateien zu starten. Listen Sie so viele Dateien auf, wie Sie möchten. In unserem Beispiel haben wir eine Liste mit vier Dateien mit dem Titel test erstellt .

Erstellen eines Verzeichnisses

Beim Erstellen eines neuen Verzeichnisses wird dieselbe Konfiguration wie beim Erstellen einer leeren Datei verwendet. Der einzige Unterschied besteht im state Parameter geben Sie directory ein als Wert:

---

- hosts: all
  tasks:
  - name: Creating a new directory
    file:
      path: "/your path"
      state: directory

Dateien entfernen

Ansible-Playbooks können auch vorhandene Dateien entfernen. Legen Sie dazu den state fest -Parameter auf absent :

---

- hosts: all
  tasks:
  - name: Removing a file
    file:
      path: "/your path"
      state: absent

Wenn die Datei bereits entfernt wurde, bewirkt dieser Befehl nichts.

Dateiberechtigungen festlegen

Mit allen oben genannten Beispielen können Sie auch die Berechtigung für neue Dateien und Ordner festlegen. Dazu müssen Sie den mode verwenden Parameter.

Dafür gibt es zwei Möglichkeiten:

  • Using octal mode format: Sie können Oktalzahlen wie 0644 oder 0777 verwenden. Vergessen Sie nicht die führende 0, da das Weglassen zu unerwarteten Ergebnissen führen kann.
  • Format im symbolischen Modus verwenden: Sie können Werte wie u=rwx verwenden , g=rx , oder o=rx , wobei u steht für Eigentümer , g steht für Gruppe , und o steht für Andere . Die Berechtigungen sind als r definiert zum lesen , w für schreiben , und x für Ausführen .

Sie können beispielsweise den Oktalwert 0755 verwenden, während Sie den Besitzer definieren:

---

- hosts: all
  tasks:
  - name: Create a new file with permissions
    file:
      path: "/your path"
      state: touch
      mode: 0755
      owner: test

Sie können auch das symbolische Äquivalent zu 0755 verwenden:

---

- hosts: all
  tasks:
  - name: Create a new file with permissions
    file:
      path: "/your path"
      state: touch
      mode: u=rwx,g=rx,o=rx
      owner: test

Ubuntu
  1. So erstellen Sie eine Datei im Plesk-Dateimanager

  2. So erstellen Sie einen Swap unter Linux

  3. So erstellen Sie eine Auslagerungsdatei unter Linux

  4. So erstellen Sie einen Linux-Benutzer mit Ansible

  5. Wie erstelle ich eine Datei und mounte sie als Dateisystem?

So erstellen Sie eine ISO-Datei in Ubuntu 18.04 LTS

So erstellen Sie eine Datei in Linux mit Terminal

So erstellen Sie Desktop-Verknüpfungen unter Ubuntu

So erstellen Sie eine Website-Datei

So erstellen Sie eine Tar gz-Datei

So erstellen Sie ein XFS-Dateisystem