Saltar al contenido

Escribir variable en un archivo en Ansible

Solución:

Un comentario importante de tmoschou:

As of Ansible 2.10, The documentation for ansible.builtin.copy says:
If you need variable interpolation in copied files, use the
ansible.builtin.template module. Using a variable in the content
field will result in unpredictable output.

Para obtener más detalles, consulte esto y una explicación.


Respuesta original:

Podrías usar el copy módulo, con el content parámetro:

- copy: content="{{ your_json_feed }}" dest=/path/to/destination/file

Los documentos aquí: módulo de copia

Según la respuesta de Ramón, me encuentro con un error. El problema donde los espacios en el JSON que intenté escribir lo solucioné cambiando la tarea en el libro de jugadas para que se pareciera a:

- copy:
    content: "{{ your_json_feed }}"
    dest: "/path/to/destination/file"

A partir de ahora, no estoy seguro de por qué fue necesario. Mi mejor suposición es que tuvo algo que ver con cómo se reemplazan las variables en Ansible y se analiza el archivo resultante.

A menos que esté escribiendo archivos muy pequeños, probablemente debería usar plantillas.

Ejemplo:

- name: copy upstart script
  template: 
    src: myCompany-service.conf.j2 
    dest: "/etc/init/myCompany-service.conf"
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *