当前位置:网站首页>Ansible中的变量及加密
Ansible中的变量及加密
2022-07-29 06:29:00 【野124】
目录
1.变量命名
和大多数编程语言一样,包含数字,下划线,字母 ,只能用下划线或字母开头 ansible内置的关键字不能作为变量名
2.变量级别
全局: 从命令行或配置文件中设定的
paly: 在play和相关结构中设定的
主机: 由清单,事实收集或注册的任务
变量优先级设定: 狭窄范围有限与广域范围
3.变量设定和使用方式
1.在playbook中直接定义变量

2.在文件中定义变量
编辑westos.yml文件,指定变量linuxfile,在编辑test.yml文件,如下

运行后即可在/mnt/中创建linuxfile
3.使用变量
- name: tesk play
hosts: westos
tasks:
- name: create filef
file:
path: "{ { file }}"
state: touch
4.设定主机变量和清单变量
在定义主机变量和清单变量时使用
编辑inventory如下,编辑test.yml如下,运行test.yml即可在受控主机中创建filewestoslinux

5.目录设定变量
group_vars 清单变量,目录中的文件名称与主机清单名称一致
host_vars 主机变量,目录中的文件名称与主机名称一致
测试如下
vim inventory
添加主机IP
[list]
192.168.43.204
vim test.yml

接着需写:group_vars清单变量,host_vars 主机变量
内容如下:

测试如下:
运行test.yml:执行成功。并查看受控机192.168.43.204中的用户user1如下:删除用户成功!

6.用命令覆盖变量
ansible-playbook westos.yml -e "name=linux"

7.使用数组设定变量

8.注册变量

9.事实变量
事实变量是ansible在受控主机中自动检测出的变量,事实变量中还有与主机相关的信息
当需要使用主机相关信息时不需要采集赋值,直接调用即可
因为变量信息为系统信息所以不能随意设定仅为采集信息,故被成为事实变量
我们不知道系统参数的时候,可以直接去查看系统中的参数
ansible westos all –m, setup | less

例如:查看主机名(ansible_fqdn)

10.魔法便变量
hostvars: ansible软件的内部信息
eg:ansible westost -m debug -a "var=hostvars"

group_names: 当前受管主机所在组
eg: ansible westos -m debug -a "var=group_names"

groups: 列出清单中所有的组和主机
eg: ansible localhost -m debug -a "var=groups"

inventory_hostname: 包含清单中配置的当前授管主机的名称
eg: ansible westos -m debug -a "var=inventory_hostname"

JINJA2模板
介绍 Jinja2是Python下一个被广泛应用的模版引擎 他的设计思想来源于Django的模板引擎, 并扩展了其语法和一系列强大的功能。 其中最显著的一个是增加了沙箱执行功能和可选的自动转义功能
j2模板书写规则
编写循环内容
vim number.yml
NUMBER:
- 1
- 2
- 3
for循环和if判断
vim test.j2
{% for N in NUMBER %}
{%if N == 2%}
luck
{%endfor%}
{%if not N == 2%}
{ {N}}
{%end%}
{%endfor%}
loop.index 循环迭代记数从1开始
loop.index0 循环迭代计数从0开始
vim testj2.yml
- name: test j2
hosts: westos
vars_files: number.yml
tasks:
- name: create /mnt/file
template:
src: test.j2
dest: /mnt/file

Ansible的加密控制
1.创建加密文件
1. ansible-vault create linux 创建加密文件linux

2. vim key创建密钥
westos
ansible-vault create linuxfile --vault-password-file=key
对新建文件linuxfile进行加密(linuxfile文件密码为key文件中的内容westos)

3.加密现有文件
ansible-vault encrypt vsftpd.yml 对已经存在的vsftp.yml文件进行加密

ansible-vault encrypt linuxfile --vault-password-file=key
对现有文件linuxfile文件进行加密,并指定密钥为key文件

4.查看加密文件
ansible-vault view vsftpd.yml 查看加密文件vsftpd.yml

ansible-vault view linuxfile --vault-password-file=key
查看已经加密的文件Linuxfile,密钥为key文件

5.编辑加密文件
ansible-vault edit linux 编辑加密文件linux
ansible-vault edit linuxfile --vault-password-file=key
编辑加密的文件linuxfile,密钥为key文件
6.解密文件
ansible-vault decrypt linux linux文件永久解密
ansible-vault decrypt linuxfile --output=linuxfile
linuxfile文件解密保存为linuxfile

7.更改密码
ansible-vault rekey linux 对linux文件进行更改密码
ansible-vault rekey linuxfile --new-vault-password-file=key1
对linuxfile文件进行更改密码,更改后的密码为key1文件

边栏推荐
- 模拟卷Leetcode【普通】172. 阶乘后的零
- 实现改变一段文字的部分颜色效果
- 【Redis】Redis开发规范与注意事项
- Flink实时仓库-DWD层(交易域-加购维度退化处理)模板代码
- Simulation volume leetcode [ordinary] 172. Zero after factorial
- 使用VsCode配置MySQL实现连接、查询、等功能
- 要不要满足客户所有的需求
- Thread - thread safety - thread optimization
- CAN&CANFD综合测试分析软件LKMaster与PCAN-Explorer 6分析软件的优势对比
- 竣达技术 | 适用于”日月元”品牌UPS微信云监控卡
猜你喜欢

怎么会不喜欢呢,CICD中轻松发送邮件

接口测试实战项目03:执行测试用例

SSH免密登录-两台虚拟机建立免密通道 双向信任

二次元卡通渲染——进阶技巧

VMware16创建虚拟机:无法创建新虚拟机,不具备执行此操作的权限

VMware16创建虚拟机:Win11无法安装

Win11 system error: code execution cannot continue because ierutil.dll cannot be found. Reinstalling the program may fix this problem

leetcode-592:分数加减运算

Guess the number / / generate a random number for the first time

Leetcode 879. profit plan
随机推荐
Teacher Wu Enda's machine learning course notes 03 review of linear algebra
Flink实时仓库-DWD层(下单-多张表实现join操作)模板代码
竣达技术 | 适用于”日月元”品牌UPS微信云监控卡
MVFuseNet:Improving End-to-End Object Detection and Motion Forecasting through Multi-View Fusion of
MVFuseNet:Improving End-to-End Object Detection and Motion Forecasting through Multi-View Fusion of
模拟卷Leetcode【普通】172. 阶乘后的零
聊天机器人有何用处?有何类型?看完这些就明白了!
Vscode remote debugging PHP solution through remotessh and Xdebug
gin 中间件
记 - 踩坑-实时数仓开发 - doris/pg/flink
VMware16创建虚拟机:Win11无法安装
npm install 时,卡住不动,五种解决方法
WPF嵌套布局案例
CVPR2021| 基于自监督学习的多视图立体匹配 (CVPR2021)
数据库系统概述
Basic knowledge of MySQL (high frequency interview questions)
个人博客系统(附源码)
基于C语言设计的学籍管理系统
基于C语言设计的学生成绩排名系统
MySQL 高级(进阶) SQL 语句 (一)