0. 前言
和同事做网站,我负责后端代码开发。每次写完代码,都要打包上传到服务器,手动执行脚本,太累。我一直跟我的小兄弟们说,如果一件事情要做3遍以上,你就需要考虑自动化。今天弄个Jenkins做自动化部署,从繁重的手动操作中解放出来。
1. 配置yum源并安装Jenkins
CentOS官方yum源未提供Jenkins ,需要配置yum.repo。
0. 下载yum.repo文件
1 | wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo |
把jenkins.repo
文件下载到/etc/yum.repos.d/
目录下看到
1. 导入公钥
1 | rpm --import http://pkg.jenkins.io/redhat-stable/jenkins.io.key |
2. 安装
1 | yum install jenkins |
3. 配置
Jenkins工作目录为/var/lib/jenkins/
,配置文件位于/etc/sysconfig/jenkins
Jenkins默认端口为8080,8080我已经使用了,所以改成其他端口,并在Nginx反向代理到该端口。
Jenkins会使用/usr/bin/java
作为默认Java安装位置,修改java所在位置为正确位置。
4. 启动
1 | service jenkins start |
注意:这里启动可能失败。我遇到的问题是配置文件里的修改没起作用。我把应用的8080改成其他端口了,并且建了一个软连接:
1 | ln -s /xxx/xxx/java /usr/bin/java |
update:我第二次安装的时候仍然启动失败,报找不到java的错误。google了一圈,发现Jenkins用systemctl启动时读取的是/usr/lib/systemd/system/jenkins.service
。删掉这个文件,在/etc/init.d/jenkins
配置好java路径,启动成功
2. 配置Jenkins工具、插件
在浏览器打开Jenkins,需要输入/var/lib/jenkins/secrets/initialAdminPassword
文件中的安全码,设置好用户名及插件
在体统管理->全局工具配置中,根据实际目录配置java、maven、git等信息。
因为要在构建成功后启动spring boot程序,还要安装build post task
插件。
3. 开始使用
点击新建任务,输入任务名。因为只是为了实现自己简单的部署,选择第一个选项:构建软件项目。
逐项开始设置:
General
我只选择了丢弃旧的构建,保留最多5个构建记录
源码管理
选择Git,填入repository地址和响应的credential,选择对应的分支
构建触发器
直接选轮询
* * * * *
每分钟检测一次代码更新构建环境
构建
调用之前设置的maven配置,目标填clean package
构建后操作
选择post build task,输入脚本执行cp和sh start.sh命令,勾选只有之前所有步骤全部成功时才执行
4. 坑
权限问题。
执行构建不成功,查看log发现下载依赖时出错。把maven本地仓库所有者改成了jenkins解决了
有些人遇到启动程序后被kill掉的问题,在执行脚本时修改BUILD_ID解决问题。我没遇到