In diesem Schritt verwenden Sie das Ansible Stat-Modul, um Informationen zu einer Datei auf einem entfernten Host zu sammeln.
Erstellen Sie zunächst eine neue Ansible-Playbook-Datei mit dem Namen /home/labex/project/stat-module-playbook.yaml
und öffnen Sie sie in einem Texteditor.
Fügen Sie den folgenden Inhalt zur Playbook-Datei hinzu:
- hosts: localhost
tasks:
- name: Get file information
stat:
path: /home/labex/project/file.txt
register: file_info
- name: Print file information
debug:
msg: |
File size: {{ file_info.stat.size }}
Ownership: {{ file_info.stat.uid }}:{{ file_info.stat.gid }}
Permissions: {{ file_info.stat.mode }}
hosts
: Dies gibt den Zielhost an, auf dem das Playbook ausgeführt werden soll. In diesem Fall wird das Playbook auf dem lokalen Host ausgeführt, da der Zielhost localhost
ist.
tasks
: Dies ist eine Liste von Aufgaben, die ausgeführt werden sollen.
name
: Dies ist der beschreibende Name für die Aufgabe, der den Zweck der Aufgabe identifiziert.
stat
: Dieses Ansible-Modul sammelt Informationen zu einer Datei auf dem von dem path
-Parameter angegebenen entfernten Host.
register
: Speichert die Ausgabe des stat
-Moduls in einer Variable namens file_info
für spätere Verwendung.
debug
: Gibt während der Ausführung des Playbooks Debuginformationen aus.
msg
: Gibt eine Nachricht mit den Dateiinformationen aus, die mithilfe des stat
-Moduls abgerufen wurden, einschließlich Dateigröße, Eigentum (UID und GID) und Berechtigungen.
Zusammenfassend ist dieses Playbook dazu gedacht, Informationen zu einer bestimmten Datei im Verzeichnis /home/labex/project/file.txt
auf dem lokalen Host abzurufen und verschiedene Details wie Größe, Eigentum und Berechtigungen auszugeben.
Erstellen Sie anschließend eine Datei mit dem Namen file.txt
im Verzeichnis /home/labex/project
.
echo "This is the content of the file." > /home/labex/project/file.txt
Schließlich führen Sie das Playbook mit dem folgenden Befehl aus:
ansible-playbook stat-module-playbook.yaml
Beobachten Sie die Ausgabe, um die Dateigröße, das Eigentum und die Berechtigungen der angegebenen Datei zu sehen.
Beispielausgabe:
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Get file information] ****************************************************
ok: [localhost]
TASK [Print file information] **************************************************
ok: [localhost] => {
"msg": "File size: 33\nOwnership: 5000:5000\nPermissions: 0664\n"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0