一.下载 jenkins
传送门:https://www.jenkins.io/zh/download/
下载好war包后,上传到linux对应的目录,我这边放的目录是 /root/home/software/jenkins (因为后面涉及到路径的配置,这边把路径给你们写清楚)
然后cd 到war包目录
cd /root/home/software/jenkins
后台运行war包,同时可以使用–httpPort命令指定端口
nohup java -jar jenkins.war --ajp13Port=-1 --httpPort=8081 &
war包启动完成后
输入对应的地址+端口号进入对应jenkins
二.配置 jenkins
1.输入初始管理员密码,用户密码
2.安装插件就跳过吧,因为是离线安装的
3.创建用户
4.实例配置 默认就好,直接点击按钮保存并完成
5.安装插件
在新建任务前,我们需要先安装插件,安装插件的地方在
因为我们是在离线的linux上部署的,所以插件的安装比较麻烦,我这边是使用的是比较笨的方法,但实用就好。
我们先在能接外网的windows把要的插件都安装好,这里介绍几款好用的插件。
(1)Localization: Chinese (Simplified) :汉化 不用说了。
(2)Subversion Plug-in:svn代码
(3)Maven Integration plugin:maven构建
(4)Publish Over SSH:节点管理启动方式
安装好插件记得重启下jenkins。
这插件安装好像是得翻墙,要是下载不了的小伙伴可以试试在Advanced下的Update Site把url设成:
http://mirror.esuni.jp/jenkins/updates/update-center.json
设置完成后要记得submit下,然后重启下jenkins
当我们把插件都安装好了之后我们可以去:C:\Users\Administrator.jenkins\plugins 把插件打包好然后上传到linux上对应的插件目录,要是你们目录没改的话,linux对应的可以放在在/root/.jenkins/plugins
6.配置节点
插件装好后,我们就开始配置我们的节点了。要是在本机部署的话可以忽略这一步。
节点名称随便取
然后主要是填这三个,配置好直接按保存就行了。
保存完毕后,我们重新进到节点界面,会看到新建了个我们创建的test节点,然后进行连接。
7.新建任务
接下来我们就开始新建任务了
要是之前配置了node节点的小伙伴这里可以设置使用哪个节点,本机开发的小伙伴可以直接忽略
接下来配置我们的svn源码,记得Credentials要添加上你们自己的svn账号密码
最后就是编写我们shell脚本了,这边我先写个简单的测试下看下我们的jenkins能不能执行我们的shell脚本。
接下来我们去创建好的项目下构建项目
然后我们点进详情去看看构建情况,可以看到我们的输出是没问题的,打印了我们想要的ipaddress,因为涉及到ip我就不截全了
8.编写shell脚本
接下来自动化部署就需要我们编写shell来控制了,我们回到项目的构建地方编写我们的构建。
#保持服务持续运行
BUILD_ID=DONTKILLME
#加载配置变量
. /etc/profile
#配置运行参数
#jenkins工作区
export PROJ_PATH=/root/.jenkins/workspace
#svn拉取到的项目名称,和第7步的项目对应好
export PROJ_NAME=cdr-c
#tomcat路径
export TOMCAT_PATH=/root/home/software/cdr/tomcat-$PROJ_NAME
#这个是我自己写的脚本
sh /root/home/software/jenkins/deploy.sh
deploy.sh 脚本详情
#!/usr/bin/env bash
# export PROJ_PATH=/root/.jenkins/workspace
# export TOMCAT_PATH=/root/home/software/cdr/tomcat-cdr-c/bin 在部署机器上的路径
killTomcat()
{
cd $TOMCAT_PATH/bin
sh shutdown.sh
}
cd $PROJ_PATH/$PROJ_NAME
#重新打包从svn拉过来的代码
mvn clean install -Dmaven.test.skip=true
#关闭tomcat
killTomcat
#删除旧代码
rm -rf $TOMCAT_PATH/webapps/$PROJ_NAME
rm -f $TOMCAT_PATH/webapps/$PROJ_NAME.war
#替换新代码
cp $PROJ_PATH/$PROJ_NAME/target/$PROJ_NAME-0.0.1-SNAPSHOT.war $TOMCAT_PATH/webapps/
cd $TOMCAT_PATH/webapps/
mv $PROJ_NAME-0.0.1-SNAPSHOT.war $PROJ_NAME.war
#重启tomcat
cd $TOMCAT_PATH/
sh bin/startup.sh
这边我也碰到了个问题,maven打包的时候因为是离线的,所以需要的依赖也是需要自己先离线打包存好,当时我的maven仓库已经在本地建好了,但是maven非要去下载,也是折腾了好久。要是遇到这个问题可以去看看我写解决方法
传送门:https://blog.csdn.net/WANG__Q/article/details/106189194