小编Sam*_*m F的帖子

如何在Ansible 2中将回调插件添加到PlaybookExecutor

通过其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版本)

先感谢您!

python ansible ansible-playbook ansible-2.x

3
推荐指数
1
解决办法
5143
查看次数

标签 统计

ansible ×1

ansible-2.x ×1

ansible-playbook ×1

python ×1