我创建不同的剧本在不同的操作ansible。
我还为不同类型的剧本创建了不同的回调脚本(并将其与Ansible打包并安装)。
可以从许多不同的脚本/定时作业中调用剧本。
现在,可以为特定的剧本指定callback script
要调用的特定内容吗?(可能使用命令行参数吗?)
现在发生的是,每个剧本都会调用所有Callback脚本。
我无法将其callback script
相对于剧本的位置/文件夹,因为它已经打包在ansible软件包中。同样,所有剧本也位于同一位置。
如果需要的话,我也可以修改一些可处理的源代码以适应它。
看完Ansible的代码后,我可以使用以下代码解决它...
在每个中callback_plugin
,您可以指定,self.disabled = True
并且根本不会调用该回调...
此外,它调用的剧本,有一个选项,以解析额外的参数作为key=value
对。它将作为playbook对象的一部分extra_vars
。
所以我在电脑上做了这样的事情callback_plugin
。
def playbook_on_start(self):
callback_plugins = self.playbook.extra_vars.get('callback_plugin', '') // self.playbook is populated in your callback plugin by Ansible.
if callback_plugins not in ['email_reporter', 'all']:
self.disabled = True
在调用剧本的同时,我可以做类似的事情,
ansible-playbook -e callback_plugin=email_reporter //Note -e is the argument prefix key for extra vars.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句