当前位置: 首页 > news >正文

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

作者主页:点击! 

Ansible专栏:点击!

创作时间:2024年5月22日13点14分


💯趣站推荐💯

前些天发现了一个巨牛的🤖人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,人工智能, 机器算法等......  点击跳转网页!icon-default.png?t=N7T8https://www.captainbed.cn/sis

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_distributionLinux 系统发行版本,例如 CentOS、Ubuntu、等。
ansible_nodename主机名。
ansible_pkg_mgr包管理器,例如 yum、apt、dpkg 等。
ansible_python_versionPython 版本。
ansible_processor_coresCPU核数。
ansible_processor_count逻辑 CPU 核心数,包括超线程。
ansible_cpu_infoCPU 信息字典,包含 CPU 频率、架构等信息。
ansible_mem_total总内存容量。
ansible_mem_free可用内存容量。
ansible_mem_used已使用内存容量。

✡️实例

1. 收集所有Facts信息
- name: 收集所有Facts信息hosts: alltasks:- name: 收集所有Facts信息setup:

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

2. 收集特定Facts信息
- name: 收集特定Facts信息hosts: alltasks:- 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信息收集的参数
- name: 设置Facts信息收集的参数hosts: alltasks:- 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

1.扫描主机信息
[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地址信息
[root@ansible ~]# ansible host1 -m setup -a 'filter=ansible_all_ipv4_addresses'

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

相关文章:

  • 码蹄集部分题目(2024OJ赛16期;单调栈集训+差分集训)
  • 数据结构——栈(详细分析)
  • 渗透测试 一个很奇怪的支付漏洞
  • Day17学习Java
  • 1小时从0开始搭建自己的直播平台(详细步骤)
  • BGP策略实验
  • 向传音手机学习产品市场定位与产品需求定义
  • 数字签名:确保信息完整性和身份验证的关键技术
  • C++入门:从C语言到C++的过渡(2)
  • doxygen 1.11.0 使用详解(九)——包含公式
  • 技术周总结 2024.05.20~05.26 (Java架构师 数据库理论 MyBatis)
  • 1098: 堆的判断
  • Tkinter描述
  • Flutter 中的 ElevatedButton 小部件:全面指南
  • 椋鸟Linux笔记#0:学习Linux前
  • Java新版本的开发已正式进入轨道,版本号18.3
  • JAVA之继承和多态
  • js
  • Python爬虫--- 1.3 BS4库的解析器
  • React-flux杂记
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Spring-boot 启动时碰到的错误
  • vue总结
  • 初探 Vue 生命周期和钩子函数
  • 从tcpdump抓包看TCP/IP协议
  • 复习Javascript专题(四):js中的深浅拷贝
  • 官方解决所有 npm 全局安装权限问题
  • 基于组件的设计工作流与界面抽象
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 阿里云移动端播放器高级功能介绍
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ‌[AI问答] Auto-sklearn‌ 与 scikit-learn 区别
  • #ubuntu# #git# repository git config --global --add safe.directory
  • $forceUpdate()函数
  • (1)(1.13) SiK无线电高级配置(五)
  • (23)Linux的软硬连接
  • (windows2012共享文件夹和防火墙设置
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (二)pulsar安装在独立的docker中,python测试
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)计算机毕业设计ssm电影分享网站
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)nsfocus-绿盟科技笔试题目
  • (转)scrum常见工具列表
  • (转)visual stdio 书签功能介绍
  • *1 计算机基础和操作系统基础及几大协议
  • .NET 5种线程安全集合
  • .Net Core 笔试1
  • .NET Remoting学习笔记(三)信道
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?