En este paso, utilizarás el módulo Stat de Ansible para recopilar información sobre un archivo en un host remoto.
Primero, crea un nuevo archivo de playbook de Ansible llamado /home/labex/project/stat-module-playbook.yaml y dile a un editor de texto que lo abra.
Agrega el siguiente contenido al archivo de playbook:
- hosts: localhost
tasks:
- name: Obtener información sobre el archivo
stat:
path: /home/labex/project/file.txt
register: file_info
- name: Imprimir información sobre el archivo
debug:
msg: |
Tamaño del archivo: {{ file_info.stat.size }}
Propietario: {{ file_info.stat.uid }}:{{ file_info.stat.gid }}
Permisos: {{ file_info.stat.mode }}
hosts: Esto especifica el host destino en el que se ejecutará el playbook. En este caso, el playbook se ejecutará en el host local porque el host destino es localhost.
tasks: Esta es una lista de tareas que se ejecutarán.
name: Este es el nombre descriptivo de la tarea que identifica el propósito de la tarea.
stat: Este módulo de Ansible recopila información sobre un archivo en el host remoto especificado por el parámetro path.
register: Guarda la salida del módulo stat en una variable llamada file_info para su uso posterior.
debug: Imprime información de depuración durante la ejecución del playbook.
msg: Muestra un mensaje con la información del archivo recuperada utilizando el módulo stat, incluyendo el tamaño del archivo, la propiedad (UID y GID) y los permisos.
En resumen, este playbook está diseñado para recuperar información sobre un archivo específico ubicado en /home/labex/project/file.txt en el host local y mostrar varios detalles como el tamaño, la propiedad y los permisos.
Luego, crea un archivo llamado file.txt en el directorio /home/labex/project.
echo "This is the content of the file." > /home/labex/project/file.txt
Finalmente, ejecuta el playbook con el siguiente comando:
ansible-playbook stat-module-playbook.yaml
Observa la salida para ver el tamaño del archivo, la propiedad y los permisos del archivo especificado.
Salida de ejemplo:
[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