我试图弄清楚如何为 Python 脚本提供以下设施,以便它可以:
- 导入 Ansible Python 模块
- 打开我定义
ansible.cfg
和读取的vault_password_file
变量 - 读取
vault_password_file
并临时存储在 Python 变量中 - 解密引用的 Ansible 保管文件
我通过谷歌找到了这段代码,但是当我尝试它时它似乎不起作用:
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 库/模块的方法,这样我就可以ansible-vault
从 Python 以编程方式与托管文件进行交互。