set_fact - Ansible: leer archivo remoto
ansible hostvars (5)
Genero archivos con ansible en un host remoto y después de esta generación, me gustaría leer estos archivos en otra tarea.
No encuentro ningún módulo para leer archivos remotos con ansible (la búsqueda parece solo en el host local).
¿Conoces un módulo como este?
Gracias
EDITAR:
Aquí está mi caso de uso:
Genero claves ssh y las agrego a github. Estas claves se configuran por un objeto en los archivos var, así que hago un bucle como este para generarlo:
tasks:
- name: Create ssh key
user:
name: "{{sshConfigFile.user}}"
generate_ssh_key: yes
ssh_key_file: ".ssh/{{item.value.file}}"
state: present
with_dict: "{{sshConfiguration}}"
Funciona muy bien, pero ¿cómo se leen estas claves para enviarlas a github a través de la API?
Al usar el módulo de comando, puede leer o usar ese archivo en otra tarea en un nodo remoto.
me gusta
-command: cp /tmp/xxx/example.sh /usr/local/yyy
Como dijiste, todas las búsquedas están en localhost. Pero todos ellos se pueden hacer en remoto mediante el uso de shell
y register
. ¿Puedes decir qué es exactamente lo que estás tratando de hacer? solo un ejemplo
- shell: cat "{{remote_file}}"
register: data
- shell: ......
with_xxxx:
Ejecute con el indicador --diff (genera un dif cuando cambia el archivo de destino) ..
ansible-playbook --diff server.yaml
o sorbelo hasta ..
- name: Slurp hosts file
slurp:
src: /etc/hosts
register: slurpfile
- debug: msg="{{ slurpfile[''content''] | b64decode }}"
Puede probar el módulo ''fetch'' , que recuperará el archivo de clave en una ruta de destino en localhost
:
fetch:
src: ".ssh/{{item.value.file}}"
dest:"/tmp/ssh_keys/{{item.value.file}}"
flat: yes
with_dict: "{{sshConfiguration}}"
Puede registrar el contenido del archivo en una variable usando el comando de registro. Esto es lo que sugeriría,
- name: get contents of file
command: cat /path/to/file
register: filename
become: true # use case specific option
- name: viewing the contents
debug:
msg: "{{filename.stdout}}"
Esto mostrará el contenido del archivo.