Ansible 2.3.1回调插件:调用v2_playbook_on_task_start时如何获取目标主机

时间:2018-07-06 16:39:44

标签: callback ansible

我正在实现v2_playbook_on_task_start(self, task, is_conditional)的逻辑,并希望获取应该在其中运行任务但目标名称未在Task对象中公开的目标主机的主机名。

是否可以通过此回调获取目标主机?

1 个答案:

答案 0 :(得分:1)

看看Ansible代码的结构以及在2.3.1中如何执行东西,看起来并没有办法在上述回调中获取主机名。

A PlayIterator object and PlayContext is constructed inside TaskQueueManager.run(), then this PlayIterator object gets passed to a preselected "strategy" which does the task executions。问题出在这些“策略”的实现内部,例如“免费”策略,代码loops through the list of hosts but does not pass the host details to the callback。由于Templar需要主机名作为参数,因此无法使用Templar手动模板{{ inventory_hostname }}