gitee码云+jenkins+nginx部分配置问题解决
码云整合jenkins
前言
由于在部署gitee与jenkins的时候找了很多资料,踩了很多坑,所以写了此片博客希望可以帮助到需要的人
正文
至于怎么jenkins怎么安装和gitee账号怎么申请,就不再叙述了,这些网上有很多的资料。主要讲需要注意的部分。
注意点
①在jenkins设置与nginx代理的时候出现的问题
当我设置nginx访问/jenkins 的时候转发到我的jenkins所在端口,但是始终跳转失败
nginx配置如下图当我访问的的时候出现404页面,如下
其实这个并不是nginx配置无效的问题,实际上nginx是转发到了该端口,但是在跳转过程被jenkins把根路径修改为空了,可以去查看jenkins的配置文件(/etc/sysconfig 路径下面的jenkins文件),此处的jenkins_args路径为"",这就导致了我们访问到jenkins的时候路径出现404了
解决这个问题的是把JENKINS_ARGS="–prefix=/jenkins",如图
改完后重新启动jenkins(systemctl restart jenkins【不同服务器命令可能不同】),重启完成之后我们再来看看效果图
这里我们成功进入到jenkins的登录页面,可以看到路径自动加上了/jenkins
②问题二,当我们构建项目的时候使用shell脚本想要把我们的文件复制或者移动到指定目录,始终报错,产生该问题的原因是,jenkins在操作的时候使用的是jenkins账号,这个账号并没有创建目录的权限,就导致了文件始终无法创建的问题,如下图,jenkins默认使用的用户是jenkins,这个用户没有权限,配置文件路径(/etc/sysconfig 路径下面的jenkins文件)
解决这个问题最简单的方式就是把该用户改为root账户,如下图
③问题三,码云与jenkins进行webhooks推送的时候的问题
在使用码云的webhooks进行代码消息发送的时候jenkins返回403,出现这个问题是由于jenkins用户验证授权的问题,问题图如下解决此问题有两点
①系统管理 > 全局安全配置 > 去掉防止跨站点请求伪造
②http://用户id:用户[email protected]地址/工作空间加webhooks的token
解决①的图如下
解决②有两个注意事项
http://用户id:用户[email protected]地址/工作空间加webhooks的token
这里的用户id获取路径如下图用户token获取为 系统管理>管理用户>选中对应用户> API Token 生成一下即可(注意此处的用户id和token要对应)如下图
此处讲下码云的webhooks里面的url是怎么来的
这个路径还是无法使用的,还需要配置用户授权信息,集我前面获取的用户id和token,如下即可
http://用户id:用户[email protected]地址/工作空间加webhooks的token
请求通过