GitLab Webhook触发双活架构Jenkins服务的验证问题求助
双活Jenkins架构下GitLab Webhook触发失效问题
我有一套采用**双活(Active-Active)**架构的Jenkins服务,同一个URL https://test-jenkins.ocado.com 可路由至两台Jenkins服务器中的任意一台。需求是GitLab仓库发生变更时,通过Webhook触发关联的Jenkins流水线Transformer。
初始配置与问题
- 在Jenkins流水线
Transformer的Configuration→General→Build Triggers中,勾选Build when a change is pushed to GitLab,对应的Webhook URL为https://test-jenkins.ocado.com/project/Transformer,保留Push Events等默认选项,且必须在Advanced中生成Secret Token(留空无法正常工作)。 - 在GitLab仓库的Webhook设置里,填入上述URL和Jenkins生成的Secret Token。
但该配置仅适配单台Jenkins场景,双活架构下存在核心问题:
- GitLab Webhook仅支持填写一个Secret Token,而两台Jenkins的Secret Token无法设置为相同值(必须由各自Jenkins生成),导致Webhook请求被路由到哪台Jenkins,只有那台能触发成功,另一台因Token不匹配无法生效。
尝试方案及报错
我尝试改用Jenkins的Trigger builds remotely (e.g., from scripts)选项替代GitLab专属触发项:
- 给两台Jenkins设置了相同的
Authentication Token(例如"abc")。 - 根据该选项提示的触发URL格式,在GitLab Webhook中填入
https://test-jenkins.ocado.com/job/Transformer/build?token=abc,并留空Secret Token字段。
但触发时返回403错误:
Hook executed successfully but returned HTTP 403 Error 403 No valid crumb was included in the request
内容的提问来源于stack exchange,提问作者ooalgomaniac
相关产品推荐
相关产品推荐

