Linux离线部署jenkins+svn 持续自动化部署代码

一.下载 jenkins

传送门:https://www.jenkins.io/zh/download/
Linux离线部署jenkins+svn 持续自动化部署代码_第1张图片下载好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.输入初始管理员密码,用户密码
Linux离线部署jenkins+svn 持续自动化部署代码_第2张图片
2.安装插件就跳过吧,因为是离线安装的
3.创建用户
Linux离线部署jenkins+svn 持续自动化部署代码_第3张图片
4.实例配置 默认就好,直接点击按钮保存并完成
Linux离线部署jenkins+svn 持续自动化部署代码_第4张图片
5.安装插件
  在新建任务前,我们需要先安装插件,安装插件的地方在
  Linux离线部署jenkins+svn 持续自动化部署代码_第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

Linux离线部署jenkins+svn 持续自动化部署代码_第6张图片
  设置完成后要记得submit下,然后重启下jenkins
  当我们把插件都安装好了之后我们可以去:C:\Users\Administrator.jenkins\plugins 把插件打包好然后上传到linux上对应的插件目录,要是你们目录没改的话,linux对应的可以放在在/root/.jenkins/plugins

6.配置节点
  插件装好后,我们就开始配置我们的节点了。要是在本机部署的话可以忽略这一步。
  Linux离线部署jenkins+svn 持续自动化部署代码_第7张图片
节点名称随便取
Linux离线部署jenkins+svn 持续自动化部署代码_第8张图片
然后主要是填这三个,配置好直接按保存就行了。
Linux离线部署jenkins+svn 持续自动化部署代码_第9张图片
保存完毕后,我们重新进到节点界面,会看到新建了个我们创建的test节点,然后进行连接。

7.新建任务
接下来我们就开始新建任务了
Linux离线部署jenkins+svn 持续自动化部署代码_第10张图片
要是之前配置了node节点的小伙伴这里可以设置使用哪个节点,本机开发的小伙伴可以直接忽略
Linux离线部署jenkins+svn 持续自动化部署代码_第11张图片
接下来配置我们的svn源码,记得Credentials要添加上你们自己的svn账号密码
Linux离线部署jenkins+svn 持续自动化部署代码_第12张图片
最后就是编写我们shell脚本了,这边我先写个简单的测试下看下我们的jenkins能不能执行我们的shell脚本。
Linux离线部署jenkins+svn 持续自动化部署代码_第13张图片
接下来我们去创建好的项目下构建项目
Linux离线部署jenkins+svn 持续自动化部署代码_第14张图片
然后我们点进详情去看看构建情况,可以看到我们的输出是没问题的,打印了我们想要的ipaddress,因为涉及到ip我就不截全了
Linux离线部署jenkins+svn 持续自动化部署代码_第15张图片
8.编写shell脚本
接下来自动化部署就需要我们编写shell来控制了,我们回到项目的构建地方编写我们的构建。
Linux离线部署jenkins+svn 持续自动化部署代码_第16张图片

#保持服务持续运行
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

你可能感兴趣的:(Linux离线部署jenkins+svn 持续自动化部署代码)