Recuperando múltiples archivos con Ansible
Utilizando un bucle para recuperar múltiples archivos
Para recuperar múltiples archivos de hosts remotos, puedes utilizar un bucle en tu playbook de Ansible. Aquí hay un ejemplo:
- hosts: all
tasks:
- name: Fetch multiple files from remote host
ansible.builtin.fetch:
src: "{{ item }}"
dest: /local/path/{{ inventory_hostname }}/{{ item | basename }}
flat: yes
loop:
- /path/to/file1.txt
- /path/to/file2.txt
- /path/to/file3.txt
En este ejemplo, el módulo ansible.builtin.fetch se utiliza dentro de un bucle para recuperar tres archivos diferentes del host remoto. El parámetro src utiliza la variable {{ item }} para especificar la ruta del archivo para cada iteración del bucle. El parámetro dest construye la ruta del archivo local utilizando las variables {{ inventory_hostname }} y {{ item | basename }}, lo que asegura que los archivos se guarden con los nombres correctos.
Recuperando archivos utilizando una variable de lista
Alternativamente, puedes almacenar la lista de archivos a recuperar en una variable y utilizar esa variable en el parámetro src. Esto puede ser útil si la lista de archivos es dinámica o se almacena en un archivo separado. Aquí hay un ejemplo:
- hosts: all
vars:
files_to_fetch:
- /path/to/file1.txt
- /path/to/file2.txt
- /path/to/file3.txt
tasks:
- name: Fetch multiple files from remote host
ansible.builtin.fetch:
src: "{{ item }}"
dest: /local/path/{{ inventory_hostname }}/{{ item | basename }}
flat: yes
loop: "{{ files_to_fetch }}"
En este ejemplo, la lista de archivos a recuperar se almacena en la variable files_to_fetch, que luego se utiliza en el parámetro loop del módulo ansible.builtin.fetch.
Recuperando archivos utilizando comodines
El módulo Fetch de Ansible también admite el uso de comodines en el parámetro src. Esto puede ser útil cuando necesitas recuperar múltiples archivos que coincidan con un cierto patrón. Aquí hay un ejemplo:
- hosts: all
tasks:
- name: Fetch log files from remote host
ansible.builtin.fetch:
src: /var/log/*.log
dest: /local/path/{{ inventory_hostname }}/logs/
flat: no
En este ejemplo, el parámetro src utiliza el comodín *.log para recuperar todos los archivos de registro ubicados en el directorio /var/log del host remoto. La opción flat: no asegura que la estructura de directorios se conserve en la ruta de destino local.
Al utilizar estas técnicas, puedes recuperar efectivamente múltiples archivos de hosts remotos utilizando el módulo Fetch de Ansible, lo que facilita la gestión y el análisis de datos en toda tu infraestructura.