ansible常用模块之 -- setup模块 – 收集远程主机的相关信息
setup模块 – 收集远程主机的相关信息
一、摘要
- 这个模块由剧本自动调用,以收集关于远程主机的有用变量,这些变量可以在剧本中使用。它还可以通过/usr/bin/ansible直接执行,以检查主机有哪些变量可用。Ansible自动提供了关于系统的许多事实。
- Windows目标也支持此模块
二、参数
参数 | 选项/默认值 | 描述 |
---|---|---|
fact_path | Default: “/etc/ansible/facts.d” | 用于本地ansible facts的路径(*.fact) -该目录下的文件将被运行(如果可执行),如果文件不可执行,则读取其结果将被添加到ansible_local facts中。检查Windows选项的注释。(从2.1开始)文件/结果格式可以是JSON或ini格式。默认的fact_path可以在ansible.cfg中指定,作为gather_facts的一部分自动调用setup。 |
filter | Default: “*” | 如果提供,则只返回与此shell样式(fnmatch)通配符匹配的事实。 |
gather_subset | Default: “all” | 如果提供,则将收集到的附加事实限制到给定的子集。取值:all、min、hardware、network、virtual、ohai、facter。可以指定一个值列表,以指定更大的子集。值也可以与首字母一起使用!来指定不应收集特定的子集。例如:!hardware,!network,!virtual,!ohai !facter。如果指定!all,则只收集最小子集。要避免收集甚至最小子集,请指定!all,!min。如果只收集特定的事实,请使用!all,!min,并指定特定的事实子集。如果不希望显示一些收集到的事实,则使用filter参数。 |
gather_timeout | Default: 10 | 设置单个事实收集的默认超时时间(以秒为单位)。 |
三、示例
# 显示来自所有主机的事实,并将它们按I(主机名)索引存储在C(/tmp/facts)
# ansible all -m setup --tree /tmp/facts
# 只显示ansible在所有主机上找到的关于内存的事实并输出它们。
# ansible all -m setup -a 'filter=ansible_*_mb'
# 只显示由因子返回的事实。
# ansible all -m setup -a 'filter=facter_*'
# 只收集因子返回的事实。
# ansible all -m setup -a 'gather_subset=!all,!any,facter'
- name: Collect only facts returned by facter
setup:
gather_subset:
- '!all'
- '!any'
- facter
# Display only facts about certain interfaces.
# ansible all -m setup -a 'filter=ansible_eth[0-2]'
# 将额外的收集事实限制为网络和虚拟事实(包括默认的最小事实)
# ansible all -m setup -a 'gather_subset=network,virtual'
# 只收集网络和虚拟(不包括默认的最小事实)
# ansible all -m setup -a 'gather_subset=!all,!any,network,virtual'
# Do not call puppet facter or ohai even if present.
# ansible all -m setup -a 'gather_subset=!facter,!ohai'
# 只收集默认的最小数量的事实:
# ansible all -m setup -a 'gather_subset=!all'
# 不收集事实,即使是默认的最小事实子集:
# ansible all -m setup -a 'gather_subset=!all,!min'
# 显示来自Windows主机的事实,自定义事实存储在C中(C:\custom_facts)。
# ansible windows -m setup -a "fact_path='c:\custom_facts'"
官方文档:https://docs.ansible.com/ansible/2.9/modules/setup_module.html#setup-module