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: all
  tasks:
    - name: 收集所有Facts信息
      setup:

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

2. 收集特定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信息

3. 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

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信息呢大家去试试吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/641498.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分享:怎么才能保证大数据查询的准确性?

随着大数据应用到金融风控领域,大数据越来越重要了,很多朋友在查大数据的时候都会遇到一个问题,那就是自己查询的大数据什么信息都没有,要么就是很少,这是什么原因呢?要怎么才能保证大数据查询的准确性呢?下面小编就…

WordPress搭建流程

1. 简介 WordPress 是一个 PHP 编写的网站制作平台。WordPress 本身免费,并且拥有众多的主题可以使用,适合用于搭建个人博客、公司官网、独立站等。 2. 环境准备 2.1 WordPress 下载 WordPress 可以在 Worpress中文官网 下载(如果后续要将后台调成中文的话,一定要从中文…

如何通过软件SPI读写W25Q64

STM32F1之SPI通信软件SPI代码编写-CSDN博客 目录 1. W25Qxx系列简介 2. W25Q64硬件电路 3. W25Q64框图 4. Flash操作注意事项 5. 代码编写 5.1 初始化 5.2 W25Q64读取ID号 5.3 W25Q64写使能 5.4 W25Q64等待忙 5.5 W25Q64页编程 5.6 W25Q64扇区擦除&#x…

521源码-在线客服-CRMChat网页版客服系统 UNIAPP 全方位在线客服系统源码与管理体系平台

CRMChat客服系统:基于Swoole4Tp6RedisVueMysql构建的高效沟通桥梁 CRMChat是一款独立且高性能的在线客服系统,它结合了Swoole4、Tp6、Redis、Vue以及Mysql等先进技术栈,为用户提供了卓越的在线沟通体验。该系统不仅支持在Pc端、移动端、小程…

16.线性回归代码实现

线性回归的实操与理解 介绍 线性回归是一种广泛应用的统计方法,用于建模一个或多个自变量(特征)与因变量(目标)之间的线性关系。在机器学习和数据科学中,线性回归是许多入门者的第一个模型,它…

【机器学习】机器学习基础概念与初步探索

❀机器学习 📒1. 引言📒2. 机器学习概述📒3. 机器学习基础概念🎉2.1 机器学习的分类🎉2.2 数据预处理🌈数据清洗与整合🌈 特征选择和特征工程🌈数据标准化与归一化 📒4. …

Android Studio 所有历史版本下载

一、官网链接 https://developer.android.google.cn/studio/archive 操作 二、AndroidDevTools地址 https://www.androiddevtools.cn/ 参考 https://blog.csdn.net/qq_27623455/article/details/103008937

电表远传抄表是什么?

1.电表远传抄表:简述 电表远传抄表,又称为远程控制自动抄表系统,是电力行业的智能化技术运用,它通过无线或通信网络技术,完成对电表数据信息的远程收集解决。此项技术不仅提升了抄水表高效率,降低了人工偏…

RK3568平台(UART篇)uart应用编程读取模块数据

一.串口介绍 串口设备是嵌入式开发中最常用的外设之一,通过串口打印信息可以调试程序的运行,通 过串口也可以链接很多种外设,比如串口打印机,蓝牙,wifi,GPS,GPRS 等等。 数据传输方式&#xf…

C++ | Leetcode C++题解之第97题交错字符串

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isInterleave(string s1, string s2, string s3) {auto f vector <int> (s2.size() 1, false);int n s1.size(), m s2.size(), t s3.size();if (n m ! t) {return false;}f[0] true;for (int i …

全同态加密生态项目盘点:FHE技术的崛起以及应用

撰文&#xff1a;Chris&#xff0c;Techub News 在当今数字化的时代&#xff0c;隐私保护已成为一个全球性的焦点话题&#xff0c;特别是在加密货币和区块链技术快速发展的背景下。虽然当前的隐私技术在保护数据安全方面多有欠缺&#xff0c;引发了广泛的关注和批评&#xff0c…

Java枚举的本质

目录 1.枚举简介 1.1.规范 1.2.枚举类真实的样子 1.3.枚举类的特点 1.4.枚举可以使用的方法 1.4.1.toString()方法 1.4.2.valueOf方法 1.4.3.values方法 1.4.4.ordinal方法 1.5.枚举的用法 1.5.1.常量 1.5.2.switch 1.5.3.枚举中增加方法 1.5.4.覆盖枚举方法 1.5…

热题系列章节1

22. 括号生成 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”] 示例 2&#xff1a…

LeetCode/NowCoder-链表经典算法OJ练习3

孜孜不倦&#xff1a;孜孜&#xff1a;勤勉&#xff0c;不懈怠。指工作或学习勤奋不知疲倦。&#x1f493;&#x1f493;&#x1f493; 目录 说在前面 题目一&#xff1a;返回倒数第k个节点 题目二&#xff1a;链表的回文结构 题目三&#xff1a;相交链表 SUMUP结尾 说在前…

两篇文章讲透数据结构之堆(一)!

目录 1.堆的概念 2.堆的实现方式 3.堆的功能 4.堆的声明 5.堆的实现 5.1堆的初始化 5.2堆的插入 5.2.1向上调整算法 5.2.2堆的插入 5.3堆的删除 5.3.1向下调整算法 5.3.2堆的删除 5.4获取堆顶元素 5.5获取堆的元素个数 5.6判断堆是否为空 5.7打印堆 5.8建堆 …

SQL开窗函数

文章目录 概念&#xff1a;语法&#xff1a;常用的窗口函数及示例&#xff1a;求平均值&#xff1a;AVG() &#xff1a;求和&#xff1a;SUM():求排名&#xff1a;移动平均计数COUNT():求最大MXA()/小MIN()值求分区内的最大/最小值求当前行的前/后一个值 概念&#xff1a; 开窗…

算法题1:电路开关(HW)

题目描述 实验室对一个设备进行通断测试,实验员可以操控开关进行通断,有两种情况: ps,图没记下来,凭印象画了类似的 初始时,3个开关的状态均为断开;现给定实验员操控记录的数组 records ,records[i] = [time, switchId],表示在时刻 time 更改了开关 switchId 的状态…

多线程(C++11)

多线程&#xff08;C&#xff09; 文章目录 多线程&#xff08;C&#xff09;前言一、std::thread类1.线程的创建1.1构造函数1.2代码演示 2.公共成员函数2.1 get_id()2.2 join()2.3 detach()2.4 joinable()2.5 operator 3.静态函数4.类的成员函数作为子线程的任务函数 二、call…

AOP编程

AOP编程 AOP&#xff0c;面向切面编程&#xff0c;一种编程范式&#xff0c;指导开发者如何组织程序结构。 OOP&#xff0c;面向对象编程&#xff0c;一种编程思想。 AOP&#xff0c;提供了一种机制,可以将一些横切系统中多个模块的共同逻辑(如日志记录、事务管理、安全控制等…

SQL面试题练习 —— 波峰波谷

来源&#xff1a;字节今日头条 目录 1 题目2 建表语句3 题解 1 题目 有如下数据&#xff0c;记录每天每只股票的收盘价格&#xff0c;请查出每只股票的波峰和波谷的日期和价格&#xff1b; 波峰定义&#xff1a;股票价格高于前一天和后一天价格时为波峰 波谷定义&#xff1a;股…