Ansible 将可能的事实从剧本中写入文件

Ansible 将可能的事实从剧本中写入文件,ansible,Ansible,我知道我可以使用下面的命令将所有可解释的事实保存到一个文件中: ansible all -m setup --tree facts.d/ 但我想在剧本中这样做。目前我有: - name: Collect facts setup: fact_path: facts.d 但是当我运行任务时,没有收集任何内容。我错过什么了吗 - name: save all facts to host specific file copy: content: "{{ ansib

我知道我可以使用下面的命令将所有可解释的事实保存到一个文件中:

ansible all -m setup --tree facts.d/
但我想在剧本中这样做。目前我有:

- name: Collect facts
  setup:
    fact_path:  facts.d
但是当我运行任务时,没有收集任何内容。我错过什么了吗

- name: save all facts to host specific file
  copy:
    content: "{{ ansible_delegated_vars[inventory_hostname].vars | to_nice_json }}"
    dest: "{{ playbook_dir }}/{{ ansible_fqdn }}"
  delegate_to: localhost
这将在playbook目录中为每个主机创建一个文件


参考资料:

如果您只想将变量写入文件,可以使用

- name: Copy Ansible facts to a file
  copy:
    content: "{{ ansible_facts }}"
    dest: /tmp/ansible_facts_details.json
多亏了

  • ,因为这可能取决于已成为解决方案的需求

我不知道有任何playbook机制可以做到这一点,公平地说,
--tree
不是“将可能的事实保存到文件”,而是将日志消息写入文件,这是一个微妙但重要的区别,这是一个很好的发现,+1。