Ansible - [10] Vault(加密&解密)
加密文件
Ansible 有时需要访问一些敏感数据,如密码、Key等
使用ansible-vault可以加密和解密数据
# 创建测试文件
[root@control ansible]# echo 123456 > data.txt
# 加密文件
[root@control ansible]# ansible-vault encrypt data.txt
# 查看文件内容
[root@control ansible]# cat data.txt
# 查看加密文件
[root@control ansible]# ansible-vault view data.txt
# 解密文件
[root@control ansible]# ansible-vault decrypt data.txt
可以通过ansible-vault rekey
修改加密的密码
如果角色加密解密每次都输入密码很麻烦,可以将密码写入文件
[root@control ansible]# echo "I'm secret data" >> data.txt
[root@control ansible]# echo 123456 > pass.txt
[root@control ansible]# ansible-vault encrypt --vault-id=pass.txt data.txt
[root@control ansible]# cat data.txt
[root@control ansible]# ansible-vault decrypt --vault-id=pass.txt data.txt
[root@control ansible]# cat data.txt
使用场景
1、传送敏感数据到远程主机
[root@control ansible]# echo "I'm secret data" >> data.txt
[root@control ansible]# echo 123456 > pass.txt
[root@control ansible]# ansible-vault encrypt --vault-id=pass.txt data.txt
[root@control ansible]# ansible test -m copy --vault-id=pass.txt -a "src=data.txt dest=/tmp/ mode=0600"
2、Playbook调用敏感数据(账号名、密码等)
# Step1: 在变量yml文件中配置用户名和密码
[root@control ansible]# cat ~/ansible/variables.yml
iname: cloud
ipass: '123456'
# Step2: 将变量yml文件加密
[root@control ansible]# ansible-vault encrypt variables.yml
# Step3: 配置playbook用vars_files调用用户名和密码
[root@control ansible]# cat ~/ansible/vault.yml
---
- hosts: test
vars_files: variables.yml
tasks:
- name: include vault data, create user.
user:
name: "{{iname}}"
password: "{{ipass|password_hash('sha512')}}"
# Step4: 执行剧本(询问加密文件的密码,手动输入)
[root@control ansible]# ansible-playbook --ask-vault-pass vault.yml
(END)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南