当前位置:网站首页>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文件

边栏推荐
- gin 模版
- 2D cartoon rendering - advanced skills
- CVPR2021| 基于自监督学习的多视图立体匹配 (CVPR2021)
- 数组的子集不能累加出的最小正数
- Teacher Wu Enda machine learning course notes 05 octave tutorial
- Connecting PHP 7.4 to Oracle configuration on Windows
- 剑指 Offer II 115:重建序列
- 【Redis】Redis开发规范与注意事项
- ETL为什么经常变成ELT甚至LET?
- 模拟卷Leetcode【普通】222. 完全二叉树的节点个数
猜你喜欢

Thread synchronization - producers and consumers, tortoise and rabbit race, dual thread printing

MySQL----多表查询

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

MutationObserver文档学习

实现改变一段文字的部分颜色效果

Idea cannot find a database solution

Improved pillar with fine grained feature for 3D object detection paper notes

LeetCode 879. 盈利计划

Redis基础篇

基于C语言实现图书借阅管理系统
随机推荐
Flink real-time warehouse DWD layer (transaction domain - additional purchase dimension degradation processing) template code
上采样之反卷积操作
Vmware16 create virtual machine: cannot create a new virtual machine, do not have permission to perform this operation
聊天机器人有何用处?有何类型?看完这些就明白了!
LeetCode 879. 盈利计划
OCR光学字符识别方法汇总
接口测试实战项目03:执行测试用例
HJ37 统计每个月兔子的总数 斐波那契数列
基于C语言设计的学籍管理系统
最新百亿量化私募名单
[C language brush leetcode] 67. binary sum (E)
1172. The plate stack has a sequence table + stack
dba
基于C语言实现图书借阅管理系统
DM data guard cluster setup
外包干了3年,跳槽后转自动化测试工资是原来的2倍,秘诀原来是......
Simulation volume leetcode [normal] 061. rotating linked list
Federal learning backdoor attack summary (2019-2022)
Implementation of book borrowing management system based on C language
2022-07-28:以下go语言代码输出什么?A:AA;B:AB;C:BA;D:BB。 package main import ( “fmt“ ) func main() { f