初始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/news/826566.shtml

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

相关文章

Oracle中排查谁把表数据删除更新——delete、drop、truncate

一、Oracle删除表或数据方法 简单的说Oracle中的delete、drop、truncate三个命令都可以将数据清除; Oracle中清除数据delete、drop、truncate相同点 序号描述1truncate和不带where条件的delete、以及drop都会删除表内的数据 ①【truncat table】比 【delete 】速度快,且使…

数据结构递归算法总结

递归算法时数据结构中的重要思想,但对于算法问题来说,利用递归思想解决问题有几种模式可以总结下来 简单递归 简单直接的调用自己即为简单递归,典型题目: 求解n! function fn(n) {if (n 0) return 1;return n * fn(n - 1); }…

云手机助力舆情监测,智慧引领信息时代

随着信息时代的到来,舆情监测已成为政府、企业、高校、金融机构等各行业的必备利器。在这个信息爆炸的时代,如何及时准确地感知民意、把握市场动态,已成为各界迫切需要解决的问题。而云手机作为信息时代的新生力量,在舆情监测方面…

Python 数据结构和算法实用指南(四)

原文:zh.annas-archive.org/md5/66ae3d5970b9b38c5ad770b42fec806d 译者:飞龙 协议:CC BY-NC-SA 4.0 第十二章:字符串算法和技术 根据所解决的问题,有许多流行的字符串处理算法。然而,最重要、最流行和最有…

代码随想录阅读笔记-回溯【重新安排行程】

题目 给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开…

Python网络爬虫项目开发实战:如何处理动态内容

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程:Python网络爬虫项目开发实战_动态内容_编程案例解析实例详解课程教程.pdf Python网络爬虫项目开…

【1569】jsp学生学籍管理系统Myeclipse开发sqlserver数据库web结构jsp编程计算机网页项目

一、源码特点 jsp 学生学籍管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为sqlserver2…

2022 E3 算法题第二题(Maximum Sum of Two Integers in Aarray)

题目内容 There is an array A consisting of N integers. What is the maximum sum of two integers from A that share their first and last digits? For example, 1007 and 167 share their first (1) and last (7) digits, whereas 2002 and 55 do not.Write a function:…

代码托管(二)git(1)介绍

一、git相关 git github gitlub 二、gitlub签名认证 使用ssh克隆代码,使用gpg签名提交代码。 1、ssh签名 一对公钥和密钥,公钥复制到gitlub上。步骤如下 1.1、先在本地生成密钥和公钥 (1)配置用户名和邮箱 git config --g…

B3756 幸运数字

题目描述: 如果⼀个正整数 𝑛n 在五进制、七进制、九进制的表⽰下都没有数字 00,我们就称 𝑛n 是幸运数字。例如: (987)10(12422)5(2610)7(1316)9,因此 𝑛987不是幸运数字。 (988)10(12423)5(2611)7(1317…

深度学习基础——卷积神经网络的基础模块

深度学习基础——卷积神经网络的基础模块 卷积神经网络(Convolutional Neural Networks,CNN)是深度学习中一种非常重要的神经网络结构,它在图像识别、图像分类、目标检测等领域取得了巨大成功。本文将介绍卷积神经网络的几个基础…

MYSQL之增删改查(中)

前言: 以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也 是IT行业面试最常考的知识点,由于是入门级基础命令,所有所有操作都建立在单表 上,未涉及多表操作。 4、“查”——之单表查询 My…

Gamba:将高斯溅射与Mamba结合用于单视图3D重建

Gamba: Marry Gaussian Splatting with Mamba for Single-View 3D Reconstruction Gamba:将高斯溅射与Mamba结合用于单视图3D重建 Qiuhong Shen11  Xuanyu Yi31 Zike Wu31  Pan Zhou2,42 Hanwang Zhang3,5 沈秋红 1 易轩宇 3 吴子可 3 潘周 2,4 2 张汉旺 3,5Shu…

C++11 新特性:多线程支持 - std::recursive_timed_mutex

std::recursive_timed_mutex允许同一线程多次获取锁,并提供了超时功能。 这种锁特别适合用在递归函数中,或者当一个操作可能在同一线程内多次尝试获取同一锁时使用。 与std::timed_mutex一样,std::recursive_timed_mutex也提供了try_lock_f…

C语言开源库iniparser解析ini文件

1 ini文件介绍 INI(Initialization File)文件是一种简单直观的数据存储格式,常用于配置应用程序的初始化设置。这种文件通常包含若干个节(section)和键值对(key-value pairs)。INI文件的每一部…

Spring AOP(面向切面编程)

1.Spring AOP 简介 1.1 AOP概述 AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程, 是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续,是Spring框架中的一个重要内容,是函数式编程的一…

FPGA Quartus IP核 打开使用

两种Quartus版本下的IP核,从使用者的角度来看仅仅是配置界面不同,在参数设置和使用方法上基本一致。本文以“MegaWizard Plug-In Manager”中的FIR Compiler IP核使用为例。 Quartus的FIR IP核属于收费IP,如果是个人学习使用需要对IP核单独破…

linux设备树-of_parse_phandle_with_args

1.设备树实例 interrupt-controller1 { compatible "vendor,gic"; #interrupt-cells <2>; interrupt-controller; reg <0x01 0x1000>; }; deviceA { compatible "vendor,device-a"; reg <0x02 0x100>; interrupts <&interr…

C++ 深入理解 继承

本篇文章将谈谈一下几个问题&#xff1a; 1.基类和派生类对象赋值转换 2.继承中的作用域 3.派生类的默认成员函数 4.复杂的菱形继承及菱形虚拟继承 5.其他 1.基类和派生类对象赋值转换 1.派生类对象 可以赋值给 基类的对象 / 基类的指针 / 基类的引用。这里有个形象的说法叫切…

【电控笔记2.5】位置闭环回路设计

总结 List item 位置控制器 加入前馈 总结