Ansible管理密码库文件
ansible可能需要访问密码或API密钥等敏感数据,以便能配置受管主机。通常,此信息可能以纯文本形式存储在清单变量或其他Ansible文件中。但若如此,任何有权访问Ansible文件的用户或存储,这些Ansible文件的版本控制系统都能够访问此敏感数据。这存在安全风险。
使用Ansible随附的Ansible Vault可以加密和解密任何由Ansible使用的结构化数据文件。若要使用AnsibleVault,可通过一个名为ansible-vault 的命令行工具创建、编辑、加密、解密和查看文件。Ansible Vault可以加密任何由Ansible使用的结构化数据文件。这可能包括清单变量、playbook中含有的变量文件、在执行playbook时作为参数传遇的变量文件,或者Anslble 角色中定义的变量。
环境:
受控主机清单文件:
[dev]
192.168.10.129
[all:vars]
ansible_ssh_user=root
ansible_ssh_pass=123
基本配置:
定义一个存放变量的文件:
yml文件:
调用变量
运行结果:
存在安全风险!!
创建加密文件:
要创建新的加密文件,可使用ansible-vault create filename命令。该命令
将提示输入新的Vaul密码,然后利用默认编辑器vi打开文件。可以使用vault
密码文件来存储vault密码,而不是通过标准输入途径输入vault密码。您可能
需要用文件权限和其他方式来严密保护该文件。
使用ansible-vault create vars.txt 命令,会要求输入密码进入vim编辑器进行编辑
pkg_name: httpd 加密的数据
使用cat命令查看文件时,会显示加密后的数据,保证了数据的安全性
修改yml文件,调用加密后的存放变量的文件
要运行可访问通过Ansible Vault加密的文件的playbook,需要ansible-playbook命令提供加密密码。如果不提供密码,playbook将返回错误,要为playbook提供vault密码,可使用--vault-id选项。例如,要以交互方式提供vault密码,请使用--vault-id @prompt。敏感的playbook变量可以放在单独的文件中,此文件通过AnsibleVault加密,并通过vars_files指令包含在该playbook中。
习惯使用ansible-playbook file.yml --ask-vault-pass这种方式,然后输入密码
也可以在ansible.cfg配置文件中使用vault_password_file指定密码文件,避免多次输入密码,后续可以直接执行ansible-playbook file.tml运行剧本。
vault_password_file=用于存放密码文件的路径
后续运行剧本,涉及到调用加密文件时,不再重复输入密码认证。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!