Aplicaciones prácticas
El módulo Ansible Stat se puede utilizar en una variedad de aplicaciones prácticas para automatizar tareas de gestión de infraestructura. Aquí tienes algunos ejemplos:
Verificar la existencia y los permisos de un archivo
Un caso de uso común del módulo Stat es verificar la existencia y los permisos de un archivo o directorio. Esto puede ser útil cuando es necesario asegurarse de que un archivo o directorio crítico está presente y tiene los permisos correctos antes de continuar con otras tareas. Aquí tienes un ejemplo:
- 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
Este ejemplo primero comprueba si el archivo /etc/hosts existe utilizando el módulo Stat. Si el archivo no existe, el playbook fallará con un mensaje de error. Si el archivo existe, el playbook se asegura de que el archivo tenga la propiedad y los permisos correctos.
Tareas condicionales basadas en atributos de archivos
El módulo Stat también se puede utilizar para tomar decisiones basadas en los atributos de un archivo o directorio. Por ejemplo, se puede utilizar el módulo Stat para comprobar la hora de modificación de un archivo y realizar diferentes acciones en función de si el archivo se ha actualizado. Aquí tienes un ejemplo:
- 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)
En este ejemplo, el módulo Stat se utiliza para recuperar la hora de modificación del archivo /etc/app/config.yml. Si el archivo no se ha modificado en la última hora (3600 segundos), el playbook actualiza el archivo de configuración utilizando una plantilla Jinja2.
Operaciones de copia de seguridad y restauración
El módulo Stat también se puede utilizar para realizar operaciones de copia de seguridad y restauración. Por ejemplo, se puede utilizar el módulo Stat para comprobar el tamaño de un archivo o directorio antes de realizar una copia de seguridad y luego utilizar la misma información para verificar la integridad de la copia de seguridad. Aquí tienes un ejemplo:
- 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"
En este ejemplo, el módulo Stat se utiliza para recuperar el tamaño del directorio /var/www/html antes de crear un archivo de copia de seguridad. Después de crear la copia de seguridad, el módulo Stat se utiliza nuevamente para verificar el tamaño del archivo de copia de seguridad, asegurando que el proceso de copia de seguridad fue exitoso.
Al aprovechar el módulo Ansible Stat en tus playbooks, puedes automatizar una amplia gama de tareas de gestión de infraestructura, mejorar la confiabilidad de tus sistemas y optimizar tu flujo de trabajo general.