Setup模块是Ansible中最常用的模块之一,用于收集有关目标主机的各种信息,这些信息被称为Facts。Facts信息涵盖了操作系统、硬件、软件、网络配置等方面,可以用于各种自动化运维任务。
setup
任务即可开始收集目标主机的信息。这种简单易用的特性使得即使是初学者也能快速上手。
在Ansible中,Facts是指由Ansible自动收集的关于目标主机(也称为受管节点)的各种信息。这些信息包括硬件、操作系统、网络、内存、CPU等方面的数据。当Ansible执行Playbook时,它会默认执行一个名为"Gather Facts"的任务,该任务会在目标主机上运行一个特殊的模块(通常是setup
模块),以收集各种系统信息,并将这些信息存储在内存中。
参数
Facts信息 | 含义 |
---|---|
ansible_all_ipv4_addresses | 所有目标主机的 IPv4 地址列表。 |
ansible_all_ipv6_addresses | 所有目标主机的 IPv6 地址列表。 |
ansible_date_time | 系统时间。 |
ansible_kernel | 内核版本。 |
ansible_default_ipv4 | 默认网关的 IPv4 地址。 |
ansible_default_ipv6 | 默认网关的 IPv6 地址。 |
ansible_distribution | Linux 系统发行版本,例如 CentOS、Ubuntu、等。 |
ansible_nodename | 主机名。 |
ansible_pkg_mgr | 包管理器,例如 yum、apt、dpkg 等。 |
ansible_python_version | Python 版本。 |
ansible_processor_cores | CPU核数。 |
ansible_processor_count | 逻辑 CPU 核心数,包括超线程。 |
ansible_cpu_info | CPU 信息字典,包含 CPU 频率、架构等信息。 |
ansible_mem_total | 总内存容量。 |
ansible_mem_free | 可用内存容量。 |
ansible_mem_used | 已使用内存容量。 |
- name: 收集所有Facts信息
hosts: all
tasks:
- name: 收集所有Facts信息
setup:
该Playbook会连接到所有目标主机,并收集所有Facts信息。
- name: 收集特定Facts信息
hosts: all
tasks:
- name: 收集硬件信息
setup:
gather_subset: hardware
- name: 收集网络信息
setup:
gather_subset: network
- name: 收集Fact信息
setup:
gather_subset: fact
- name: 收集配置信息
setup:
gather_subset: config
- name: 不收集任何Facts信息
setup:
gather_subset: none
该Playbook会分别收集硬件信息、网络信息、Fact信息、配置信息,以及不收集任何Facts信息
- name: 设置Facts信息收集的参数
hosts: all
tasks:
- name: 设置Facts信息收集的超时时间为 120 秒
setup:
gather_timeout: 120
- name: 将Facts信息存储在 /tmp/facts.d 目录中
setup:
fact_path: /tmp/facts.d
- name: 覆盖 host_uuid Facts信息
setup:
gather_overrides:
ansible_facts:
host_uuid: "my-uuid"
- name: 收集子目录中的Facts信息
setup:
gather_subdirs: yes
- name: 指定Facts信息收集的配置文件
setup:
gather_profile: default
- name: 收集CLI Facts信息
setup:
gather_cli_facts: yes
该Playbook会设置Facts信息收集的超时时间、存储路径、覆盖特定Facts信息、收集子目录信息、指定配置文件、以及收集CLI Facts信息。
实验目的通过一台ansible服务器来查看服务器的信息
帮助手册
ansible-doc setup
[root@ansible ~]# ansible host1 -m setup 扫描host1的主机各种各样的详细信息太详细了
1.Ansible尝试使用配置的方法(默认情况下通常是SSH)建立到目标主机“host1”的连接。
2.如果连接成功,Ansible会在目标主机上执行“setup”模块
[root@ansible ~]# ansible host1 -m setup -a 'filter=ansible_all_ipv4_addresses'
如何调用cpu信息呢大家去试试吧