我正试图找出如何为Python脚本提供以下功能,以便它能够:
ansible.cfg
并读取vault_password_file
变量vault_password_file
并临时存储在Python变量中我找到了this code via google但当我尝试时它似乎不起作用:
import ansible.utils
bar = dict()
bar = ansible.utils._load_vars_from_path("secrets.yml", results=bar, vault_password="password")
print bar
引发此错误:
$ python ansible-vault-ex.py
Traceback (most recent call last):
File "ansible-vault-ex.py", line 5, in <module>
bar = ansible.utils._load_vars_from_path("credentials.vault", results=bar, vault_password="password")
AttributeError: 'module' object has no attribute '_load_vars_from_path'
当我调查这一点时,我在任何Ansible相关文件中都没有看到这个函数的迹象,这使我相信这个方法不再适用于Ansible的一些较新版本。
总之,我想要一些从Python脚本导入Ansible库/模块的方法,这样我就可以通过Python编程与ansible-vault
托管文件交互。
如果已在ansibe.cfg中配置了一个保险库密码文件,则可以按以下步骤将密码传递给保险库库库
导入:
然后,你可以打电话给:
扩展Kuba的答案,ansible vault是VaultLib的包装器。它很好地处理了Vaultlib的pre-Ansible 2.4版本和post2.4版本。
ansible vault load()方法不仅可以解密文件,还可以对其进行解析,并将内容作为dict返回。如果您希望不进行解析就获得内容,则可能最简单的方法是使用以下内容扩展ansible vault:
考虑使用ansible-vault package
安装方法:
然后就简单到:
要使用ansible代码,请直接查看该包的source。最简单的方法是:
Ansible<;=2.3
Ansible>;=2.4
源代码的数量是相等的,但是包提供了自动yaml解析+两个Ansible版本的处理。
相关问题 更多 >
编程相关推荐