web-dev-qa-db-ja.com

Ansibleのファイルに変数を書き込む

URIモジュールを介してJSONをプルしており、受信したコンテンツをファイルに書き出したいと考えています。コンテンツを取得してデバッガーに出力することができるので、コンテンツが受信されたことはわかりますが、ファイルを書き込むためのベストプラクティスはわかりません。

78
Keith Adler

copyパラメーターを指定したcontentモジュールを使用できます。

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

こちらのドキュメント: copy module

156

非常に小さなファイルを作成する場合を除き、おそらく templates を使用する必要があります。

例:

- name: copy upstart script
  template: 
    src: myCompany-service.conf.j2 
    dest: "/etc/init/myCompany-service.conf"
7
Janus Troelsen

Ramonの回答に基づいて、エラーが発生しました。記述しようとしたJSONのスペースの問題は、プレイブックのタスクを次のように変更することで修正されました。

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

今のところ、なぜこれが必要なのかわかりません。私の最良の推測は、変数がAnsibleでどのように置き換えられ、結果のファイルが解析されるかに関係しているということです。

5
Tobias Kremer