ansible-vault edit 是最安全标准的方式,它内存中解密→编辑→重新加密,不落地明文;直接用 vim/nano 会破坏 $ANSIBLE_VAULT;1.1;AES256 格式导致解密失败。

用 ansible-vault edit 是最安全、最标准的方式。它不会让明文内容落地到磁盘,整个过程在内存中完成解密 → 编辑 → 重新加密,原始加密文件始终受保护。
为什么不能直接用 vim/nano 打开编辑?
加密文件开头有 $ANSIBLE_VAULT;1.1;AES256 标识和密文块,直接编辑会破坏格式,导致后续无法解密。即使强行修改,Ansible 运行时会报错 “Invalid vault format” 或 “Decryption failed”。
正确操作流程
执行以下命令即可安全编辑:
-
基础用法(交互式输密码):
ansible-vault edit secrets.yml—— 输入密码后自动打开默认编辑器(如 vim),保存退出即重新加密 -
指定密码文件(适合自动化场景):
ansible-vault edit --vault-password-file ~/.vault_pass secrets.yml—— 密码文件需严格设为chmod 600 -
多 Vault ID 场景(如不同环境不同密码):
ansible-vault edit --vault-id prod@prompt secrets.yml—— 只对 prod 环境的凭据解密
编辑前的小提醒
确保你正在编辑的是真正的加密文件(cat secrets.yml 应看到以 $ANSIBLE_VAULT; 开头的密文);如果看到的是明文 YAML,说明它还没被加密,应先运行 ansible-vault encrypt secrets.yml。
其他常用配套操作
- 想确认内容是否正确?用
ansible-vault view secrets.yml查看明文(不修改) - 想换密码?用
ansible-vault rekey secrets.yml,输入旧密码再设新密码 - 误删了变量或格式乱了?可先
ansible-vault decrypt secrets.yml解密备份,再用ansible-vault create重建


















