使用 --ask-vault-pass 在运行时解密
为 Play 提供密码
使用 --ask-vault-pass 在运行时解密 是 CoddyKit 上的免费 Ansible Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ansible Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ansible Academy 课程共包含 4 节课。
在恰当时机解密
Vault 机密在磁盘上始终保持加密状态。关键在于,恰好在剧本需要读取它们时向 Ansible 提供密码。🔑
提示输入密码
将 --ask-vault-pass 添加到 ansible-playbook 后,Ansible 会在运行开始前要求您输入一次 Vault 密码。
ansible-playbook site.yml --ask-vault-pass一个密码,贯穿整个运行
这一次提示会解锁剧本所访问的所有 Vault 加密文件和内联值。Ansible 只会在内存中解密它们。🧠
缺少密码会快速失败
运行需要 Vault 的剧本时,如果没有提供密码,Ansible 会在执行任何有害操作前因明确的解密错误而停止。
ERROR! Attempting to decrypt but no vault secrets found使用密码文件
对于无人值守的运行,请指定 --vault-password-file,而不是手动输入密码。请将该文件排除在 Git 之外,并严格限制其访问权限。
ansible-playbook site.yml --vault-password-file ~/.vault_pass在 ansible.cfg 中设置
要避免每次都使用选项,请在 ansible.cfg 的 vault_password_file 下声明密码文件。
[defaults]
vault_password_file = ~/.vault_pass或使用环境变量
ANSIBLE_VAULT_PASSWORD_FILE 环境变量可以完成相同的工作,在无法编辑配置的 CI 环境中尤其方便。
export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass用 Vault ID 管理多个机密
使用 --vault-id 管理多个密码,并为每个密码添加标签,从而让开发环境和生产环境的机密使用不同的密钥。
ansible-playbook site.yml --vault-id prod@~/.vault_prod其他命令也适用
相同的选项也适用于 ansible 临时命令和 ansible-vault 命令本身,而不仅仅是 ansible-playbook。
ansible all -m debug -a "msg={{ db_password }}" --ask-vault-pass妥善保管密码
Vault 的安全性取决于您存储其密码的位置。请使用机密管理器或受限文件,绝不要将其提交到版本库。
用脚本提供密码
Vault 密码文件甚至可以是一个可执行脚本,由它打印密码,从而从 Vault 服务器获取机密。
ansible-playbook site.yml --vault-password-file get-pass.sh快速检查
您运行一个读取 Vault 加密变量的 playbook,并希望只输入一次密码。
回顾
您可以使用 --ask-vault-pass、密码文件或环境变量在运行时解锁机密。Ansible 只在内存中解密。✨
常见问题解答
「使用 --ask-vault-pass 在运行时解密」课时是免费的吗?
是的 — 「使用 --ask-vault-pass 在运行时解密」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ansible Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ansible Academy 课程共包含 4 节课。
「使用 --ask-vault-pass 在运行时解密」这节课中我会学到什么?
为 Play 提供密码 你通过在浏览器中直接运行的动手代码来练习 Ansible Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ansible Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ansible Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「使用 --ask-vault-pass 在运行时解密」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ansible Academy 课中编写并运行代码吗?
能。每节 Ansible Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 ansible-vault create 加密文件
- 编辑、查看和重新设置 Vault 文件密钥
- 在行内加密单个变量
- 使用 --ask-vault-pass 在运行时解密