jenkins的搭建与springboot项目的自动部署
文章目录jenkins的安装jenkins的安装下载jenkis的rpm包(官网)安装rpm包rpm -ivh jenkins-2.7.3-1.1.noarch.rpm配置jenkins的端口vi /etc/sysconfig/jenkins找到修改端口号:JENKINS_PORT=“8080”此端口不冲突可以不修改配置java环境,修改/etc/init.d/...
文章目录
jenkins的安装
rpm -ivh jenkins-2.7.3-1.1.noarch.rpm
- 配置jenkins的全局设置
vi /etc/sysconfig/jenkins
-
修改端口,默认8080
找到修改端口号:
JENKINS_PORT=“8080” 此端口不冲突可以不修改 -
修改默认用户
JENKINS_USER=“root” -
修改jenkins默认路径(/var/lib/jenkins)
JENKINS_HOME=“/var/lib/jenkins”
- 配置java环境,修改/etc/init.d/jenkins文件
echo $JAVA_HOME 查看路径
- 启动
service jenkins start/stop/restart
jenkins常用插件
在系统配置中有插件管理按钮,点进去
点击可选插件,在右上角过滤中搜索相关插件就ok了
中文插件
- Localization: Chinese (Simplified) :支持将英文转换为中文的一个插件。
git插件
- Git plugin :支持在构建的时候使用git。
maven插件
- Maven Integration:支持构建maven项目。
github插件
- GitHub Integration:支持从github上持续集成。
控制远程主机插件
- Publish Over SSH:将构建好的项目push到远程指定机器中跑。
举几个例子:
每隔5分钟构建一次
H/5 * * * *
每两小时构建一次
H H/2 * * *
每天中午12点定时构建一次
H 12 * * *
每天下午18点定时构建一次
H 18 * * *
在每个小时的前半个小时内的每10分钟
H(0-29)/10 * * * *
每两小时45分钟,从上午9:45开始,每天下午3:45结束
45 9-16/2 * * 1-5
每两小时一次,每个工作日上午9点到下午5点(也许是上午10:38,下午12:38,下午2:38,下午4:38)
H H(9-16)/2 * * 1-5
定时构建插件
- Timestamper 定时任务插件。
git push时构建插件
- Gitlab Hook 一旦检测到git仓库有变化时触发构建
jenkins全局配置
在系统设置>全局配置文件中进行配置
配置jdk,maven,git信息
jenkins构建springboot项目
背景介绍:现有2台服务器A和B,正在开发的springboot的github项目,服务器A部署jenkins,服务器B部署springboot项目。现要求用jenkins实现持续部署。jenkins不断检测github代码是否变更(比如git push),如果变更,能够自动实现拉取,构建,部署到服务器B的功能。
- 安装jenkins插件Gitlab Hook,Maven Integration,Git plugin,GitHub Integration,Publish Over SSH。
- 构建新的jenkins的maven任务。
- 配置源码管理,选中git,配置url和指定分支
如果这里报错,需要将rsa秘钥添加到github上去。 - 配置git push触发器
Trigger builds remotely (触发远程构建,如使用远程脚本触发自动构建):可通过电子邮件触发项目构建,或通过脚本提交一个构建请求
Build after other projects are built (在其他项目构建完成后执行该构建):可设置多个依赖的jobs,当任意一个依赖的job成功构建后启动此构建,多个依赖的jobs之间用","隔开
Build periodically (定期构建):不管源码是否有更新,周期构建,在”日程表“中定义触发时间
Build when a change is pushed to Github (当源码更新推送到Github后执行该构建):
Poll SCM (定期检查源码是否更新):定时检查源码更新,有更新则执行构建,没有更新就不执行;在”日程表“中定义触发时间
这里勾选Poll SCM,填入 “H/2 * * * *” 代表每2分钟检查一次更新,如果更新就重新构建。
- stop.sh的脚本如下
# 将应用停止
#stop.sh
#!/bin/bash
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep sys.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
#此处conference_system-1.0.jar根据自己的jar包名称修改
- replace.sh脚本如下
#replace.sh 用于将上次构建的结果备份,然后将新的构建结果移动到合适的位置
#!/bin/bash
# 先判断文件是否存在,如果存在,则备份
file="/root/conference_system/sys.jar"
if [ -f "$file" ]
then
mv /root/conference_system/sys.jar /root/conference_system/old_version/sys.jar.`date +%Y%m%d%H%M%S`
fi
cp /var/lib/jenkins/jobs/conference-management-system-back-end/workspace/target/conference_system-1.0.jar /root/conference_system/sys.jar
- 推送jar包到远程主机并运行。
在此之前需要配置Publish over SSH
Name: 给主机取名
Hostname: 远程服务器ip地址
Username: 用户名
Remote Directory: 默认进入的目录
Passphrase: 密码
-
在构建后运行添加ssh
-
之后填写相关信息
Source files 需要复制到目的服务器的jar包,注意这里的默认起始路径是workspace
Remove prefix 去前缀,只留下jar包
Remote directoty 发布到远程机器的的目录,注意这里的默认起始路径是是你在设置中配置的。
Exec command 发布完执行的命令,在复制之后需要调用里面的shell命令,注意如果是java程序需要source环境变量将java导入。
- 高级中的一些选项
这两个意思是取消等待和等待时长(ms)
更多推荐
所有评论(0)