Ansible

So erstellen Sie ein Verzeichnis in Ansible

So erstellen Sie ein Verzeichnis in Ansible

Ansible ist eines der besten verfügbaren Automatisierungstools und bietet einfache, intuitive und leistungsstarke Tools zur Durchführung von Automatisierungsaufgaben in der modernen Welt.

Für die meisten Automatisierungsaufgaben müssen Sie Verzeichnisse erstellen, insbesondere bei der Installation verschiedener Tools und Anwendungen, Sicherungen und Wiederherstellungen. Obwohl Sie diese Aufgaben mit einem automatisierten Skript ausführen können, bietet Ansible eine bessere Funktionalität, sodass Sie Verzeichnisse in bestimmten Hosts erstellen können.

Dieses Tutorial zeigt Ihnen, wie Sie das Ansible-Dateimodul verwenden, um Verzeichnisberechtigungen für bestimmte Hosts zu erstellen, zu entfernen und zu ändern.

So erstellen Sie ein Verzeichnis in Ansible

Eine der folgenden Methoden kann verwendet werden, um ein Verzeichnis in Ansible zu erstellen:

Um ein Verzeichnis in Ansible mit dem Befehlsmodul zu erstellen, geben Sie den unten gezeigten Befehl ein:

$ ansible all -m Befehl -a "mkdir ~/backups"

Nach Eingabe des obigen Befehls sollten Sie die unten gezeigte Ausgabe erhalten:

Geben Sie die Passphrase für den Schlüssel '/home/user/ ein.ssh/id_rsa':
[WARNUNG]: Ziehen Sie in Betracht, das Dateimodul mit state=directory zu verwenden, anstatt 'mkdir' auszuführen.  Wenn Sie den Befehl verwenden müssen, weil die Datei nicht ausreicht, können Sie dieser Befehlsaufgabe 'warn: false' hinzufügen oder 'command_warnings=False' in ansible setzen.cfg um diese Nachricht loszuwerden.
35.222.210.12 | GEÄNDERT | rc=0 >>

Stellen Sie sicher, dass Ihr Ansible-Host-Inventar in /etc/ansible/hosts die richtigen Informationen zu Ihren Remote-Hosts enthält.

Obwohl das Befehlsmodul auf einem einzelnen Ansible-Host einfach zu verwenden ist, wird es sehr ineffizient, wenn es mit mehreren Hosts mit unterschiedlichen Verzeichnissen und Aufgaben zu tun hat.

Um diesem Nachteil entgegenzuwirken, verwenden wir das Ansible-Dateimodul und erstellen ein Playbook mit den Hosts, die wir verwenden möchten, und den Verzeichnissen, die wir erstellen möchten.

HINWEIS: Das Dateimodul kann auch als einzelner Befehl in Ansible verwendet werden, funktioniert aber ähnlich wie das Befehlsmodul.

Um ein Ansible-Playbook zu verwenden, erstellen Sie eine YAML-Datei und geben Sie die folgenden Einträge ein, um ein Verzeichnis zu erstellen:

- Hosts: alle Aufgaben:
- Name: Ansible Dateimodul Verzeichnis erstellen
Datei:
Pfad: ~/backups
Zustand: Verzeichnis

Speichern Sie die Datei und verwenden Sie ansible-playbook, um die Verzeichnisse zu erstellen:

ansible-playbook mkdir.yml

Dies sollte eine Ausgabe wie die folgende erzeugen, die anzeigt, dass die Aktionen mit der angegebenen Playbook-Datei erfolgreich ausgeführt wurden.

Alle wiedergeben] ********************************************** ************************************************* ************
AUFGABE [Fakten sammeln] ************************************************* ************************************************* **
Geben Sie die Passphrase für den Schlüssel '/home/user/ ein.ssh/id_rsa':
Okay: [35.222.210.12]
AUFGABE [Ansible Dateimodul Verzeichnis erstellen] ********************************************** *********************************
Okay: [35.222.210.12]
SPIELRÜCKBLICK ************************************************ ************************************************* **********
35.222.210.12 : ok=2 geändert=0 nicht erreichbar=0 fehlgeschlagen=0 übersprungen=0 gerettet=0 ignoriert=0

So erstellen Sie mehrere Verzeichnisse mit Elementen

Mit Ansible Playbooks können Sie auch mehrere Verzeichnisse erstellen, indem Sie die with_items-Anweisung in der YAML-Datei verwenden.

Um beispielsweise Backups für die drei Dienste MySQL, Repository und config zu erstellen, können Sie die in der YAML-Datei unten gezeigte Aufgabe erstellen:

- Hosts: alle Aufgaben:
- name: Ansible erstelle mehrere Verzeichnisse mit_items
Datei:
Pfad: ~/backups/item
Zustand: Verzeichnis
with_items:
- 'mysql'
- 'Repository'
- 'konfigurieren'

Speichern Sie die obige Datei und führen Sie sie mit ansible-playbook aus.

$ ansible-playbook mkdir_multi.yml PLAY [alle] ******************************************** ************************************************* ************************************************* ************************************************* ***
AUFGABE [Fakten sammeln] ************************************************* ************************************************* ************************************************* ****************************************
Geben Sie die Passphrase für den Schlüssel '/home/user/ ein.ssh/id_rsa':
Okay: [35.222.210.12]
AUFGABE [Ansible erstellt mehrere Verzeichnisse mit_items] ********************************************** ************************************************* ************************************************* ************
geändert: [35.222.210.12] => (item=mysql)
geändert: [35.222.210.12] => (item=Repository)
geändert: [35.222.210.12] => (item=config)
SPIELRÜCKBLICK ************************************************ ************************************************* ************************************************* *************************************************
35.222.210.12 : ok=2 geändert=1 nicht erreichbar=0 fehlgeschlagen=0 übersprungen=0 gerettet=0 ignoriert=0

Das obige Playbook sollte mehrere Verzeichnisse erstellen, z. B. ~/backups/mysql, ~/backups/repository und ~/backups/config.

$ ls -la

Die Ausgabe der Verzeichnisliste sieht wie folgt aus:

insgesamt 0
drwxrwxr-x. 5 debian debian  51 Mär 6 17:26 .
drwx------. 6 debian debian 117 6. März 17:26…
drwxrwxr-x. 2 debian debian   6 Mär  6 17:26 config
drwxrwxr-x. 2 debian debian   6 Mär  6 17:26 mysql
drwxrwxr-x. 2 debian debian   6 März  6 17:26 Repository

So legen Sie Berechtigungen für ein Verzeichnis fest

Mit Ansible können Sie Berechtigungen für ein Verzeichnis mit der mode-Direktive festlegen. Betrachten Sie das folgende Playbook, das ein Verzeichnis erstellt und Berechtigungen festlegt:

- Gastgeber: alle
Aufgaben:
- Name: Ansible Verzeichnis erstellen und Berechtigungen festlegen
Datei:
Pfad: /backups
Zustand: Verzeichnis
Modus: "u=rw,g=wx,o=rwx"
werden: ja

Im obigen Eintrag haben wir ein Verzeichnis in / erstellt. Wir mussten auch root werden, daher der Eintrag "werd: yes".

$ ansible-playbook-Berechtigung.yml PLAY [alle] ******************************************** ************************************************* ************************************************* ************************************************* ***
AUFGABE [Fakten sammeln] ************************************************* ************************************************* ************************************************* ****************************************
Geben Sie die Passphrase für den Schlüssel '/home/user/ ein.ssh/id_rsa':
Okay: [35.222.210.12]
AUFGABE [Ansible Verzeichnis erstellen und Berechtigungen festlegen] **************************************** ************************************************* ************************************************* ****************
geändert: [35.222.210.12]
SPIELRÜCKBLICK ************************************************ ************************************************* ************************************************* *************************************************
35.222.210.12 : ok=2 geändert=1 nicht erreichbar=0 fehlgeschlagen=0 übersprungen=0 gerettet=0 ignoriert=0

Wenn Sie die Berechtigungen des von uns erstellten Verzeichnisses anzeigen, sehen Sie Folgendes:

$ ls -lrt / | grep-Backups

Die Ausgabe ist wie unten gezeigt:

drw--wxrwx.   2 root root    6. Mär  6 17:36 Backups

So ändern Sie rekursiv Berechtigungen in einem Verzeichnis

Um die Berechtigungen eines Verzeichnisses und seiner Dateien rekursiv zu ändern, geben Sie einfach den rekursiven Eintrag wie unten gezeigt an:

- Gastgeber: alle
Aufgaben:
- Name: Ansible Verzeichnis erstellen und Berechtigungen festlegen
Datei:
Pfad: /backups
Zustand: Verzeichnis
Modus: "u=rw,g=wx,o=rwx"
rekursiv: ja
werden: ja

So legen Sie Berechtigungen in mehreren Verzeichnissen fest

Das Einrichten von Berechtigungen für mehrere Verzeichnisse in Ansible ist ebenfalls so einfach wie ein paar Zeilen Einträge. Betrachten Sie das folgende Playbook.

- Gastgeber: alle
Aufgaben:
- name: Ansible erstelle mehrere Verzeichnisse mit Berechtigungen
Datei:
Pfad: " item.Pfad "
Modus: "item.Modus"
Zustand: Verzeichnis
with_items:
- Pfad: '~/backups/mysql', Modus: '0777'
- Pfad: '~/backups/Repository', Modus: '0755'
- Pfad: '~/backups/config', Modus: '0707'

So löschen Sie ein Verzeichnis in Ansible

Um ein Verzeichnis und seinen gesamten Inhalt mit einem Ansible-Playbook zu entfernen, geben Sie den Status als abwesend an, wie unten gezeigt:

- Gastgeber: alle
Aufgaben:
- Name: Ansible Verzeichnis löschen
Datei:
Pfad: /backups
Zustand: abwesend
werden: ja

Dieser Befehl entfernt das Verzeichnis und alle untergeordneten Dateien und Verzeichnisse.

HINWEIS: Stellen Sie sicher, dass Sie über Berechtigungen für das Verzeichnis verfügen, an dem Sie arbeiten.

So erstellen Sie ein Verzeichnis mit Zeitstempel

In einigen Fällen müssen Sie möglicherweise ein Verzeichnis mit einem angehängten Zeitstempel erstellen, was besonders beim Erstellen von Backups sehr nützlich sein kann. Um ein Verzeichnis mit Zeitstempel zu erstellen, können wir die Variable ansible_date_time verwenden.

Betrachten Sie das folgende Playbook:

- Gastgeber: alle
Aufgaben:
- name: Ansible Zeitstempel zum Verzeichnis hinzufügen
Datei:
Pfad: "/backups/mysqlansible_date_time.Datum"
Zustand: Verzeichnis
Modus: "0777"
werden: ja

Sobald Sie das Playbook ausführen, haben Sie ein Verzeichnis mit dem Zeitstempel.

$ ls -l

Die Verzeichnisliste sollte wie folgt aussehen:

insgesamt 0 drwxrwxrwx. 2 root root 6 Mär 6 18:03 mysql2021-03-06

HINWEIS: Um Fehler zu vermeiden, überprüfen Sie immer die YAML-Dateisyntax, die Sie in Ansible verwenden möchten.

Fazit

Dieses Tutorial hat Ihnen gezeigt, dass die Arbeit mit Ansible-Modulen sehr einfach und intuitiv ist, wodurch die Automatisierung komplexer Aufgaben einfacher wird. Mit dem Ansible-Dateimodul können Sie ein oder mehrere Verzeichnisse erstellen und Berechtigungen für jedes hinzufügen. Sie können dasselbe Modul auch verwenden, um ein Verzeichnis zu entfernen. Weitere Informationen zur Verwendung des Ansible-Dateimoduls finden Sie in der offiziellen Dokumentation auf der Ressourcenseite.

Cursor springt oder bewegt sich zufällig während der Eingabe in Windows 10
Wenn Sie feststellen, dass Ihr Mauszeiger während der Eingabe auf einem Windows-Laptop oder -Computer automatisch und zufällig springt oder sich von s...
So kehren Sie die Scrollrichtung von Maus und Touchpads in Windows 10 um
Maus und Touchpads machen das Rechnen nicht nur einfach, sondern auch effizienter und weniger zeitaufwendig. Wir können uns ein Leben ohne diese Gerät...
So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...