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

2024-06-15 07:27:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个回调插件,它将为每个任务计时。那不是最难的部分。 但是我有一系列的剧本,它们运行来配置和配置一个实例。对于一个序列的每次运行,我想向每个playbook传递一个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。有什么方法可以访问这个变量吗?在


Tags: 实例build插件yml时间序列ansibledeploy
1条回答
网友
1楼 · 发布于 2024-06-15 07:27:44

您可以从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额外变量。在

相关问题 更多 >