Ansible——setup模块

目录

主要用途

参数总结

语法示例

1. 收集所有主机的信息

2. 过滤特定信息

3. 列出所有内存信息

4. 收集特定变量的信息

5. 使用 gather_subset

Playbook示例

基本语法

使用示例

1. 基本使用

2. 使用 gather_subset 参数

3. 使用 filter 参数

4. 使用 register 捕获输出

5. 使用 gather_timeout 参数

综合示例

进阶示例


 

Ansible的 setup 模块是一个用于收集远程主机信息的内置模块,主要用于获取目标机器的系统信息并返回。这些信息包括操作系统类型、内核版本、网络接口、内存、CPU等各种硬件和软件指标。这些信息会以facts的形式保存,可以在后续的任务中引用和使用。

主要用途

  1. 获取主机信息:自动收集目标主机的详细信息。
  2. 条件化任务:根据目标主机的硬件或软件指标来执行不同的任务。
  3. 调试和排查:通过收集的系统信息来进行调试和系统状态检查。

 

参数总结

  1. filter:

    • 描述:指定仅收集符合此模式的 facts。
    • 类型:字符串或列表
    • 默认值:无
  2. gather_subset:

    • 描述:指定要收集的 facts 子集。
    • 类型:字符串或列表
    • 可选值:
      • all:收集所有信息(默认)
      • min:收集最小信息集
      • hardware:收集硬件信息
      • network:收集网络信息
      • virtual:收集虚拟化信息
      • ohai:收集 Ohai 插件信息(如果安装了 Ohai)
      • facter:收集 Facter 插件信息(如果安装了 Facter)
  3. gather_timeout:

    • 描述:收集 facts 的超时时间(秒)。
    • 类型:整数
    • 默认值:10
  4. fact_path:

    • 描述:指定自定义 facts 的路径(JSON 格式)。
    • 类型:字符串
    • 默认值:无
  5. filter_type:

    • 描述:过滤 facts 时的类型。
    • 类型:字符串
    • 可选值:include(默认),exclude

 

语法示例

1. 收集所有主机的信息

使用 ansible 命令来收集所有主机的信息:

ansible all -m setup

2. 过滤特定信息

通过 filter 参数收集特定类型的信息(例如,只收集与网络接口相关的信息):

ansible all -m setup -a "filter=ansible_interfaces"

 

3. 列出所有内存信息

只收集内存相关的信息:

ansible all -m setup -a "filter=ansible_memtotal_mb"

4. 收集特定变量的信息

指定收集 ansible_distribution(操作系统发行版信息):

ansible all -m setup -a 'filter=ansible_distribution'

5. 使用 gather_subset

通过 gather_subset 参数可以控制收集的信息子集,例如:只收集最小的核心信息:

ansible all -m setup -a "gather_subset=min"

可以指定多个子集,用逗号分隔,收集网络和硬件信息:

ansible all -m setup -a "gather_subset=network,hardware"

Playbook示例

 

基本语法
- name: Task descriptionsetup:gather_subset: # (Optional) 获取特定子集信息,如 min, hardware, network 等gather_timeout: # (Optional) 获取信息的超时时间,单位为秒filter: # (Optional) 过滤特定信息,如 ansible_eth*, ansible_os_family 等fact_path: # (Optional) 自定义的 fact 路径

使用示例

1. 基本使用

在远程主机上收集所有的系统信息:

---
- name: Collect all system informationhosts: alltasks:- name: Gather all factssetup:

2. 使用 gather_subset 参数

只收集最小的核心信息:

---
- name: Collect minimal system informationhosts: alltasks:- name: Gather minimal factssetup:gather_subset: min

只收集网络相关的信息:

---
- name: Collect network informationhosts: alltasks:- name: Gather network factssetup:gather_subset: network

3. 使用 filter 参数

只收集特定的 facts 信息:

---
- name: Collect specific informationhosts: alltasks:- name: Gather specific factssetup:filter: ansible_all_ipv4_addresses

4. 使用 register 捕获输出

将 setup 模块的输出捕获到变量中,以便在后续任务中使用:

---
- name: Register setup module outputhosts: alltasks:- name: Gather all factssetup:register: setup_facts- name: Print the gathered factsdebug:var: setup_facts

5. 使用 gather_timeout 参数

设置获取信息的超时时间为 20 秒:

---
- name: Collect system information with timeouthosts: alltasks:- name: Gather facts with timeoutsetup:gather_timeout: 20

综合示例

结合多个参数的使用示例:

---
- name: Comprehensive setup module usagehosts: alltasks:- name: Gather minimal and network factssetup:gather_subset:- min- network- name: Gather specific factssetup:filter: ansible_all_ipv4_addresses- name: Gather facts with timeoutsetup:gather_timeout: 10- name: Gather customized facts pathsetup:fact_path: /etc/ansible/facts.d

进阶示例

结合 setup 模块收集的信息执行条件化任务:

---
- name: Conditional tasks based on gathered factshosts: alltasks:- name: Gather system factssetup:register: system_facts- name: Conditionally install package if CentOSyum:name: httpdstate: presentwhen: system_facts.ansible_facts['ansible_distribution'] == "CentOS"- name: Conditionally install package if Ubuntuapt:name: apache2state: presentwhen: system_facts.ansible_facts['ansible_distribution'] == "Ubuntu"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔记:Mysql的安全策略

1,安装安全插件 1.检查是否已安装该插件 SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME validate_password;2.安装插件 INSTALL PLUGIN validate_password SONAME validate_password.so;3.修改配置文件 vi /etc/my.cn…

类和对象(二)(C++)

初始化列表 class Date{public:Date(int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day;}; 虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化…

【纯血鸿蒙】——响应式布局如何实现?

前面介绍了自适应布局,但是将窗口尺寸变化较大时,仅仅依靠自适应布局可能出现图片异常放大或页面内容稀疏、留白过多等问题。此时就需要借助响应式布局能力调整页面结构。 响应式布局 响应式布局是指页面内的元素可以根据特定的特征(如窗口…

docker部署使用本地文件的fastapi项目

项目背景:项目使用python开发,需要使用ubutun系统部署后端api接口,对外使用8901端口。 1:项目结构: 2:项目需要使用的pyhton版本为3.9,dockerfile内容如下: # FROM python:3.9# WORKDIR /co…

自制植物大战僵尸:HTML5与JavaScript实现的简单游戏

引言 在本文中,我们将一起探索如何使用HTML5和JavaScript来创建一个简单的植物大战僵尸游戏。这不仅是一项有趣的编程挑战,也是学习游戏开发基础的绝佳机会。 什么是植物大战僵尸? 植物大战僵尸是一款流行的策略塔防游戏,玩家需…

如何提高网站排名?

提高网站排名是一个复杂的过程,涉及到多个方面的优化,包括但不限于内容质量、网站结构、用户体验、外部链接建设等,GSR这个系统,它是一种快速提升关键词排名的方案,不过它有个前提,就是你的站点在目标关键词…

超详解——深入详解Python基础语法——小白篇

目录 1 .语句和变量 变量赋值示例: 打印变量的值: 2. 语句折行 反斜杠折行示例: 使用括号自动折行: 3. 缩进规范 缩进示例: 4. 多重赋值(链式赋值) 多重赋值的应用: 5 .多…

FonesGo Location Changer 用Mac修改iPhone定位的工具

搜索Mac软件之家下载FonesGo Location Changer 用Mac修改iPhone定位的工具 FonesGo Location Changer 7.0.0 可以自定义修改iPhone和Android手机的GPS定位。FonesGo Location Changer 是玩 Pokemon Go 时的最佳搭档。您可以以自定义速度模拟 GPS 运动,例如步行、骑…

【设计模式】JAVA Design Patterns——State(状态模式)

🔍目的 允许对象在内部状态改变时改变它的行为。对象看起来好像修改了它的类。 🔍解释 真实世界例子 当在长毛象的自然栖息地观察长毛象时,似乎它会根据情况来改变自己的行为。它开始可能很平静但是随着时间推移当它检测到威胁时它会对周围的…

element-plus 的icon 图标的使用

element-plus的icon 已经独立出来了,需要单独安装 1. npm安装 icon包 npm install element-plus/icons-vue2.注册到全局组件中 同时注册到全局组件中,或者按需单独引入,这里只介绍全局引入。 import { createApp } from vue import { cre…

2024全国高考作文题解读(讯飞星火3.0版本)

新课标I卷 阅读下面的材料,根据要求写作。(60分) 随着互联网的普及、人工智能的应用,越来越多的问题能很快得到答案。那么,我们的问题是否会越来越少? 以上材料引发了你怎样的联想和思考?请写…

Python易错点总结

目录 多分支选择结构 嵌套选择 用match模式识别 match与if的对比 案例:闰年判断 三角形的判断 用whlie循环 高斯求和 死循环 用for循环 ​编辑continue​编辑 whlie与else结合 pass 序列 列表(有序) 元组(有序&…

LeetCode热题100—链表(二)

19.删除链表的倒数第N个节点 题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2: 输入:head [1], n 1 …

SpringBoot的Profiles是什么

在 Spring Boot 中,Profiles 提供了一种隔离配置的方法,允许你定义多套配置,并且在不同的环境下激活不同的配置。例如,一个常见的用例是为开发、测试和生产环境提供不同的配置。 Profiles 可以帮助你在应用的不同运行环境之间切换…

Docker中搭建likeadmin

一、使用Docker中的docker-compose搭建likeadmin 1.去网址:https://gitee.com/likeadmin/likeadmin_php中下载likeadmin 注册一个giee账号后 点那个克隆下载 按照序号在终端复制粘贴进去。 接着,输入ls 可以发现有一个这个: 里面有一个like…

摄影店展示服务预约小程序的作用是什么

摄影店包含婚照、毕业照、写真、儿童照、工作照等多个服务项目,虽然如今人们手机打开便可随时拍照摄影,但在专业程度和场景应用方面,却是需要前往专业门店服务获取。 除了进店,也有外部预约及活动、同行合作等场景,重…

Ezsql(buuctf加固题)

开启环境 SSH连接 第一个为页面地址WEB服务 or 11# 利用万能密码登录 密码可以随便输入或者不输入 这里就可以判断这个题目是让我们加固这个登录页面 防止sql注入 查看index.php 添加以下代码 $username addslashes($username); $password addslashes($password);…

2024年京东618红包领取跨店满300减50第二波活动时间什么时候开始到几号结束?

2024年京东618活动时间 整个618红包满减活动时间是从:2024年5月28日12:00开始一直持续到6月20日23:59 第一波红包领取活动时间是从:2024年5月28日12:00开始到6月6日23:59结束 第二波红包领取活动时间是从:2024年6月7日00:00开始到6月18日2…

【HarmonyOS】放大缩小手势实现

【HarmonyOS】放大缩小手势实现 一、鸿蒙中手势的类型: 对于放大缩小手势,在应用开发中使用较为常见,例如预览图片时,扫码时等。 在鸿蒙中对于常见的手势进行的封装,可以通过简单的API进行监听调用,以下是…

springboot webflux 返回字节流

在Spring Boot WebFlux中&#xff0c;可以使用Mono<byte[]>或Flux<byte[]>作为响应体来返回字节流。以下是一个简单的示例&#xff1a; 1. 首先&#xff0c;添加WebFlux依赖到pom.xml文件中&#xff1a; xml <dependency> <groupId>org.springframewo…