开启管理员部署限制后,如何让定时Bitbucket Pipeline正常运行?
Bitbucket定时流水线突破管理员部署权限限制的解决办法
Bitbucket的定时任务默认是用系统内置的bitbucket-pipelines账号触发的——哪怕是管理员创建的任务,这个账号也不属于管理员组,所以会被「仅允许管理员部署」的规则拦截。给你几个可行的解决办法:
用管理员个人访问令牌(PAT)触发定时任务
- 用你的管理员账号生成个人访问令牌,权限必须勾选
pipelines:write、repository:write和deployment:write,尽量只开必要权限,降低泄露风险。 - 创建定时任务时,别用默认触发选项,选「自定义触发」,把生成的PAT填进去。这样定时任务就会以管理员身份执行,自然能绕过权限限制。
- 用你的管理员账号生成个人访问令牌,权限必须勾选
给环境加白名单放行定时任务
- 打开目标环境的配置页面,找到「部署权限」设置。
- 保留「仅允许管理员部署」的勾选,同时添加一条新规则:选择「流水线触发器」类型,指定你的定时任务名称或ID,将其加入允许部署的白名单。这样定时任务触发的流水线就能直接部署到该环境,不受触发身份限制。
调整流水线配置的部署逻辑
如果前两种方法不方便,你可以在bitbucket-pipelines.yml里给定时任务的部署步骤单独配置触发规则:pipelines: schedules: - cron: "0 0 * * *" name: Daily Production Deploy deployment: production trigger: manual之后用管理员的PAT来触发这个手动部署步骤,不过这种方法需要额外配置触发脚本,不如前两种直接。
注意:生成的PAT要妥善保管,一旦泄露立即作废重新生成。
内容的提问来源于stack exchange,提问作者Fredericson
相关产品推荐
相关产品推荐

