2

我正在使用 Ansible / Ansible Tower,并想确定我的 Windows 主机上可用的事实。该文档指出我可以运行以下命令:

ansible hostname -m setup

我如何将其合并到我从 Tower 运行的剧本中,以便我可以从主机那里收集信息?

这是根据所提供帮助的当前剧本:

# This play outputs the facts of the Windows targets in scope

- name: Gather Windows Facts 
  hosts: "{{ target }}"
  gather_facts: yes
  tasks:
  - setup:
    register: ansible_facts
  - debug: item
    with_dict: ansible_facts

但是,运行它会产生以下错误:

错误!此任务“调试”具有额外的参数,仅允许在以下模块中使用:命令、外壳、脚本、包含、包含变量、添加主机、组比、设置事实、原始、元

4

2 回答 2

4

使用gather_facts默认情况下为 true 的选项。相当于运行setup模块。

- hosts: ....
  gather_facts: yes

事实保存在可用于剧本的 ansible 变量中。查看系统事实

有很多方法可以显示 ansible 事实。为了让您了解它是如何工作的,请尝试以下操作:

- hosts: 127.0.0.1
  gather_facts: true

  tasks:
  - setup:
    register: ansible_facts
  - debug: item
    with_dict: ansible_facts
于 2016-08-15T22:30:42.147 回答
0

测试并通过它,这对我有用:

- name: Gather Windows Facts 
  hosts: "{{ target }}"
  tasks:
    - debug: var=vars
    - debug: var=hostvars[inventory_hostname]
于 2016-08-16T19:46:45.753 回答