Ansible Vault是否支持加密动态清单插件配置文件内的配置值?
结论
Ansible Vault 完全支持加密动态清单插件配置文件内的单个配置值,你不需要做额外的解密适配,不管用户配置的是明文还是加密后的 Vault 值,都可以直接通过 self.get_option('user') 拿到解密后的明文。
底层逻辑
所有插件(包含动态清单插件)的配置加载逻辑由 Ansible 核心层统一处理,Ansible 解析配置 YAML 时会自动识别 !vault 标签,只要用户提供了正确的 Vault 密码,核心层会在把配置值传递给插件前自动完成解密,插件侧感知不到值是否被加密过。
插件需要满足的前提
- 插件必须继承 Ansible 官方提供的
ansible.plugins.inventory.BaseInventoryPlugin基类开发 - 所有配置项需要在插件的
DOCUMENTATION代码块中正确声明
快速验证方法
你可以通过以下步骤自行测试效果:
- 执行命令生成加密测试值:
按提示输入 Vault 密码后,会得到标准的ansible-vault encrypt_string 'test_user' --name 'user'!vault格式加密字符串 - 将加密字符串替换配置文件中的明文
user字段值 - 执行清单查询命令验证:
输入正确的Vault密码后,你在插件中通过ansible-inventory -i 你的插件配置文件.yaml --list --ask-vault-passself.get_option('user')获取到的就是解密后的test_user明文。
内容的提问来源于stack exchange,提问作者rsn
相关产品推荐
相关产品推荐

