Después de recuperar los metadatos de archivos utilizando el módulo Stat de Ansible, puedes mostrar la información en tus playbooks de diversas maneras para adaptarte a tus necesidades.
La forma más común de mostrar información de archivos es utilizando el módulo Debug de Ansible. Este módulo te permite mostrar el contenido de variables, incluyendo los metadatos de archivos recuperados por el módulo Stat.
Aquí tienes un ejemplo:
- name: Get file information
ansible.builtin.stat:
path: /path/to/file.txt
register: file_info
- name: Display file information
debug:
msg:
- "File path: {{ file_info.stat.path }}"
- "File exists: {{ file_info.stat.exists }}"
- "File type: {{ 'directory' if file_info.stat.isdir else 'file' }}"
- "File size: {{ file_info.stat.size }} bytes"
- "File owner: {{ file_info.stat.owner }}"
- "File permissions: {{ file_info.stat.mode }}"
- "File modification time: {{ file_info.stat.mtime }}"
En este ejemplo, los metadatos del archivo se almacenan en la variable file_info
, y se utiliza el módulo debug
para mostrar la información en un mensaje formateado.
También puedes utilizar los metadatos de archivos para realizar comprobaciones condicionales en tus playbooks. Esto puede ser útil para automatizar tareas basadas en el estado de archivos y directorios.
Por ejemplo, puedes comprobar si un archivo existe antes de intentar copiarlo o modificarlo:
- name: Check if file exists
ansible.builtin.stat:
path: /path/to/file.txt
register: file_info
- name: Copy file
ansible.builtin.copy:
src: /path/to/source.txt
dest: /path/to/file.txt
when: file_info.stat.exists
En este ejemplo, se utiliza el módulo Stat para comprobar si el archivo en /path/to/file.txt
existe. La tarea copy
solo se ejecuta si el archivo existe, según lo determine la condición file_info.stat.exists
.
Almacenar información de archivos para uso posterior
También puedes almacenar los metadatos de archivos recuperados por el módulo Stat para usarlos posteriormente en tus playbooks. Esto puede ser útil para generar informes, comparar el estado de archivos en múltiples hosts o automatizar otras tareas.
Por ejemplo, puedes almacenar los metadatos del archivo en una variable y usarlos en una tarea posterior:
- name: Get file information
ansible.builtin.stat:
path: /path/to/file.txt
register: file_info
- name: Print file modification time
debug:
msg: "File modification time: {{ file_info.stat.mtime }}"
En este ejemplo, los metadatos del archivo se almacenan en la variable file_info
, que luego se puede acceder en tareas posteriores, como la tarea debug
que muestra la fecha de modificación del archivo.