ansible vault 可以加密插件配置文件中的值吗?

Can ansible vault encrypt values in plugin configuration files?

我正在为 ansible 编写一个动态清单插件,它从 API 中提取设备信息并将其添加到清单中。要配置我的插件,我需要从我的插件配置 yaml 文件中检索到的服务的用户名和密码

plugin_conf.yaml:

plugin: my_inventory_plugin
host_location: api.example.com
port: 443
user: some_user
password: some_pass

由于在版本控制下将凭证存储在文件中是不好的,ansible vault 是否支持加密存储在插件配置文件中的值的功能?

即我的插件的用户可以做类似

的事情吗
plugin: my_inventory_plugin
host_location: api.example.com
port: 443
user: !vault|
          $FOO;1.1;AES256
          blah blah
password: !vault|
          $BAR;1.1;AES256
          something else

不管他们使用不安全的明文还是 ansible 保险库,我的插件仍然可以使用 self.get_option('user') 方法获取值?

我自己测试了一下,答案是肯定的。 如果用户使用 ansible vault 加密字符串,使用 -n 设置机密名称,他们可以在我的配置文件中使用变量名称。我的插件不需要特殊处理案例来处理纯文本凭据或 ansible 保险库凭据。