Linux——ansible里的变量

在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.mzph.cn/bicheng/28885.shtml

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

相关文章

跟TED演讲学英文:Entertainment is getting an AI upgrade by Kylan Gibbs

Entertainment is getting an AI upgrade Link: https://www.ted.com/talks/kylan_gibbs_entertainment_is_getting_an_ai_upgrade Speaker: Kylan Gibbs Date: April 2024 文章目录 Entertainment is getting an AI upgradeIntroductionVocabularySummaryTranscriptAfterwor…

Ubuntu如何添加用户环境变量

一,简介 在工作中,需要将某个环境变量添加到用户环境变量中,方便使用。 要将 SOF_WORKSPACE~/work/sof 添加到用户的环境变量中,需要将该设置添加到用户的 shell 配置文件中,例如 ~/.bashrc(对于 Bash 用…

【会议征稿】第五届物联网、人工智能与机械自动化国际学术会议 (IoTAIMA 2024,7月19-21)

由浙江工业大学主办,第五届物联网、人工智能与机械自动化国际学术会议 (IoTAIMA 2024) 将于2024年7月19-21日在浙江杭州召开。 会议旨在为从事物联网、人工智能与机械自动化的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术,了解学…

20240617通过串口配置索尼SONY的HDMI OUT输出的8530机芯

20240617通过串口配置索尼SONY的HDMI OUT输出的8530机芯 2024/6/17 15:54 缘起:需要在RK3588开发板OK3588-C上使用SONY的8530机芯。特意熟悉8530的串口命令! 目的:需要配置SONY的8530机芯为RGB输出,4K分辨率。 串口波特率&#x…

从11个视角看全球Rust程序员2/4:深度解读JetBrains最新报告

讲动人的故事,写懂人的代码 5 Rust代码最常使用什么协议与其他代码交互? REST API: 2022年:51%2023年:51%看上去REST API的使用比例挺稳定的,没啥变化。语言互操作性(Language Interop): 2022年:53%2023年:43%语言互操作性的比例在2023年下来了一些,掉了10个百分点…

示例:WPF中DataGrid设置多级分组样式

一、目的&#xff1a;应用CollectionViewSource和GroupStyle设置DataGrid多级分组样式 二、实现 一级分组效果如下 二级分组效果如下 三、环境 VS2022 四、示例 具体实现代码如下 <TabItem Header"DataGrid - 多级分组"><TabItem.Resources><Colle…

ansible-Role角色批量按照node_export节点,并追加信息到Prometheus文件中

文章目录 剧本功能 inventory.yaml文件定义deploy.yaml角色定义node_exporter_lock角色定义任务角色main.yamlnode_exporter_tasks.yml角色触发任务notifyextra_tasks.yml角色prometheus_node_config.j2模板文件 执行命令查看变量 剧本功能 功能1&#xff1a; 批量执行node_ex…

Java数据结构与算法(多重背包)

前言: 多重背包问题&#xff08;Multiple Knapsack Problem, MKP&#xff09;是背包问题的一个变种。在这种问题中&#xff0c;你有多个背包&#xff0c;每个背包都有一定的容量。你需要选择一些物品放入这些背包中&#xff0c;以使放入物品的总价值最大化。每个物品都有一个价…

【Nvidia+AI摄像头】面向机器人双目视觉相机

随着人工智能和机器人技术的不断发展&#xff0c;双目深度相机作为一种重要的传感器&#xff0c;正在被广泛应用于各种机器人系统中。双目深度相机作为机器人不可或缺的感知器件&#xff0c;其高精度深度信息为机器人提供环境感知、立体视觉、姿态识别等功能&#xff0c;让机器…

Flink 窗口函数

一、Window 概述 Flink 流式计算是一种被设计用于处理无限数据集的数据处理引擎&#xff0c;而无限数据集是指一种不断增长的本质上无限的数据集&#xff0c;而 window 是一种切割无线数据为有限块进行处理的手段。 二、Window 分类 Window 可以分为两类&#xff1a; Count…

程序员画图工具?那必然是你了!!【送源码】

作为一个程序员&#xff0c;画图是必不可少的技巧。当然此画图不是搞艺术&#xff0c;而是画各种架构图、流程图、泳道图以及各种示意图。 平时我不论是记笔记、写技术文章&#xff0c;还是工作中写文档&#xff0c;都需要配上各种各样的示意图。不管是帮助自己更好的掌握知识…

云动态摘要 2024-06-17

给您带来云厂商的最新动态&#xff0c;最新产品资讯和最新优惠更新。 最新优惠与活动 [低至1折]腾讯混元大模型产品特惠 腾讯云 2024-06-06 腾讯混元大模型产品特惠&#xff0c;新用户1折起&#xff01; 云服务器ECS试用产品续用 阿里云 2024-04-14 云服务器ECS试用产品续用…

Thinkpad系列产品进入Bios并设置U盘启动

Thinkpad系列产品&#xff0c;进入Bios并设置U盘启动&#xff0c;常用于以下场景&#xff1a; 1. 安装操作系统。 通过U盘启动盘&#xff0c;用户可以在电脑无法从硬盘启动或需要重装系统时&#xff0c;将操作系统安装到电脑中。这种方法简单且有效&#xff0c;节省了时间并方便…

夏季家里粉尘螨虫满天飞?一招搞定!好用家用空气净化器品牌分享

每到夏季&#xff0c;是家中尘螨滋生的高发期。夏季无论是开窗通风还是关窗开空调&#xff0c;都很容易造成空气中的浮尘堆积&#xff0c;不注意卫生清洁&#xff0c;容易滋生细菌、尘螨。 易过敏、体质弱的人群长时间在空气污染环境中&#xff0c;很容易就会过敏或者发生其他…

Hive笔记-2

第 3 章 DDL (Data Definition Language) 数据定义 DDL数据定义语言 DML数据操作语言 3.1 数据库 (database) 3.1.1 创建数据库 1) 语法 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_…

Git 代码管理规范 !

分支命名 master 分支 master 为主分支&#xff0c;也是用于部署生产环境的分支&#xff0c;需要确保master分支稳定性。master 分支一般由 release 以及 hotfix 分支合并&#xff0c;任何时间都不能直接修改代码。 develop 分支 develop 为开发环境分支&#xff0c;始终保持最…

在微信公众号上怎么添加预定房间功能

在这个快节奏的现代社会&#xff0c;人们对于便捷与高效的需求日益增加。特别是在旅行或出差时&#xff0c;能够快速、方便地预订一间舒适的房间&#xff0c;无疑是每个人心中的小确幸。今天&#xff0c;我们为您带来了一项革命性的服务——微信公众号上的房间预定功能&#xf…

Serverless如何赋能餐饮行业数字化?乐凯撒思变之道

导语 | 在数字化浪潮席卷全球的今天&#xff0c;每一个行业都在经历着前所未有的变革。餐饮行业作为人们日常生活中不可或缺的一部分&#xff0c;更是面临着巨大的转型压力。如何完成数字化转型&#xff0c;打破传统经营模式的限制&#xff0c;成为摆在众多餐饮商家面前的一道难…

Windows 10永久关闭“系统准备工具 3.14“禁止开机自启

文章目录 一、问题描述二、解决方法总结 一、问题描述 每次开机都会显示如下图所示的 系统准备工具 3.14 二、解决方法 按win R键打开运行窗口 → 输入cmd → 点击 确定 如图所示输入下面如图所示代码 → 按 回车 → 输入 Y → 按 回车 XCOPY C:\windows\System32\svchost.e…

Apache ShardingSphere实战与核心源码剖析

Apache ShardingSphere实战与核心源码剖析 1.数据库架构演变与分库分表介绍 1.1 海量数据存储问题及解决方案 如今随着互联网的发展,数据的量级也是成指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。…