使用个人令牌注册GitLab Runner时遭遇403错误求助
问题分析与解决
你的核心问题是GitLab Runner注册时参数使用错误,导致403权限禁止错误,具体原因和修正方案如下:
错误原因
gitlab-runner register命令中,--token参数是用于验证已注册Runner的身份令牌,而非用于注册新Runner的个人访问令牌(PAT)。当你传入PAT到--token参数时,GitLab会将其当作已存在的Runner令牌进行验证,自然会返回403错误。
而Web界面生成的是Runner注册令牌,对应命令中的--registration-token(或简写-r)参数,所以能正常注册。
修正方案
使用个人访问令牌(PAT)注册Runner时,需要替换参数为--access-token,同时确保你的PAT权限配置正确:
1. 确认PAT权限
你已为PAT设置了create_runner scope,这个权限适用于注册实例级共享Runner。如果需要注册项目级Runner,需将PAT的scope改为api,并确保该用户对目标项目拥有Maintainer及以上权限。
2. 修改注册命令
将原注册命令中的--token替换为--access-token:
docker exec -it $gitlab_runner_hash gitlab-runner register --non-interactive --url "http://url.site" --access-token "1111111111111111" --executor "shell" --description "shell-runner"
额外说明
命令中出现的警告WARNING: If you want to register use the '-r' instead of '-t'.,是在提示你注册新Runner应使用--registration-token(-r)参数,这对应Web界面生成的注册令牌;而使用PAT注册时,则需要用--access-token参数,两者用途不同。
内容的提问来源于stack exchange,提问作者user27912911
相关产品推荐
相关产品推荐

