Ansible中的变量及加密

本文详细介绍了Ansible中的变量命名规则、不同级别的变量、变量设定与使用方式,包括在playbook、清单、主机和目录中设定变量。还讨论了如何覆盖变量、使用数组设置变量以及注册变量。此外,文章探讨了事实变量的概念,展示了如何利用它们获取受控主机的信息。通过模板变量和Jinja2模板,解释了如何处理复杂的数据结构。最后,文章详细阐述了Ansible的加密控制,包括创建、查看、编辑、解密和更改加密文件密码的方法,以及如何在加密文件环境中运行playbook。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量命名
只能包含数字,下划线,字母
只能用下划线或字母开头
变量级别
全局:从命令行或配置文件中设定的
play:在play和相关结构中设定的
主机:由清单,事实或注册的任务
变量优先级:狭窄范围与广域范围
变量设定和使用方式
在playbook中直接定义变量
编写playbook
vim user.yml
在这里插入图片描述

在文件中定义变量
定义变量
vim userlist
在这里插入图片描述
vim user.yml
在这里插入图片描述
设定主机变量和清单变量
在定义主机变量和清单变量时使用
vim inventory
在这里插入图片描述
vim user.yml
在这里插入图片描述
目录设定变量
mkdir group_vars
mkdir host_vars
vim group_vars/list2
在这里插入图片描述
vim user.yml
在这里插入图片描述

vim host_vars/172.25.2.254
在这里插入图片描述
vim user.yml
在这里插入图片描述
如果多个文件都存在统一个变量会按照读取顺序,最后读取的变量会覆盖前边的
使用命令覆盖变量
vim user.yml
在这里插入图片描述
ansible-playbook user.yml
在这里插入图片描述
ansible-playbook user.yml -e "user=linux"
在这里插入图片描述
使用数组设置变量
vim user_var.yml
在这里插入图片描述
vim user.yml
在这里插入图片描述
注册变量
register把模块输出注册到指定字符中
vim hostname.yml
在这里插入图片描述
vim showrc.yml
在这里插入图片描述
运行,这是playbook执行信息
在这里插入图片描述
将这些信息用变量表示 (ignore_errors=yes表示前边的play运行失败后边的也可以运行,默认为no)

在这里插入图片描述
运行
在这里插入图片描述
删除nod1中的/mnt/file运行
ansible nod1.westos.com -m file -a ‘path=/mnt/file state=absent’
ansible-playbook file.yml
可以看到虽然已经运行失败但还是运行了下去

在这里插入图片描述

事实变量
事实变量是ansible在受控主机中自动检测出的变量
事实变量中含有与主机相关的信息
当需要使用主机相关信息时不需要采集赋值,直接调用即可,因为变量信息为系统信息所以不能随意设定仅为采集信息,故而被成为事实变量
例如查看ip
vim ip.yml
在这里插入图片描述
playbook练习
采集nod1.westos.com 受控主机的ip,主机名,内存,并保存到/mnt/host中
vim vhost.yml
在这里插入图片描述
运行并查看
在这里插入图片描述

模板变量
hostvars:ansible软件的内部信息
在这里插入图片描述

group_names:当前受管主机所在组
在这里插入图片描述

groups:列出清单中所有的组和主机
在这里插入图片描述

inventory_hostname:包含清单中配置的当前受管主机的名称
在这里插入图片描述
JINJA2模板
Jinja2是Python下一个被广泛应用的模板引擎
他的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能,其中最显著的一个是增加了沙箱执行功能和可选的自动转译功能
J2模板书写规则
例如写一个地址解析
在这里插入图片描述
for循环
vim user.yml
在这里插入图片描述
vim users.j2
在这里插入图片描述
vim user.yml
在这里插入图片描述
运行并查看
在这里插入图片描述
练习
采集所有受控主机的ip和主机名并保存到受控主机的/mnt/host
vim host.j2
在这里插入图片描述
vim host.yml
在这里插入图片描述
运行并查看
在这里插入图片描述

if判断
编写实验playbook
vim user_messages.yml
在这里插入图片描述
vim user_messages.j2
在这里插入图片描述
vim user_messages.yml
在这里插入图片描述
运行并查看
在这里插入图片描述
Ansible中的加密控制
创建建立文件
ansible-vault create westos
在这里插入图片描述
查看
在这里插入图片描述
使用ansible查看并输入密码
ansible-vault view westos
在这里插入图片描述
文件包含密码
vim westos-vault
在这里插入图片描述
ansible-vault create --vault-password-file=westos-vault westos
查看(使用westos-vault中写入的字符串作为密码)
ansible-vault view --vault-password-file=westos-vault westos
在这里插入图片描述

加密现有文件
vim westos.yml
在这里插入图片描述
ansible-vault encrypt westos.yml

在这里插入图片描述
查看
在这里插入图片描述
使用ansible输入密码查看
在这里插入图片描述
编辑加密文件(注意缩进)
ansible-vault edit westos.yml
在这里插入图片描述
使用ansible查看
在这里插入图片描述

文件密码编辑
ansible-vault edit --vault-password-file=westos-vault westos
在这里插入图片描述
使用ansible查看
在这里插入图片描述
解密文件
ansible-vault decrypt westos
在这里插入图片描述

解密加密文件变成另外一个文件,原文件不变
ansible-vault decrypt westos.yml --output=linux.yml
在这里插入图片描述
更改密码
ansible-vault rekey westos.yml
文件更改密码
ansible-vault rekey westos.yml --new-vault-password-file=key1(需要编辑key1文件写入密码)

加密文件运行
文件加密后只用playbook命令无法运行
在这里插入图片描述

ansible-playbook westos,yml --ask-vault-pass
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值