一、安装并启动jenkins
- Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
- Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行
- CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
- CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。
官方链接:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
[root@server2 ~]# ls
jdk-8u171-linux-x64.rpm jenkins-2.293-1.1.noarch.rpm
[root@server2 ~]# rpm -ivh jdk-8u171-linux-x64.rpm
[root@server2 ~]# rpm -ivh jenkins-2.293-1.1.noarch.rpm
[root@server2 ~]# cd /var/lib/jenkins/
[root@server2 jenkins]# ls
[root@server2 jenkins]# systemctl start jenkins
[root@server2 jenkins]# netstat -antlp
出现错误,忽略继续
二、创建jenkins项目
-
环境:server1:gitlab仓库 server2:jenkins服务器
-
创建test项目,实现能够根据gitlab的Dockerfile触发,完成镜像构建、push镜像到本地仓库的功能
gitlab仓库添加jenkins服务器端的密钥,实现免密连接。
在jenkins项目配置部分做如下配置
添加测试命令
-
上述方式需要jenkins服务器对gitlab轮询检测来发现更改并构建,这种方式不够实时,我们需要设计一种方式能够实现gitlab主动触发jenkins服务器来完成构建。
-
这种方式的实现需要安装gitlab插件
触发令牌,只有令牌的持有者才能完成对jenkins的触发
gitlab中添加jenkins的触发接口及触发令牌
在server1更改内容并push到仓库,查看是否主动触发jenkins完成构建
[root@server1 demo]# vim index.html
[root@server1 demo]# git commit -a -m "v1"
[master 96429fc] v1
1 file changed, 2 insertions(+)
[root@server1 demo]# git status -s
[root@server1 demo]# git push -u origin master
gitlab仓库中文件更改主动触发jenkins,完成最新一次的构建