Wyciągam JSON przez moduł URI i chcę zapisać odebraną zawartość do pliku. Mogę pobrać zawartość i wyprowadzić ją do debuggera, więc wiem, że treść została odebrana, ale nie znam najlepszej praktyki pisania plików.Zapisz zmienną do pliku w Ansible
Odpowiedz
Można użyć modułu copy
, z parametrem content
:
- copy: content="{{ your_json_feed }}" dest=/path/to/destination/file
Docs tutaj: copy module
podstawie odpowiedzi Ramona biegnę do błędu. Problem gdzie obowiązuje w JSON Próbowałem napisać mam to naprawić zmieniając zadanie w playbook wyglądać:
- copy:
content: "{{ your_json_feed }}"
dest: "/path/to/destination/file"
Jak teraz nie jestem pewien, dlaczego to było potrzebne. Domyślam się, że miało to jakiś związek z zastępowaniem zmiennych w Ansible, a plik wynikowy jest analizowany.
Jeśli nie piszesz bardzo małych plików, prawdopodobnie powinieneś użyć templates.
przykład:
- name: copy upstart script
template:
src: myCompany-service.conf.j2
dest: "/etc/init/myCompany-service.conf"
Podczas odpowiedzi Ramona dokładnie odpowiada na pytanie, ta odpowiedź jest ogólnie najlepszym podejściem. Na przykład, jeśli masz książeczkę, która tworzy maszyny wirtualne w chmurze i chcesz wygenerować spis hostów dla innego zestawu zabaw, szablon jest do zrobienia. –
= zawartość "{{your_json_feed}}" dotyczy spacji i znakami nowej linii. Cytaty są ważne. –
Dobra uwaga, @ m.kocikowski. Dodano cytaty. –
@RamondelaFuente Jeśli chciałbym dodać wiele plików vars do pliku, muszę użyć modułu "copy" wiele razy lub jest jakiś inny sposób? – KishoreReddy