gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 09:47:58 25 4
gpt4 key购买 nike

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

ansible-playbook -e "runID=seq198837" provision.yml
ansible-playbook -e "runID=seq198837" build.yml
ansible-playbook -e "runID=seq198837" deploy.yml

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

我在回调插件中尝试了几个钩子(Hook)和事件,但无法获得传递给剧本的 runID 额外参数。有什么方法可以访问该变量吗?

最佳答案

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

关于python - 在 Ansible 中,如何访问回调插件中提供给 playbook 的额外参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49052942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com