Vault 配置加密
类 ansible-vault 的文件加密:inventory / playbook 整体加密后可以直接被 run / ping / exec 使用,密码、密钥不再以明文落盘。
子命令
anx vault encrypt inventory.yml # 就地加密(交互输入密码)
anx vault view inventory.yml # 解密查看(不落盘)
anx vault edit inventory.yml # 用 $EDITOR 编辑(明文只在临时文件)
anx vault rekey inventory.yml # 更换密码
anx vault decrypt inventory.yml # 就地解密使用加密文件
密码来源三选一,优先级从高到低:
| 方式 | 用法 |
|---|---|
| 密码文件 | --vault-password-file .pw |
| 交互输入 | --ask-vault-pass |
| 环境变量 | ANX_VAULT_PASSWORD=xxx anx run ... |
anx run site.yml -i inventory.yml --ask-vault-pass # 交互输入
anx run site.yml -i inventory.yml --vault-password-file .pw # 密码文件
ANX_VAULT_PASSWORD=xxx anx run site.yml -i inventory.yml # 环境变量文件格式与密码学
$ANX_VAULT;1.0;AES256-GCM;ARGON2ID
<base64 载荷: salt(16) || nonce(12) || ciphertext>密钥派生使用 Argon2id(抗 GPU 暴力破解),加密使用 AES-256-GCM 认证加密——同时提供机密性与完整性,密文被篡改会直接解密失败。
推荐做法:含
password / become_password 的 inventory 一律加密入库,CI 里用 ANX_VAULT_PASSWORD 环境变量或密码文件解锁。