Applications pratiques
Le module Ansible Stat peut être utilisé dans diverses applications pratiques pour automatiser les tâches de gestion d'infrastructure. Voici quelques exemples :
Vérification de l'existence et des autorisations d'un fichier
Un cas d'utilisation courant du module Stat est de vérifier l'existence et les autorisations d'un fichier ou d'un répertoire. Cela peut être utile lorsque vous devez vous assurer qu'un fichier ou un répertoire critique est présent et a les autorisations correctes avant de poursuivre avec d'autres tâches. Voici un exemple :
- hosts: all
tasks:
- name: Check if a file exists
ansible.builtin.stat:
path: /etc/hosts
register: hosts_file
- name: Fail if the file does not exist
fail:
msg: "/etc/hosts file does not exist"
when: not hosts_file.stat.exists
- name: Ensure file permissions
file:
path: /etc/hosts
owner: root
group: root
mode: "0644"
when: hosts_file.stat.exists
Cet exemple vérifie d'abord si le fichier /etc/hosts
existe en utilisant le module Stat. Si le fichier n'existe pas, le playbook échouera avec un message d'erreur. Si le fichier existe, le playbook s'assure que le fichier a le bon propriétaire et les bonnes autorisations.
Tâches conditionnelles basées sur les attributs d'un fichier
Le module Stat peut également être utilisé pour prendre des décisions en fonction des attributs d'un fichier ou d'un répertoire. Par exemple, vous pouvez utiliser le module Stat pour vérifier la date de modification d'un fichier et effectuer différentes actions en fonction de si le fichier a été mis à jour. Voici un exemple :
- hosts: all
tasks:
- name: Get information about a configuration file
ansible.builtin.stat:
path: /etc/app/config.yml
register: config_file
- name: Update configuration file
template:
src: config.yml.j2
dest: /etc/app/config.yml
when: config_file.stat.mtime < (ansible_date_time.epoch | int - 3600)
Dans cet exemple, le module Stat est utilisé pour récupérer la date de modification du fichier /etc/app/config.yml
. Si le fichier n'a pas été modifié au cours de la dernière heure (3600 secondes), le playbook met à jour le fichier de configuration en utilisant un modèle Jinja2.
Opérations de sauvegarde et de restauration
Le module Stat peut également être utilisé pour effectuer des opérations de sauvegarde et de restauration. Par exemple, vous pouvez utiliser le module Stat pour vérifier la taille d'un fichier ou d'un répertoire avant de le sauvegarder, puis utiliser les mêmes informations pour vérifier l'intégrité de la sauvegarde. Voici un exemple :
- hosts: all
tasks:
- name: Get information about a directory
ansible.builtin.stat:
path: /var/www/html
register: web_dir
- name: Backup web directory
archive:
path: /var/www/html
dest: /backups/web_dir.tar.gz
- name: Verify backup integrity
ansible.builtin.stat:
path: /backups/web_dir.tar.gz
register: backup_file
assert:
that:
- backup_file.stat.size == web_dir.stat.size
msg: "Backup file size does not match the original directory size"
Dans cet exemple, le module Stat est utilisé pour récupérer la taille du répertoire /var/www/html
avant de créer une archive de sauvegarde. Après la création de la sauvegarde, le module Stat est utilisé à nouveau pour vérifier la taille du fichier de sauvegarde, s'assurant que le processus de sauvegarde a été réussi.
En utilisant le module Ansible Stat dans vos playbooks, vous pouvez automatiser un large éventail de tâches de gestion d'infrastructure, améliorer la fiabilité de vos systèmes et rationaliser votre flux de travail global.