我正在实现v2_playbook_on_task_start(self, task, is_conditional)
的逻辑,并希望获取应该在其中运行任务但目标名称未在Task对象中公开的目标主机的主机名。
是否可以通过此回调获取目标主机?
答案 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 }}
。