我有一个记录三个变量的剧本。我想在清单中的所有主机上生成这三个变量的CSV报告。
This所以回答建议使用:
- local_action: copy content={{ foo_result }} dest=/path/to/destination/file
但是这不会附加到csv文件。 另外,在这种情况下,我必须用逗号分隔符手动编写。
关于如何将变量记录(追加)到本地文件的任何想法?
答案 0 :(得分:2)
如果您想要在文件中添加一行而不是替换它的内容,那么这可能最适合lineinfile
模块并利用模块在文件末尾插入一行的能力。 / p>
与您使用的副本相同的任务类似于:
- name: log foo_result to file
lineinfile:
line: "{{ foo_result }}"
insertafter: EOF
dest: /path/to/destination/file
delegate_to: 127.0.0.1
请注意,我在本地使用delegating tasks的长手而不是local_action
。我个人认为语法读得更清楚,但如果您更喜欢local_action
更紧凑的语法,则可以轻松使用以下内容:
- local_action: lineinfile line={{ foo_result }} insertafter=EOF dest=/path/to/destination/file