Cas d'utilisation pratiques du module Ansible Stat
Le module stat
d'Ansible possède un large éventail d'utilisations pratiques, allant des vérifications simples d'existence de fichiers à des tâches de gestion de fichiers plus complexes. Voici quelques exemples :
Vérification de l'existence et des propriétés des fichiers
L'un des cas d'utilisation les plus courants du module stat
est de vérifier l'existence et les propriétés d'un fichier ou d'un répertoire. Cela peut être utile pour s'assurer qu'un fichier ou un répertoire requis est présent sur les hôtes cibles avant d'exécuter d'autres tâches. Par exemple :
- name: Vérifier si un fichier de configuration existe
stat:
path: /etc/myapp/config.yml
register: config_file
- name: Échouer si le fichier de configuration est manquant
fail:
msg: "Le fichier de configuration est manquant !"
when: not config_file.stat.exists
Dans cet exemple, le module stat
est utilisé pour vérifier si le fichier /etc/myapp/config.yml
existe. Si le fichier n'existe pas, la tâche échouera avec un message d'erreur.
Comparaison des propriétés des fichiers entre les hôtes
Le module stat
peut également être utilisé pour comparer les propriétés d'un fichier ou d'un répertoire entre différents hôtes. Cela peut être utile pour garantir la cohérence de votre infrastructure ou pour identifier les différences entre les environnements. Par exemple :
- name: Obtenir des informations sur un fichier journal
stat:
path: /var/log/myapp.log
register: log_file_info
delegate_to: app_server
- name: Obtenir des informations sur le même fichier journal sur un autre hôte
stat:
path: /var/log/myapp.log
register: log_file_info_backup
delegate_to: backup_server
- name: Comparer les propriétés du fichier journal
debug:
msg: >
Les propriétés du fichier journal diffèrent entre app_server et backup_server.
app_server : {{ log_file_info.stat.size }} octets, {{ log_file_info.stat.mtime }}
backup_server : {{ log_file_info_backup.stat.size }} octets, {{ log_file_info_backup.stat.mtime }}
when: log_file_info.stat.size != log_file_info_backup.stat.size or
log_file_info.stat.mtime != log_file_info_backup.stat.mtime
Dans cet exemple, le module stat
est utilisé pour collecter des informations sur un fichier journal sur deux hôtes différents (app_server
et backup_server
). Les informations collectées sont ensuite comparées, et un message debug est affiché si les propriétés du fichier diffèrent.
Exécution conditionnelle basée sur les propriétés des fichiers
Le module stat
peut également être utilisé pour exécuter des tâches conditionnellement en fonction des propriétés d'un fichier ou d'un répertoire. Cela peut être utile pour automatiser diverses tâches de gestion de fichiers, telles que la création de sauvegardes ou la déclenchement d'alertes. Par exemple :
- name: Vérifier si un fichier journal est trop volumineux
stat:
path: /var/log/myapp.log
register: log_file_info
- name: Créer une sauvegarde du fichier journal
copy:
src: /var/log/myapp.log
dest: /var/backups/myapp.log.{{ ansible_date_time.iso8601 }}
when: log_file_info.stat.size > 1024 * 1024 * 10 ## 10 Mo
Dans cet exemple, le module stat
est utilisé pour vérifier la taille du fichier /var/log/myapp.log
. Si la taille du fichier dépasse 10 Mo, une sauvegarde du fichier est créée dans le répertoire /var/backups
.
Ce ne sont là que quelques exemples des cas d'utilisation pratiques du module Ansible stat
. En comprenant comment utiliser efficacement ce module, vous pouvez rationaliser la gestion de votre infrastructure et automatiser un large éventail de tâches liées aux fichiers.