Dans cette étape, vous allez utiliser le module Stat d'Ansible pour collecter des informations sur un fichier sur un hôte distant.
Tout d'abord, créez un nouveau fichier de playbook Ansible appelé /home/labex/project/stat-module-playbook.yaml
et ouvrez-le dans un éditeur de texte.
Ajoutez le contenu suivant au fichier de playbook :
- hosts: localhost
tasks:
- name: Obtenir des informations sur un fichier
stat:
path: /home/labex/project/file.txt
register: file_info
- name: Afficher les informations sur le fichier
debug:
msg: |
Taille du fichier : {{ file_info.stat.size }}
Propriétaire : {{ file_info.stat.uid }}:{{ file_info.stat.gid }}
Permissions : {{ file_info.stat.mode }}
hosts
: Cela spécifie l'hôte cible sur lequel exécuter le playbook. Dans ce cas, le playbook sera exécuté sur l'hôte local car l'hôte cible est localhost
.
tasks
: Il s'agit d'une liste de tâches à exécuter.
name
: C'est le nom descriptif de la tâche qui identifie le but de la tâche.
stat
: Ce module Ansible collecte des informations sur un fichier sur l'hôte distant spécifié par le paramètre path
.
register
: Stocke la sortie du module stat
dans une variable nommée file_info
pour une utilisation ultérieure.
debug
: Affiche des informations de débogage pendant l'exécution du playbook.
msg
: Affiche un message avec les informations sur le fichier récupérées en utilisant le module stat
, y compris la taille du fichier, la propriété (UID et GID) et les permissions.
En résumé, ce playbook est conçu pour récupérer des informations sur un fichier spécifique situé à /home/labex/project/file.txt
sur l'hôte local et afficher divers détails tels que la taille, la propriété et les permissions.
Ensuite, créez un fichier appelé file.txt
dans le répertoire /home/labex/project
.
echo "This is the content of the file." > /home/labex/project/file.txt
Enfin, exécutez le playbook avec la commande suivante :
ansible-playbook stat-module-playbook.yaml
Observez la sortie pour voir la taille du fichier, la propriété et les permissions du fichier spécifié.
Exemple de sortie :
[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