初识ansible变量及实例配置

目录

1、为什么要使用变量

2、变量分类

3、 变量详解

3.1  vars,vars_files , group_vars

3.1 .1  vars   剧本中定义变量

3.1.2  vars_file  将变量存放到一个文件中,并在剧本中引用

3.1.3   group_vars 创建一个变量文件给某个组使用

实例1-根据不同的主机组创建对应的目录

实例2-使⽤group_vars的all组定义变量

3.1.4 变量基础vars,vars_files , group_vars总结

3.2 ansible-facts变量

3.2.1 常用fact变量

3.2.2实例-系统巡检-获取所有受管主机的基本信息保存到/tmp/主机名命名文件中

3.3 ansible-register变量

4、 变量总结


1、为什么要使用变量

Ansible变量就是一种存储数据的机制,可以在Ansible剧本文件中使用。使用变量可以将一些常量或重复的值提取出来,集中管理,提高代码的可读性和可维护性。同时,变量还可以用于动态生成剧本,根据不同的环境和需求,生成不同的剧本文件。简单来说,使用变量可以让Ansible更加灵活、可维护和可重用。

2、变量分类

变量
命令行临时使用,
变量⽂件vars_files某⼀个主机使⽤,较少⽤.
主机组共⽤的变量⽂件 group_vars应⽤范围⼴泛.
ansible内置变量(facts变量)收集主机的基本信息,ip地址,主机名,系统及版本....
register变量实现命令⾏ $() 或``功能

3、 变量详解

3.1  vars,vars_files , group_vars
3.1 .1  vars   剧本中定义变量

通过剧本paly部分中vars定义变量

3.1.2  vars_file  将变量存放到一个文件中,并在剧本中引用

剧本中play部分vars file指定变量文件

3.1.3   group_vars 创建一个变量文件给某个组使用

通过group vars指定主机组共享变量文件

⽤法:需要创建⼀个group_vars⽬录.  

⽬录下⾯创建以主机组命名的⽬录.  

存放变量⽂件vars.yml

实例1-根据不同的主机组创建对应的目录

使用ansible临时命令测试

实例2-使⽤group_vars的all组定义变量

ansible临时测试!!!

3.1.4 变量基础vars,vars_files , group_vars总结
使用方法具体含义应用场景
变量写在剧本开头:vars简单的较少的可以
变量写在独⽴⽂件中:vars_file:指定变量文件位置了解即可.
变量写在独⽴⽂件中,按照组进⾏ 分类:group_vars/all/vars.yml掌握在all中创建所有主机/分组⽤的变量即可.



3.2 ansible-facts变量

ansible-facts变量说明:ansible-facts是ansible服务内置变量,执行剧本,有个默认的任务(task),搜集每个主机的基本信息。

3.2.1 常用fact变量
ansible_hostname               #主机名 
ansible_memtotal_mb            #内存⼤⼩(总计) 单位mb 
ansible_processor_vcpus        #cpu数量 
ansible_default_ipv4.address   #默认的⽹卡ip eth0
ansible_distribution           #系统发⾏版本名字 CentOS  Ubuntu  Debian ansible_processor_cores        #核⼼总数
ansible_date_time.date         #当前时间 年-⽉-⽇

3.2.2实例-系统巡检-获取所有受管主机的基本信息保存到/tmp/主机名命名文件中

步骤1:

01.创建文件

02.写入内容

遍历所有受控主机,获取每个主机的基础信息,并将其保存到一主机名命名的文件中。其中,inventory_hostname表示当前主机的名称。copy模块用于将主机基础信息保存到文件中。

使用ansible临时命令测试

补充:

如果没有需求的话,可以关闭facts功能,让剧本执行加速,使用gather_facts:no 

3.3 ansible-register变量

Ansible中的register模块用于将任务执行的结果存储到一个变量中,以便在后续的任务中使用。register模块可以将任务执行的结果存储为一个变量,然后可以在后续的任务中使用该变量。以下是register模块的使用方法:

- name: 执行任务并将结果存储到变量中command: ls -lregister: result- name: 使用存储的变量debug:var: result.stdout

在上面的例子中,command模块用于执行ls -l命令,并将结果存储到result变量中。然后,debug模块使用result.stdout变量输出任务执行的结果。在register模块中,你可以使用任何变量名来存储结果,例如outputresultresponse等。你可以在后续的任务中使用存储的变量来执行其他操作,例如过滤、比较、格式化等。

4、 变量总结

变量含义和特点应用场景
命令行临时使用
剧本⽂件中vars定义当前这个剧本⽣效,涉及多个剧本不⽅便.
变量⽂件vars_files

所有变量写⼊到⽂件中: key:

value 变量: 值,

在剧本中通过vars_files: 变量⽂件路径./vars.yml

每次使⽤需要⼿动在剧本中加载vars_files: ./vars.yml

主机组共⽤的变量⽂件

group_vars

应⽤范围⼴泛. 根据主机清单⾥⾯的分组创建⽬录,存放vars.yml根据主机所属的主机组,⾃动读取group_vars/组名/vars.yml⽂件. group_vars/all/vars.yml
ansible内置变量(facts变量)收集主机的基本信息,ip地址,主机名,系统及版本....如果想提升ans执⾏速度可以关闭gather_facts: no
register变量(注册变量)实现命令⾏ $() 或``功能

寄存器变量(注册,临时变量): 把命令,模块结果,存放在reg格式变量中,通过变量.stdout 取出对应值.

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

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

相关文章

Java关键字和API

1 this和super关键字 1.this和super的意义 this:当前对象 在构造器和非静态代码块中,表示正在new的对象 在实例方法中,表示调用当前方法的对象 super:引用父类声明的成员 无论是this和super都是和对象有关的。 2.this和sup…

通过实例学C#之序列化与反序列化XmlSerializer类

简介 可以将类序列化成xml文件,或者将xml文件反序列化成类对象,一般用于保存或加载项目参数。 构造函数 XmlSerializer() 不使用函数创建一个xmlSerializer对象。 XmlSerializer(Type type) 使用type对象创建一个xmlSerializer对象,注意&…

lv_table

通过点击lv_table的某一行来选中这一行,以及通过点击另外创建的按钮来删除选中的这一行数据。在table_event_cb回调函数中,我们通过检测点击事件发生的行和列来确定被点击的行,然后在按钮的事件处理器btn_event_cb中,根据之前保存…

洛谷 P3811 [模板] 模意义下的乘法逆元

【模板】模意义下的乘法逆元 题目描述 给定 n , p n,p n,p 求 1 ∼ n 1\sim n 1∼n 中所有整数在模 p p p 意义下的乘法逆元。 这里 a a a 模 p p p 的乘法逆元定义为 a x ≡ 1 ( m o d p ) ax\equiv1\pmod p ax≡1(modp) 的解。 输入格式 一行两个正整数 n , p n,…

Qt——Qt网络编程之获取本机网络信息(通过QHostInfo和QNetworkInterface 类获取本地网络所有接口信息)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》

asp.net core mvc 路由

在ASP.NET Core MVC中,路由是一项核心功能,它负责将进来的HTTP请求映射到相应的控制器和动作方法上。ASP.NET Core支持两种路由方式:传统的基于模板的路由(约定路由)和属性路由。 1. 基于约定的路由 在Startup.Confi…

【001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂】

001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂 文章目录 001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂创作背景通信模型ISO/OSI七层模型 和 TCP/IP四层模型网络通信数据包格式(Ethernet II&…

【opencv GPU】测测你的opencv-GPU 版本每秒处理帧数 大概多少?

在使用OpenCV的cv2.dnn.Net类从ONNX模型文件创建网络时,如果你想要启用GPU加速,你需要确保OpenCV在安装时已经包含了GPU支持。这通常意味着你需要从源代码编译OpenCV,并确保在编译过程中启用了CUDA支持。 以下是如何在OpenCV中启用GPU加速的…

20240421阿夏的CSDN创作纪念日(3周年)

缘 提示:可以和大家分享最初成为创作者的初心 3年前我写下第一篇CSDN,开启了Python研究之旅win10系统64位( 惠普)台式电脑自动开机、关机图文详细解(一)_惠普主板设置自动开机-CSDN博客文章浏览阅读4.2k次…

对观察者模式的理解

目录 一、场景1、题目描述 【[案例来源](https://kamacoder.com/problempage.php?pid1075)】2、输入描述3、输出描述4、输入示例5、输出示例 二、实现三、更复杂的场景 【[案例来源](https://refactoringguru.cn/design-patterns/observer/java/example#example-0--listeners-…

深入OceanBase内部机制:资源隔离实现的方式总结

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 目录 1. 为何HTAP需要资源隔离2. OceanBase的资源隔离机制概述租户间资源隔离租户内资源隔离物理资源隔离大查询请求的隔离优先级…

26.ELF文件解析

ELF文件及objdump/readelf命令 文章目录 ELF文件及objdump/readelf命令ELF文件结构分析使用od命令读取ELF文件使用readelf命令读取ELF文件使用objdump命令分析ELF文件reference 欢迎访问个人网络日志🌹🌹知行空间🌹🌹 ELF(Executa…

4月21敲一篇猜数字游戏,封装函数,void,无限循环,快去体验体验

今天敲一篇猜数字游戏 目录 今天敲一篇猜数字游戏 1.打开先学goto语句: 2.开干: 首次我们学习随机数: 讲解一下: 改用srand; 加入时间变量: 获取时间:哈​编辑 3.我本来想已近够完美了&#xff0…

Flink学习(七)-单词统计

前言 Flink是流批一体的框架。因此既可以处理以流的方式处理,也可以按批次处理。 一、代码基础格式 //1st 设置执行环境 xxxEnvironment env xxxEnvironment.getEnvironment;//2nd 设置流 DataSource xxxDSenv.xxxx();//3rd 设置转换 Xxx transformation xxxDS.…

Spring Boot中接收各种各样的参数

一、接收json参数&#xff0c;封装为Map 1.1、核心代码 /*** 接收json参数&#xff0c;封装为Map* param servletRequest* return* throws Exception*/ PostMapping("/getParam") public R getParam(HttpServletRequest servletRequest) throws Exception {Map<…

Bootstrap 5 保姆级教程(十二):弹出框 消息弹窗

一、弹出框 1.1 创建弹出框 通过向元素添加 data-bs-toggle"popover" 来来创建弹出框。 title 属性的内容为弹出框的标题&#xff0c;data-bs-content 属性显示了弹出框的文本内容&#xff1a; 注意: 弹出框要写在 JavaScript 的初始化代码里。 以下实例可以在文…

NLP 文本表征方式

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;将文本转换成计算机能够理解和处理的格式是一个基本的步骤。这个过程通常被称为文本表征或文本向量化。下面&#xff0c;我将详细介绍几种常见的文本表征方法&#xff0c;并提供一些例子来说明这些技术是如何应用的。…

投入产出表的分析要点有哪些

投入产出分析是利用投入产出表、投入产出系数和投入产出模型&#xff0c;对国民经济各部门之间的技术经济联系和影响进行分析的一种经济数据分析方法。 一、什么是投入产出表 我国的投入产出表是描述国民经济中各种产品的来源与使用去向的棋盘式平衡表 , 是产品部门 产品部门…

【已解决】电脑设置notepad++默认打开txt

1、以管理员的方式打开notepad 步骤&#xff1a;打开设置 -> 首选项 -> 文件关联 2、 设置Notepad默认打开 按照以下步骤将Notepad设置为默认打开.txt文件&#xff1a; 右键单击任何一个.txt文件。选择“属性”。在“常规”选项卡中&#xff0c;找到“打开方式”&#…

【Interconnection Networks 互连网络】Dragonfly Topology 蜻蜓网络拓扑

蜻蜓拓扑 Dragonfly Topology 1. 拓扑参数2. Topology Description 拓扑描述3. Topology Variations 拓扑变体 蜻蜓拓扑 Dragonfly Topology 1. 拓扑参数 Dragonfly拓扑参数&#xff1a; N N N: 网络中终端(terminal)的总数量 p p p: 连接到每个路由器的终端数量 a a a: 每…