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

时间:2018-03-01 15:22:31

标签: python ansible

我试图编写一个回调插件来计算每个任务的时间。这不是困难的部分。 但我有一系列运行来配置和配置实例的剧本。对于序列的每次运行,我想将runID传递给每个playbook,并且runID对于一次运行是常量,如下所示:

(MKAnnotationView.image) position

我写的回调插件必须收集插件中每个任务的时间信息,用runID标记它们并将它们存放到日志代理中。

我在回调插件中尝试了几个钩子和事件但是无法将runID额外参数传递给playbook。有没有办法访问该变量?

1 个答案:

答案 0 :(得分:3)

您可以从play对象获取该内容,然后可以在on_play_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']

然后,当您将结果转储到on_stats中的某个位置时(例如),您可以引用self.run_id来访问runID额外变量。