Module Stat d'Ansible

AnsibleAnsibleBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez explorer le module Stat d'Ansible, qui vous permet de collecter des informations sur les fichiers et les répertoires sur des hôtes distants. Le module Stat fournit diverses attributs et informations, telles que la taille du fichier, la propriété, les permissions et les horodatages de modification.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 100%. Il a reçu un taux d'avis positifs de 100% de la part des apprenants.

Obtenir des informations sur un fichier

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

Vérifier l'existence d'un fichier

Dans cette étape, vous allez utiliser le module Stat d'Ansible pour vérifier l'existence d'un fichier sur un hôte distant.

Tout d'abord, modifiez le fichier de playbook existant en supprimant tout le contenu et en ajoutant le contenu suivant au fichier de playbook :

- hosts: localhost
  tasks:
    - name: Vérifier l'existence d'un fichier sur l'hôte distant
      stat:
        path: /home/labex/project/file.txt
      register: file_info

    - name: Afficher l'existence du fichier
      debug:
        msg: "Le fichier existe : {{ file_info.stat.exists }}"
  • 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 indiquant si le fichier existe ou non en fonction des informations récupérées en utilisant le module stat.

En résumé, ce playbook est conçu pour vérifier l'existence d'un fichier spécifique situé à /path/on/remote/host/file.txt sur l'hôte local et afficher un message indiquant si le fichier existe ou non.

Ensuite, exécutez le playbook avec la commande suivante :

ansible-playbook stat-module-playbook.yaml

Observez la sortie pour voir si le fichier file.txt existe sur l'hôte distant.
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 [Check file existence on remote host] *************************************
ok: [localhost]

TASK [Print file existence] ****************************************************
ok: [localhost] => {
    "msg": "Le fichier existe : True"
}

PLAY RECAP *********************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Récupérer le timestamp de modification d'un fichier

Dans cette étape, vous allez utiliser le module Stat d'Ansible pour récupérer le timestamp de modification d'un fichier sur un hôte distant.

Tout d'abord, modifiez le fichier de playbook existant en supprimant tout le contenu et en ajoutant le contenu suivant au fichier de playbook :

- hosts: localhost
  tasks:
    - name: Obtenir le timestamp de modification du fichier
      stat:
        path: /home/labex/project/file.txt
      register: file_info

    - name: Afficher le timestamp de modification du fichier
      debug:
        msg: "Timestamp de modification du fichier : {{ file_info.stat.mtime }}"
  • 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 contenant le timestamp de modification du fichier récupéré en utilisant le module stat.

En résumé, ce playbook est conçu pour récupérer le timestamp de modification d'un fichier spécifique situé à /home/labex/project/file.txt sur l'hôte local et afficher le timestamp.

Ensuite, exécutez le playbook avec la commande suivante :

ansible-playbook stat-module-playbook.yaml

Observez la sortie pour voir le timestamp de modification du fichier file.txt au format lisible par l'homme.
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 modification timestamp] *****************************************
ok: [localhost]

TASK [Print file modification timestamp] ***************************************
ok: [localhost] => {
    "msg": "Timestamp de modification du fichier : 1710555624.2304714"
}

PLAY RECAP *********************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Sommaire

Félicitations! Vous avez réussi le laboratoire sur le module Stat d'Ansible. Vous avez appris à collecter des informations sur les fichiers, à vérifier l'existence d'un fichier et à récupérer le timestamp de modification à l'aide du module Stat dans Ansible.

Le module Stat est un outil puissant qui vous permet de collecter diverses attributs et informations sur les fichiers et les répertoires sur des hôtes distants. Vous pouvez désormais utiliser ce module dans vos playbooks Ansible pour effectuer des opérations avancées liées aux fichiers et prendre des décisions éclairées en fonction des informations collectées.

Continuez à explorer la documentation Ansible et à expérimenter avec différents modules pour améliorer vos compétences en automatisation. Bonne continuation avec Ansible!