【Jenkins+gitee+docker实现CI/CD(之三)】 jenkins拉取gitee代码WebHook返回403或404错误
先上几张让我纠结了很多天的截图
以上是在我配置好jenkins和gitee令牌后一直出现的错误,
查询了很多天资料后,确认造成的主要原因就是权限问题
我的Jenkins 是最新的版本2.426.2,说下以下我使用过但无效果的办法,这些方法不能解决我提交代码后Jenkins触发WebHook的403问题
// 1,修改jenkins.service文件中的csrf开关 【无效】 vim /usr/lib/systemd/system/jenkins.service Environment="JAVA_OPTS=-Djava.awt.headless=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true" // 2,修改config.xml文件中的csrf开关 【无效】 vim /root/.jenkins/config.xml <crumbIssuer class="hudson.security.csrf.DefaultCrumbIssuer"> <excludeClientIPFromCrumb>true</excludeClientIPFromCrumb> </crumbIssuer> // 3,修改系统管理->全局安全配置中的(匿名用户具有可读权限)+(启用代理兼容)【无效】 // 4,修改系统管理->全局安全配置-> 工具和动作 -> 脚本命令行 中的(关闭csrf开关)【无效】 Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true // 此步与第一步上效果一样,只是运行命令行后jenkins重启后需要重新执行,第一步中写入配置文件中一直执行 // 5,查看jenkins在服务器上的出行端口一否开放【一直开放中】 // 6,查看服务器防火墙状态【一直开放中】 // 7,更换jenkins中使用的gitee令牌【无效】 // 8,更换gitee中的jenkins中的WebHook 密码/签名密钥和URL【无效】 // 9,使用(http://jenkins用户名:jenkins密码@url:8080/jenkins/gitee-project/vue3-admin)+ 签名密钥【无效】
解决办法:不使用jenkins的签名密钥和项目URL去触发GITEE的WebHook,而是使用token鉴权。
1,安装生成token的jenkins插件(Generic Webhook Trigger)
2,生成token,并配置jenkins项目中的token
http://你的jenkins地址:8080/generic-webhook-trigger/invoke?token=11ee5afsdfsdfdsfsdf
3,配置gitee中的WebHook
4,点击重新发送或使用其他git工具提交gitee代码,就可以触发jenkins自动构建啦