Ansible基础4——变量、机密、事实
文章目录
- 一、变量
- 二、机密
- 2.1 创建加密文件
- 2.2 查看加密文件
- 2.3 编辑加密文件内容
- 2.4 加密现有文件
- 2.5 解密文件
- 2.6 更改加密密码
- 三、事实
- 3.1 收集展示事实
- 3.2 展示某个结果
- 3.3 新旧事实命令
- 3.4 关闭事实
- 3.5 魔法变量
一、变量
常设置的变量:
- 要创建的用户
- 要安装的软件包
- 要重新启动的服务
- 要删除的文件
- 要从互联网检索的存档
命名变量:
- 变量的名称必须以字母开头,并且只能包含字母、数字和下划线。
变量优先级:
- 全局范围:从命令行或Ansible配置设置的变量。
- playbook范围:在play和相关结构中设置的变量。
- 主机范围:由清单、事实收集或注册的任务,在主机组和个别主机上设置的变量。
- 命令行 > playbook变量 > 清单文件变量
1.playbook中定义变量。
[root@localhost playbook]# cat baimu.yml
---
- name: 服务安装hosts: allvars: ##添加变量。service_name: httpdtasks:- name: 安装httpdyum:name: "{{ service_name }}" ##引用变量名。state: present

2.使用变量文件定义。


二、机密
| 命令 | 释义 |
|---|---|
| create | 创建一个vault加密文件 |
| decrypt | 解密保险库加密文件 |
| edit | 编辑保险库加密文件 |
| view | 查看保险库加密文件 |
| encrypt | 加密YAML文件 |
| encrypt_string | 加密字符串 |
| rekey | 重新加密保险库加密文件 |
2.1 创建加密文件
1.输出密码创建加密文件qingjun,内容为“我在学习”。

2.指定密码文件创建加密文件baimu,内容为"热爱祖国"。

2.2 查看加密文件
1.查看加密文件qingjun内容。

2.查看加密文件baimu内容。

2.3 编辑加密文件内容
1.对现有的加密文件baimu内容进行编辑,添加一行“华夏九州”,输入密码查看验证。

2.4 加密现有文件
1.将普通文件qingjun1加密,变成加密文件,只能使用密码查看。

2.5 解密文件
1.将加密文件变成普通文件。

2.6 更改加密密码
1.更改加密文件baimu的密码,有原来的123456变成citms。

三、事实
基本了解:
- 通过setup模块获取受控机上的变量称为事实,将变量信息输出展示到主控机上,可以方便主控机对受控机的操控使用。
- 事实中包含与受控机相关的信息,可以配合playbook中的变量、条件和循环来使用。
- 每个play在执行第一个任务之前会先自动运行setup模块来收集事实,但不会展示出来,可以在playbook中使用debug模块来收集事实并展示出来。
常用事实:
- 主机名称
- 内核版本
- 网络接口
- IP地址
- 操作系统版本
- 各种环境变量
- CPU数量
- 提供的或可用的内存
- 可用磁盘空间
3.1 收集展示事实
1.使用setup模块获取对受控机收集的事实。
ansible all -m setup -i inventory.ini |less

2.使用debug模块收集展示事实。
[root@localhost playbook]# cat qingjun.yml
---- name: 系统初始化hosts: 192.168.130.161tasks:- name: 执行setup模块,取变量debug:var: ansible_facts

3.2 展示某个结果
1.只展示事实中的某个参数。


2.作为变量被其他模块使用。
[root@localhost playbook]# cat qingjun.yml
---- name: 获取变量hosts: 192.168.130.161tasks:- name: 获取变量1shell: |echo 这台受控机的ip是:{{ ansible_facts['all_ipv4_addresses'] }} ##双括号代表引用变量。register: qingjun ##register捕获命令输出,写在哪个任务下面打印哪个任务下的信息。- debug: var=qingjun ##使用debug模块打印一个变量值,这里就打印qingjun变量。- name: 获取变量2shell: | echo 版本号为:{{ ansible_facts['bios_version'] }}register: qingjun- debug: var=qingjun

3.3 新旧事实命令
| ansible_facts形式 | 旧事实变量形式 |
|---|---|
| ansible_facts[‘hostname’] | ansible_hostname |
| ansible_facts[‘fqdn’] | ansible_fqdn |
| ansible_facts[‘default_ipv4’][‘address’] | ansible_default_ipv4[‘address’] |
| ansible_facts[‘interfaces’] | ansible_interfaces |
| ansible_facts[‘devices’][‘vda’][‘partitions’][‘vda1’][‘size’] | ansible_devices[‘vda’][‘partitions’][‘vda1’][‘size’] |
| ansible_facts[‘dns’][‘nameservers’] | ansible_dns[‘nameservers’] |
| ansible_facts[‘kernel’] | ansible_kernel |
1.使用旧语法展示事实结果。
[root@localhost playbook]# cat qingjun.yml
---- name: 获取变量hosts: 192.168.130.161tasks:- name: 获取变量1shell: |echo 这台受控机的ip是:{{ ansible_all_ipv4_addresses }} ##使用就语法,去掉facts。register: qingjun- debug: var=qingjun

2.关闭就语法使用。修改ansible配置文件参数“ inject_facts_as_vars = True ”,它默认是开启的,将注释取消,改为False即可。

3.4 关闭事实
1.添加参数“gather_facts: no”,可关闭事实收集功能。


2.此时可以添加setup模块,临时收集事实。
[root@localhost playbook]# cat qingjun.yml
---- name: 获取变量hosts: 192.168.130.161tasks:- name: 获取变量1shell: |echo 这台受控机的ip是:{{ ansible_facts['all_ipv4_addresses'] }}register: qingjun- debug: var=qingjun

3.5 魔法变量
- 除了从事实中展示出来的变量,也还有一些其他变量由Ansible自动设置,这种变量成为魔法变量。这些魔法变量也可用于获取与特定受管主机相关的信息。
- 官网连接
| 常用魔法变量 | 释义 |
|---|---|
| hostvars | 包含受管主机的变量,可以用于获取另一台受管主机的变量的值。 若还没有为受管主机收集事实,则它不会包含该主机的事实。 |
| group_names | 列出当前受管主机所属的所有组 |
| groups | 列出清单中的所有组和主机 |
| inventory_hostname | 包含清单中配置的当前受管主机的主机名称,也有可能与事实报告的主机名称不同 |
1.查看受控机的变量信息,setup模块查不到的这部分信息。

2.查看清单中的所有组和主机。

相关文章:
Ansible基础4——变量、机密、事实
文章目录 一、变量二、机密2.1 创建加密文件2.2 查看加密文件2.3 编辑加密文件内容2.4 加密现有文件2.5 解密文件2.6 更改加密密码 三、事实3.1 收集展示事实3.2 展示某个结果3.3 新旧事实命令3.4 关闭事实3.5 魔法变量 一、变量 常设置的变量: 要创建的用户要安装的…...
React实现Vue的watch监听属性
在 Vue 中可以简单地使用 watch 来监听数据的变化,还能获取到改变前的旧值,而在 React 中是没有 watch 的。 React中比较复杂,但是我们如果想在 React 中实现一个类似 Vue 的 watch 监听属性,也不是没有办法。 在React类组件中实…...
axios、跨域与JSONP、防抖和节流
文章目录 一、axios1、什么是axios2、axios发起GET请求3、axios发起POST请求4、直接使用axios发起请求 二、跨域与JSONP1、了解同源策略和跨域2、JSONP(1)实现一个简单的JSONP(2)JSONP的缺点(3)jQuery中的J…...
macOS Ventura 13.5beta2 (22G5038d)发布
系统介绍 黑果魏叔 6 月 1 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 2 更新(内部版本号:22G5038d),本次更新距离上次发布隔了 12 天。 macOS Ventura 带来了台前调度、连续互通相机、Fac…...
jwt----介绍,原理
token:服务的生成的加密字符串,如果存在客户端浏览器上,就叫cookie -三部分:头,荷载,签名 -签发:登录成功,签发 -认证:认证类中认证 # jwt&…...
Three.js--》实现3d水晶小熊模型搭建
目录 项目搭建 初始化three.js基础代码 加载背景纹理 加载小熊模型 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 项目搭建 本案例还是借助框架书写…...
《阿里大数据之路》研读笔记(1)
首先先看到OLAP和OLTP的区别: OLTP(Online transaction processing):在线/联机事务处理。典型的OLTP类操作都比较简单,主要是对数据库中的数据进行增删改查,操作主体一般是产品的用户或者是操作人员。 OLAP(Online analytical processing):…...
Logback 日志框架详解
一、Logback 简介 Logback 是一个日志框架,旨在成为 log4j 的替代品。它由 Ceki Glc 创建并维护,是一款开源的日志框架,是 slf4j(Simple Logging Facade for Java)的实现。相比于 log4j,Logback 具有更高的…...
BIO、NIO、AIO 有什么区别?
BIO (Blocking I/O): Block IO 同步阻塞式 IO ,传统 IO,特点是模式简单、使用方便,并发处理能力低。 同步阻塞 I/O 模式,数据的读取写入必须阻塞在一个线程内等待其完成,在活动连接数不是特别高(…...
nginx和tomcat负载均衡、静态分离
tomcat重要目录 bin 存放启动和关闭Tomcat脚本conf存放Tomcat不同的配置文件doc存放Tomcat文档lib存放Tomcat运行需要的库文件logs存放Tomcat执行时的log文件src存放Tomcat的源代码webappsTomcat的主要Web发布目录work存放jsp编译后产生的class文件 nginx负载均衡原理 nginx实…...
用AI写出的高考作文!
今天是6月7日,又到了每一年高考的日子。小灰自己参加高考是在2004年,距离现在已经将近20年,现在回想起来,真的是恍如隔世。 今天高考语文的作文题是什么呢? 全国甲卷的题目是:人技术时间 人们因技术发展得以…...
chatgpt赋能python:Python屏幕输入介绍:了解命令行输入的基本知识
Python屏幕输入介绍:了解命令行输入的基本知识 Python是一种使用广泛的编程语言,用于编写各种类型的应用程序,包括图形用户界面应用程序和基于命令行的应用程序。对于基于命令行的应用程序来说,屏幕输入非常重要。本文将介绍Pyth…...
bert中文文本摘要代码(1)
bert中文文本摘要代码 写在最前面关于BERT使用transformers库进行微调 load_data.py自定义参数collate_fn函数BertDataset类主函数 tokenizer.py创建词汇表encode函数decode函数 写在最前面 熟悉bert+文本摘要的下游任务微调的代码,方便后续增加组件实现…...
为何溃坝事故频发,大坝安全如何保障?
随着水利水电工程的重要性日益突显,水库大坝安全越来越受到相关部门的重视。因为大坝的安全直接影响水利工程的功能与作用,因此对大坝安全的监测显得十分必要。大坝安全监测的作用是能够及时掌握大坝的运行状态,及时发现大坝的变形、渗漏等异…...
第十九章_手写Redis分布式锁
锁的种类 单机版同一个JVM虚拟机内synchronized或者Lock接口。 分布式多个不同JVM虚拟机,单机的线程锁机制不再起作用,资源类在不同的服务器之间共享了。 一个靠谱分布式锁需要具备的条件和刚需 独占性 :OnlyOne,任何时刻只能有且…...
电路设计【8】原理图中VCC、VDD、VEE、VSS、VBAT各表示什么意思
文章目录 一、名词解析二、应用讲解三、举例分析:为什么stm32vet6中要分出5对VDD VSS?它们分别负责哪些模块的供电? 一、名词解析 (1)VCC:Ccircuit 表示电路的意思, 即接入电路的电压 (2&…...
Volatile、Synchronized、ReentrantLock锁机制使用说明
一、Volatile底层原理 volatile是轻量级的同步机制,volatile保证变量对所有线程的可见性,不保证原子性。 当对volatile变量进行写操作的时候,JVM会向处理器发送一条LOCK前缀的指令,将该变量所在缓存行的数据写回系统内存。由于缓…...
港联证券|AI概念股继续活跃 科创50指数逆势走高
周三,A股市场出现极致分化态势。得益于存储芯片为代表的硬科技股的强势,科创50指数逆势走高。但创业板指、深证成指等主要股指仍然跌跌不休,沪指险守3200点关口。AI概念股继续逆势活跃,国资云、数据方向领涨,算力概念股…...
分布式事务一 事物以及分布式事物介绍
一 事务简介 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中,一个事务由一组SQL语句组成。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(at…...
【十四】设计模式~~~行为型模式~~~中介者模式(Java)
【学习难度:★★★☆☆,使用频率:★★★★★】 3.1. 模式动机 建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标&#…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
