ansible.builtin.gather_facts 模块 – 收集远程主机信息

注意

此模块是 ansible-core 的一部分,包含在所有 Ansible 安装中。在大多数情况下,即使不指定 collections 关键字,也可以使用简短的模块名称 gather_facts。但是,我们建议您使用 完全限定的集合名称 (FQCN) ansible.builtin.gather_facts,以便轻松链接到模块文档并避免与可能具有相同模块名称的其他集合发生冲突。

Ansible 2.8 中的新增功能

概要

  • 此模块负责执行 已配置的事实模块,默认情况下使用 ansible.builtin.setup 模块。

  • 此模块由 playbook 自动调用,以收集有关远程主机的一些有用变量,这些变量可以在 playbook 中使用。

  • 它也可以由 /usr/bin/ansible 直接执行,以检查主机可用的变量。

  • Ansible 自动提供许多有关系统的事实

注意

此模块具有相应的 操作插件

参数

参数

注释

parallel

布尔值

一个切换开关,控制事实模块是并行执行还是串行执行,以及按顺序执行。这可以保证模块事实的合并顺序,但会牺牲性能。

默认情况下,如果使用了多个事实模块,它将为 true。

对于低成本/延迟的事实模块,并行处理的开销最终可能意味着整个过程需要更长的时间。测试您的具体情况,以查看它是否可以提高速度。

ansible_facts_parallel 变量可用于设置此选项,覆盖默认值,但不覆盖任务中选项的直接赋值。

选项

  • false

  • true

属性

属性

支持

描述

action

支持:完全支持

表明它具有相应的操作插件,因此某些选项部分可以在控制器上执行

async

支持:不支持

虽然此操作不支持任务“async”关键字,但它可以使用 parallel 选项进行自己的并行处理。

支持与 async 关键字一起使用

bypass_host_loop

支持:不支持

强制执行一个“全局”任务,该任务不会按主机执行,这会绕过按主机模板化以及串行、节流和其他循环注意事项

条件将像使用 run_once 一样工作,使用的变量将来自第一个可用的主机

此操作在非锁步策略之外将无法正常工作

check_mode

支持:完全支持

由于此操作应仅查询目标系统信息,因此它始终在检查模式下运行

可以在检查模式下运行并返回更改状态预测,而无需修改目标,如果不受支持,则操作将被跳过。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在检查模式下更改的内容)的详细信息

facts

支持:完全支持

操作返回一个 ansible_facts 字典,该字典将更新现有主机事实

platform

平台: 所有

操作插件应该能够自动选择特定的平台模块,或者可以手动配置

可以对其进行操作的目标操作系统/系列

备注

注意

  • 这主要是一个围绕其他事实收集模块的包装器。

  • 传递到此操作的选项必须受所有配置的基础事实模块支持。

  • 如果使用 gather_timeout 和并行执行,它将限制不接受 gather_timeout 本身的模块的总执行时间。

  • 每个模块返回的事实将合并,冲突将偏向“最后合并”。在对多个模块进行并行收集时,顺序不保证。

示例

# Display facts from all hosts and store them indexed by hostname at /tmp/facts.
# ansible all -m ansible.builtin.gather_facts --tree /tmp/facts

作者

  • Ansible Core 团队