安装环境 ubuntu18.04 openjdk 11.0.19 Jenkins版本2.415
在个人电脑上安装Jenkins之后,需要打通jenkins与gitee,使得代码库发生改动的时候可以自动触发构建;在这个过程中会遇到一些问题,此处简记。
1、在个人电脑上安装Jenkins后,由于使用的网络是公司内网,所以将“Gitee webhook URL: http://10.5.100.187:8080/gitee-project/test_pipeline”填写到gitee中后,因为gitee服务器处于公网,也只会访问可以在公网内访问到的ip,我自己的工作电脑用的是公司内网ip,gitee也就无法访问到Jenkins服务。
解决方法:此时需要使用”贝锐花生壳“的内网穿透功能,花生壳会在内网IP与公网IP之间搭建一座桥梁,这样公网服务器就可以先访问到花生壳提供的公网域名然后再访问到公司内网域名。
因为Gitee是先访问外网ip,所以在Gitee webhook实际填入的是外网域名,不是Jenkins原本提供的URL。需要将“ http://10.5.100.187:8080/gitee-project/test_pipeline”改成“https://379997r4z9.zicp.fun/gitee-project/test_pipeline”。对于Jenkins和网络知识,我也不是很了解,这里https://379997r4z9.zicp.fun域名应该也包含了端口信息,所以不需要再如“http://10.5.100.187:8080”一样后缀端口号;此外“/gitee-project/test_pipeline”这一项也是必须要写的,这可能和Jenkins响应gitee的特定服务有关,如果不添加这项信息,是无法触发使用gitee作为scm的任务构建的,这一项的作用应该就是在Jenkins中指定scm使用gitee的任务了。
Gitee webhook 触发构建,需要在 Gitee webhook 中填写 URL: http://10.5.100.187:8080/gitee-project/test_pipeline
外网域名https://379997r4z9.zicp.fun 外网端口443
内网域名http://10.5.100.187 内网端口8080
2、就是权限问题,Jenkins在Ubuntu系统安装好后,Jenkins在系统中所有的操作实质上就是以一个普通系统用户的权限在执行命令步骤,所以要给Jenkins赋予root用户权限,并且需要Jenkins操作的文件用户要变更为jenkins,不然Jenkins无法操作此类文件。此外Jenkins需要访问远程仓库的时候,需要使用git公钥,这个公钥也要是用户为Jenkins时生成的,如果是其他用户生成的公钥,Jenkins是无法使用的,也就无法访问远程仓库。
文件权限
git权限
仓库权限