Linux——ansible里的变量

news2024/11/24 3:43:37

在ansible里,变量干嘛用的

本身,ansible就是致力于,用尽可能“通用”的剧本,干所有场合的工作……

ansible里的变量怎么写

字母开头,包括:字母数字下划线

变量怎么定义(声明)

1.最直白的

在playbook里写

就写到最开头,hosts下面,和hosts平级

2.如果变量很多,不方便写在playbook里,那就单独写一个文件

  然后再playbook里,指定这个写了一堆变量的文件

3.上面两种方式,都是特定与某个剧本,写变量

  这组变量是给剧本用,不用剧本究竟操作哪些主机

  接下来,换个角度

如果一组变量,给一组特定的主机指定,不论执行的是什么剧本

在inventory文件里指定变量

  3.1)可以给特定主机,定义变量

  3.2)可以给特定的主机组,定义变量

4.上面的方式,都是简单指定变量,也可以指定很多变量

  但是,上面的方式,结构简单,变量也没有层次化管理

  接下来,层次化管理变量,一组变量

  数组

users这层下面,有俩子项bjones和acook

bjones下,又有三个子项,这三个子项都是有各自值的变量

用起来,就变成这样

users -> bjones -> first_name

这个值是Bob

5.还有什么东西可以变成变量

  刚才所有的做法,都是管理员新定义变量

  能不能把执行输出、主机已有的信息,重新获取,变成变量

  5.1)把剧本执行的输出,获取

       用debug模块

通过debug获得的信息,可以变成指定变量的值

  5.2)客户机自己的信息,也可以被管理机获取,在变成变量

       ……

--------------------------------

变量定义好了,在剧本里怎么写出来,或怎么调用

建议:用双引号

注意:变量名,前后的空格

      两层{}

比如上面的

"{{ user }}"

整个剧本结构是不变的,只是把原本确定的值,替换为变量

用处/用途

整个项目管理过程中,尽可能使用“通用”的剧本,管理不同主机

比如:

可以建立一套剧本,功能如下

给客户机创建特定用户、安装指定的软件包、确保服务云心、防火墙放行

剧本结构,始终不变

只需要给不同场合,用不同变量……

---------------------------------------------------

接下来,还有问题

问题不在于变量本身,如何保证变量“安全”

变量文件,是需要更安去的保存方式,不光是文件本体权限更严格

需要加密

比如,就算只有root账户只读,也不能保证有多少人知道root密码

      ansible的工作,通常也不会用root直接做

想办法,让变量文件,以及其他文件,以加密方式保存

访问的时候,需要密码

实现

1.从文件创建开始,就以加密步骤创建

用ansible-vault工具,直接创建一个要加密的文件

选项是create

创建的时候,就写密码……

2.已经有了文件,用加密方法,后期加密

还是上面那个命令,选项不一样encrypt加密

--------------------------------------

文件加密后,怎么用

1.正常的调用,用的时候,会要求输入密码

比如,运行剧本,但是剧本调用的变量文件是加密的

直接用,报错,因为没指定加密选项

要指定,交互方式输入密码

2.是把加密的密码,写到其他文件,然后自动化调用

在创建时,可以把密码提前写好,在某个文件里

然后

密码在vault-pass文件里

那这个文件本身,需要“妥善保管”

而且,这个文件本身,不加密的

-------------------------------------------------------

上面用了“变量”这个东西

用ansible操作主机,其中用变量和层次化的变量,管理信息

反过来,主机已有的信息,在ansible看来,是否也可以用类似的方法?

facts(事实)

主机,已经有的信息、属性……都是可层次化管理,并且可以二次利用

这些东西在ansible看来,也是类似于“数组变量”

首先,需要有办法获取

Linux系统,各种信息,如果手动获取,要使用不同多种命令、工具

并且,输出内容,格式都不一样……

ansible必须把这些信息,变成相同格式的内容

肯定要用到某个模块

debug模块

输出内容大概……

如果要把这些信息,拿来用,怎么用

用法和上面的数组变量一样,类似于

那问题又来了

这么多东西,怎么记住?

说实话,谁也记不住……

办法,基本没有

最好的办法,就是记住结构,然后记几个常用的用法

这个东西,啥用处

比如,结合debug和其中的msg,输出特定的检查信息

会输出

还能不能更有用?

比如,把这些信息,收起来,筛选二次使用

把特定的某个、某些fact,拿出来,给变量赋值

和数组变量,类似,可以直接用,写到剧本里

比如

上面的都是,基于系统已有的信息,输出为facts

能不能自己编facts?

两个东西:自定义事实,魔法变量

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

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

相关文章

看完这篇希喂、扑呀、MEOW主食冻干测评,100预算也能养出貌美小猫

对于许多宠物主人来说,一到挑选主食冻干就头疼。尽管主食冻干为猫咪带来的益处远超过普通猫粮,但其价格也相对较高。因此,许多宠物主人担心高价购买的主食冻干营养价值并不高。实际上,除了营养,安全性和配方也是选购时…

IEPL专线和IPLC专线有什么区别?

IEPL和IPLC是两种广泛用于国际通信的专线服务,IEPL是一种以太网专线服务,IPLC是一种传统的专线服务,它们在某些方面有相似之处,但也存在一些关键的区别。下面是IEPL和IPLC的主要区别: 1.技术和定义: IEPL: 技术: IEPL是一种以太…

基于Springboot框架班级综合测评管理系统的设计与实现

开头语:你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Springboot框架,B/S模式 工具:MyEclipse 系统展示 首页…

第9章 类

第9章 类 9.1 创建和使用类9.1.1 创建 Dog 类9.1.2 根据类创建实例 9.2 使用类和实例9.2.1 Car 类9.2.2 给属性指定默认值9.2.3 修改属性的值 9.3 继承9.3.1 子类的方法__init__()9.3.2 给子类定义属性和方法9.3.3 重写父类的方法9.3.4 将实例用作属性9.3.5 模拟实物 9.4 导入类…

深入探索Java开发世界:Java基础~类型分析大揭秘

文章目录 一、基本数据类型二、封装类型三、类型转换四、集合类型五、并发类型 Java基础知识,类型知识点梳理~ 一、基本数据类型 Java的基本数据类型是语言的基础,它们直接存储在栈内存中,具有固定的大小和不变的行为。 八种基本数据类型的具…

数据预处理之基于聚类的TOD异常值检测#matlab

1.基于聚类的异常值检测方法 物以类聚——相似的对象聚合在一起,基于聚类的异常点检测方法有两个共同特点: (1)先采用特殊的聚类算法处理输入数据而得到聚类,再在聚类的基础上来检测异常。 (2)只需要扫描数据集若干次,效率较高…

考试系统提供源码能做什么?

考试系统提供源码,无疑为现代教育领域注入了新的活力。源码,作为软件开发的基石,其开放与共享的特性使得考试系统具备了前所未有的灵活性和可定制性。那么,考试系统提供源码究竟能做什么呢?本文将详细探讨其多重功能与…

钡铼BL101网关助力智慧城市路灯远程智能管控

在迈向智慧城市的征途中,基础设施的智能化改造是关键一环,而路灯作为城市脉络的照明灯塔,其智能化升级对于节能减排、提升城市管理效率具有重要意义。钡铼BL101网关,作为Modbus转MQTT的专业桥梁,正以其卓越的性能和广泛…

如何安装Android程序

1.登录下载 Android Studio 和应用工具 - Android 开发者 | Android DevelopersAndroid Studio 提供了一些应用构建器以及一个已针对 Android 应用进行优化的集成式开发环境 (IDE)。立即下载 Android Studio。https://developer.android.google.cn/studio/网站下载电脑对应的…

vite+ts配置之项目别名以及后缀省略

背景 懒&#xff0c;为了少些几个字母 对比 未配置别名 我们在src/views/demo/index.vue文件下面想引入src/components/gd-upload组件&#xff0c;我们需要下面这种方式 <template><div><GdUpload /></div> </template><script setup lang…

【AI开发】CRAG、Self-RAG、Adaptive-RAG

先放一张基础RAG的流程图 https://blog.langchain.dev/agentic-rag-with-langgraph/ 再放一个CRAG和self-RAG的LangChain官方博客 Corrective RAG(CRAG) 首先需要知道的是CRAG的特色发生在retrieval阶段的最后开始&#xff0c;即当我们获得到了近似的document&#xff08;或者…

2024年粤港澳青少年信息学创新大赛图形化编程小低组真题试卷

2024年粤港澳青少年信息学创新大赛图形化编程小低组真题试卷 题目总数&#xff1a;16 总分数&#xff1a;100 单选题 第 1 题 单选题 默认小猫角色&#xff0c;以下哪个Scratch程序可以在点击绿旗后让小猫说”你好!"一共10秒? A. B. C. D. 第 2 题 单选题 …

全国各区县地区生产总值数据(GDP及人均生产总值),精度超高 区县级数据

数据名称: 全国各区县地区生产总值数据 数据格式: shpexcel 数据几何类型: 面 数据精度&#xff1a;区县 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据 数据可视化.

【AI绘画】文心一格

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

示例:WPF中应用DataGrid读取实体DisplayAttribute特性自动自动生成列名

一、目的&#xff1a;通过重写DataGrid的OnAutoGeneratingColumn方法实现根据定义特性自动生成列头信息功能 二、实现 <DataGrid ItemsSource"{local:GetStudents Count50}"/>实体定义如下 public class Student{[DataGridColumn("*")][Display(Na…

upload-labs第九关教程

upload-labs第九关教程 一、源代码分析代码审计::$DATA介绍 二、绕过分析特殊字符::$data绕过上传eval.php使用burpsuite抓包进行修改放包&#xff0c;查看是否上传成功使用中国蚁剑进行连接 一、源代码分析 代码审计 $is_upload false; $msg null; if (isset($_POST[submi…

新办理北京广播电视节目制作许可证需要什么条件

在北京想要从事广播电视节目制作&#xff0c;那就需要企业拥有广播电视节目制作经营许可证。此许可证不仅是企业合法经营的基础&#xff0c;同时也是保障节目制作质量和内容合规的标志。如何办理&#xff0c;详情致电咨询我或者来公司面谈。 北京广播电视节目制作经营许可证申请…

阿三再现强盗行为,vivo、OPPO或彻底失去印度市场

不知道大伙儿有没有发现哈&#xff0c;近些年越来越多别国打着「保护本土企业」这一免死金牌对咱们中国企业展开肆无忌惮的排挤和打压。 就拿最近发生在汽车这一大件商品上的事件举例&#xff1a; 上个月老美宣布对来自中国的电动汽车关税税率由 25% 提升至 100%&#xff0c;…

项目管理进阶之EVM(挣值管理)

前言 项目管理进阶系列&#xff0c;终于有时间更新啦&#xff01;&#xff01;&#xff01;欢迎持续关注哦~ 上一节博主重点讲了一个环&#xff1a;PDCA&#xff0c;无论各行各业&#xff0c;上到航空航天、下到种地种菜&#xff0c;都离不开对质量的监督和改进。这个环既是一…

一道session文件包含题

目录 环境说明 session文件包含getshell 审计源码 session包含 base64在session中的解码分析 题目&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Q0BN08b8gWiVE4tOnirpTA?pwdcate 提取码&#xff1a;cate 环境说明 这里我用的是linux&#xff0c;也可以用p…