前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ansible自动化运维中的Setup收集模块应用详解

Ansible自动化运维中的Setup收集模块应用详解

作者头像
神秘奇男子
发布2024-06-03 18:27:55
910
发布2024-06-03 18:27:55
举报
文章被收录于专栏:运维知识运维知识

Setup模块是Ansible中最常用的模块之一,用于收集有关目标主机的各种信息,这些信息被称为Facts。Facts信息涵盖了操作系统、硬件、软件、网络配置等方面,可以用于各种自动化运维任务。

🎆Setup模块的作用优点
  1. 简单易用:使用Setup模块非常简单,只需在Playbook中添加一个setup任务即可开始收集目标主机的信息。这种简单易用的特性使得即使是初学者也能快速上手。
  2. 全面的信息收集:Setup模块能够收集各种系统信息,包括硬件、操作系统、网络、内存、CPU等方面的信息。这使得管理员可以全面了解目标主机的状态,为系统管理和故障排查提供了有力支持。
  3. 实时性:Setup模块是在每次Playbook运行时实时收集信息的,因此你可以始终获取到目标主机的最新状态。这有助于及时发现并解决系统问题,确保系统的可靠性和稳定性。
  4. 可定制性:你可以根据需要定制Setup模块的行为,只收集你感兴趣的信息,从而避免收集大量无用的数据,减少数据传输和处理的开销。
  5. 与条件执行结合:收集到的信息可以与条件执行结合使用,从而实现根据不同主机状态执行不同任务的灵活性。这种灵活性使得你可以根据系统状态采取相应的措施,实现更智能的自动化运维。
  6. 与其他模块集成:Setup模块与其他Ansible模块无缝集成,可以与模块如Template、Copy、File等结合使用,实现根据收集到的信息动态生成配置文件、更新文件内容等功能。
🥈Facts含义

在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

已使用内存容量。

✡️实例
1. 收集所有Facts信息
代码语言:javascript
复制
- name: 收集所有Facts信息
  hosts: all
  tasks:
    - name: 收集所有Facts信息
      setup:

该Playbook会连接到所有目标主机,并收集所有Facts信息。

2. 收集特定Facts信息
代码语言:javascript
复制
- 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信息

3. Facts信息收集的参数
代码语言:javascript
复制
- 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服务器来查看服务器的信息

帮助手册

代码语言:javascript
复制
ansible-doc setup
1.扫描主机信息
代码语言:javascript
复制
[root@ansible ~]# ansible host1 -m setup  扫描host1的主机各种各样的详细信息太详细了

  • host 1:这是您要管理的目标计算机的主机名或IP地址。
  • -m setup:指定要运行的模块。在本例中,它是“setup”模块,负责收集有关目标主机的事实(信息)。
运行此命令时会发生什么?

1.Ansible尝试使用配置的方法(默认情况下通常是SSH)建立到目标主机“host1”的连接。

2.如果连接成功,Ansible会在目标主机上执行“setup”模块

  • 设置模块收集有关目标主机的各种信息,例如:
  • 操作系统详细信息(版本、名称等)
    • Hardware information (CPU cores, memory, etc.)
    • 安装的软件包
    • 网络配置(IP地址、接口等)
  • 这些信息被收集并发送回Ansible控制机。
  • 这些信息存储为Ansible Facts,可用于Ansible Playbook中的后续任务。
2.ip地址信息
代码语言:javascript
复制
[root@ansible ~]# ansible host1 -m setup -a 'filter=ansible_all_ipv4_addresses'

如何调用cpu信息呢大家去试试吧

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🎆Setup模块的作用优点
  • 🥈Facts含义
  • ✡️实例
    • 1. 收集所有Facts信息
      • 2. 收集特定Facts信息
        • 3. Facts信息收集的参数
        • 😶‍🌫️实验操作
          • 1.扫描主机信息
            • 运行此命令时会发生什么?
              • 2.ip地址信息
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档