Je tire JSON via le module URI et je veux écrire le contenu reçu dans un fichier. Je peux obtenir le contenu et le sortir vers le débogueur. Je sais donc que le contenu a été reçu, mais je ne connais pas les meilleures pratiques pour écrire des fichiers.
Vous pouvez utiliser le module copy
avec le paramètre content
:
- copy: content="{{ your_json_feed }}" dest=/path/to/destination/file
La documentation ici: module de copie
Sauf si vous écrivez de très petits fichiers, vous devriez probablement utiliser templates .
Exemple:
- name: copy upstart script
template:
src: myCompany-service.conf.j2
dest: "/etc/init/myCompany-service.conf"
Basé sur la réponse de Ramon, je rencontre une erreur. Le problème des espaces dans le JSON que j'ai essayé d'écrire a été corrigé en modifiant la tâche dans le livre de jeu de la manière suivante:
- copy:
content: "{{ your_json_feed }}"
dest: "/path/to/destination/file"
Pour l'instant, je ne sais pas pourquoi cela était nécessaire. Ma meilleure hypothèse est que cela a quelque chose à voir avec la façon dont les variables sont remplacées dans Ansible et le fichier résultant est analysé.