当前位置: 首页 > news >正文

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 模式,数据的读取写入必须阻塞在一个线程内等待其完成,在活动连接数不是特别高&#xff08…...

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. 模式动机 建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标&#…...

ES6从入门到精通:前言

ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...