Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Ansible中,如何访问回调插件中提供给playbook的额外参数?_Python_Ansible - Fatal编程技术网

Python 在Ansible中,如何访问回调插件中提供给playbook的额外参数?

Python 在Ansible中,如何访问回调插件中提供给playbook的额外参数?,python,ansible,Python,Ansible,我正在尝试编写一个回调插件,它将为每个任务计时。这并不是困难的部分。 但是我有一系列的剧本,它们运行来提供和配置一个实例。对于序列的每一次运行,我希望向每个剧本传递一个runID,并且该runID在一次运行中保持不变,如下所示: ansible-playbook -e "runID=seq198837" provision.yml ansible-playbook -e "runID=seq198837" build.yml ansible-playbook -e "runID=seq19883

我正在尝试编写一个回调插件,它将为每个任务计时。这并不是困难的部分。 但是我有一系列的剧本,它们运行来提供和配置一个实例。对于序列的每一次运行,我希望向每个剧本传递一个runID,并且该runID在一次运行中保持不变,如下所示:

ansible-playbook -e "runID=seq198837" provision.yml
ansible-playbook -e "runID=seq198837" build.yml
ansible-playbook -e "runID=seq198837" deploy.yml
我正在编写的回调插件必须收集插件中每个任务的时间信息,用runID标记它们,并将它们存放到日志代理


我在回调插件中尝试了几个钩子和事件,但无法将runID额外参数传递到playbook。有什么方法可以访问该变量吗?

您可以从
play
对象获取该变量,并且您可以在
中的\u play\u start
上访问该变量

像这样:

def v2_playbook_on_play_start(self, play):
    vm = play.get_variable_manager()
    extra_vars = vm.extra_vars
    self.run_id = extra_vars['runID']
然后,当您将结果转储到\u stats上的
中的某个位置时(例如),您可以引用
self.run\u id
来访问您的
runID
额外变量