Jenkins是什么?
Jenkins是一款java开发的功能强大的持续集成,持续发布工具,与之相对应的还有Drone这个工具,这里我们主要介绍Jenkins。
为什么使用Jenkins
- 安装和配置灵活方便,支持多种方式安装(docker、软件包、war包、源码)
- 配置 方便可视化操作
- 丰富的插件
- 可扩展,分布式架构(master-slave)
环境信息
操作系统:ubuntu 16.04
java:1.8.0_161-b12
jenkins: 2.89.4
部署gitlab
1 | docker run --detach \ |
安装Jenkins
jenkins的安装方式有多种,有通过容器方式安装的,有通过rpm包和deb包方式安装还有通过war包安装的,这里使用deb包方式安装。
因为Jenkins是基于java开发的所以我们先配置java环境
先安装jdk8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装
1 | mkdir /usr/local/jdk1.8/ |
配置环境变量
编辑/etc/profile
1 | export JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_161 |
1 | source /etc/profile |
测试
安装Jenkins
1 | wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - |
启动
1 | systemctl start jenkins |
访问
Jenkins默认是访问8080端口
从图上给的路径获取默认密码
安装方式标准安装和自定义安装,标准安装主要进行一些标准插件的安装,自定义安装就是自己可以选择插件进行安装。这里我们选择标准安装
等待安装完
安装完,设置用户名和密码
这边我们与gitlab做对接所以需要安装gitlab插件
系统管理—>管理插件—–>可选插件—->gitlab plugin
安装完成后配置gitlab plugin
系统管理—>系统配置
输入gitlab的地址
还有填写gitlab的 access token
先去gitlab申请
将token保存好
配置credentials
kind那选gitlab token,然后add
给gitlab配置公钥,用于pull和push代码,哪台机器需要从gitlab上拉取和上传代码就需要配置,这里Jenkins节点需要,当然也可以直接在Jenkins上配置用户名和密码去连接
在gitlab的SSH keys处贴上机器的公钥,注意区分机器
Jenkins上创建个job
点击确定
可以看见这里连接上了我们刚刚配置Jenkins gitlab-plugin的配置
源码管理
可以用ssh的连接也可以用http的连接,我这里用ssh的因为我改了默认gitlab的ssh端口所以链接需要改一下
如果gitlab 的ssh用的不是默认的22端口需要改成如下
ssh://git@ip:ssh_port/wanshaoyuan/wanshaoyuan.git
1、增加了ssh://
2、增加了端口号
3、把用户名前面的冒号改成了斜杠(/)
因为我们还没有配置credentials所以会报错点击旁边add配置credentials
用户名填写你生成公钥写的用户名private key填写你的私钥
然后就不会报错了,同时我这里选择的也是master分支
触发器这里有几种方式
分别解释下
Build after other projects are built 当另一个构建任务完成之后触发
Build periodically 周期性的触发
Build when a change is pushed to GitLab. GitLab CI Service URL: http://191.8.2.112:12000/project/test-go-dev 当代码有更新的时候触发,通过GitLab CI
GitHub hook trigger for GITScm polling 通过Github钩子触发
Poll SCM 定期检查代码有无更新,有更新时触发
这里我们使用Build when a change is pushed to GitLab. GitLab CI Service URL的方式,因为使用定时检查的话对Jenkins压力会很大的,使用webhook的方式,当gitlab有push代码或其他方式时会通知Jenkins,所以这里还需要配置gitlab的webhook
复制Build when a change is pushed to GitLab. GitLab CI Service URL: 后面那串地址链接
打开gitlab
输入刚刚那串url
默认触发器是push事件时,触发webhook,需要注意的是因为我们这里的Jenkins配置了用户名和密码所以
url需要在原来基础上添加用户名和密码其他不变
格式为
http://username:password@192.168.1.4:1080/project/dashboard-build
点击test按钮进行测试,返回状态码为200表示配置正确。
如果同网段Jenkins webhook 返回500,需要用root帐号登录进gitlab
setting–>勾上Allow requests to the local network from hooks and services
构建
这里我们选执行shell
做个简单的操作比如说我git push一个test.txt的文件上去,然后用构建命令就去读取这个文件
应用并保存
然后我们push到test.txt到wanshaoyuan这个project
写这样一段话
1 | git add . |
可以看见Jenkins很快触发了构建
查看输出