通过其API调用ansible时如何指定回调?
我有一个database_write.py用于ansible 2.0.0.2 的回调插件,该插件在运行时登录数据库:
ansible-playbook -i inventory.txt playbook.yml # callback is fired ok
Run Code Online (Sandbox Code Playgroud)
这行得通,因为在我的$ PWD中我有ansible.cfg以下一行:
callback_plugins = ./src/callback
Run Code Online (Sandbox Code Playgroud)
现在,我试图使用python API来执行我的剧本和回调。我基本上已经复制了ansible-playbook cli工具的功能
# based on https://github.com/ansible/ansible/blob/v2.0.0.2-1/lib/ansible/cli/playbook.py
pbex = PlaybookExecutor(playbooks=['../playbook.yml'],
inventory=inventory,
variable_manager=variable_manager,
loader=loader,
options=options,
passwords=passwords)
results = pbex.run()
Run Code Online (Sandbox Code Playgroud)
这样可以很好地执行剧本,但不会触发回调。
我猜在使用python API时,我的ansible.cfg文件没有被考虑在内吗?
如何为PlaybookExecutor指定回调插件?
(我发现的大多数文档适用于<2.0版的ansible版本)
先感谢您!