Escribir variable en un archivo en Ansible
Estoy extrayendo JSON a través del módulo URI y quiero escribir el contenido recibido en un archivo. Soy capaz de obtener el contenido y enviarlo al depurador, por lo que sé que el contenido se ha recibido, pero no conozco las mejores prácticas para escribir archivos.
3 answers
Puedes usar el módulo copy
, con el parámetro content
:
- copy: content="{{ your_json_feed }}" dest=/path/to/destination/file
Los documentos aquí: copiar módulo
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-25 20:01:22
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"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-22 17:06:27
Basado en la respuesta de Ramón me encuentro con un error. El problema donde los espacios en el JSON traté de escribir lo arreglé cambiando la tarea en el libro de jugadas para que se vea como:
- copy:
content: "{{ your_json_feed }}"
dest: "/path/to/destination/file"
A partir de ahora no estoy seguro de por qué se necesitaba esto. Mi mejor conjetura es que tenía algo que ver con cómo se reemplazan las variables en Ansible y se analiza el archivo resultante.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-15 08:09:38