将变量记录到ansible主机

时间:2015-11-27 01:10:23

标签: ansible ansible-playbook

我有一个记录三个变量的剧本。我想在清单中的所有主机上生成这三个变量的CSV报告。

This所以回答建议使用:

- local_action: copy content={{ foo_result }} dest=/path/to/destination/file

但是这不会附加到csv文件。 另外,在这种情况下,我必须用逗号分隔符手动编写。

关于如何将变量记录(追加)到本地文件的任何想法?

1 个答案:

答案 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