java一键打包部署服务器_Jenkins+maven+Tomcat+SVN一键自动打包部署应用到服务器

本文详细记录了使用Jenkins、Maven、Tomcat和SVN进行Java应用的一键打包和自动部署过程,包括服务器配置、软件安装、Jenkins的设置以及自动部署脚本的编写,旨在实现远程服务器上的自动化部署。
摘要由CSDN通过智能技术生成

今天请教了大神,终于把jenkins给搞明白了

现在做下笔记,防止自己老年痴呆又忘了怎么配置

(截图可能不够清晰,有不清楚的随时评论打call)

机器配置:

安装配置规划

机器

192.168.169.139(本机虚拟机)

192.168.169.140(本机虚拟机)

系统

Red Hat Enterprise Linux Server release 6.4 (Santiago)

系统内核

2.6.32-358.el6.x86_64

安装包

jenkins.war

路径

Tar包路径:/home/admin

192.168.169.140作为Jenkins的部署服务器

192.168.169.139作为远程服务器,部署war到Tomcat容器

jenkins打包部署到远程服务器,需要以下安装包:

1)jenkins.war(服务器140上解压执行)

2)apache-maven-3.5.3-bin.tar.gz(服务器140上面解压部署)

3)jdk-8u161-linux-x64.tar.gz(二者均需配置jdk)

4)apache-tomcat-7.0.85.tar.gz(远程服务器139上面解压部署)

上述包提取地址:https://pan.baidu.com/s/1YoEAw34CI0HjTgDyveN43g

提    取   密   码: 5itt

正式进入jenkins安装环节:

1、139、140服务器均新建admin用户并设置密码

useradd admin

passwd admin

输入密码并再次确认即可

2、上传jdk-8u161-linux-x64.tar.gz到两台服务器下的admin用户,

配置局部环境变量.bash_profile并使之生效

参考(局部jdk配置):

3、上传apache-maven-3.5.3-bin.tar.gz到140服务器进行安装解压

解压安装maven参考:

4、上传apache-tomcat-7.0.85.tar.gz到远程服务器139,直接解压修改bin目录下的catalina.sh文件,

添加jdk的安装路径等信息

执行:

1) tar -zxvf apache-tomcat-7.0.85.tar.gz

2) rm -rf apache-tomcat-7.0.85.tar.gz

3) mv apache-tomcat-7.0.85/ tomcat7/

4) cd tomcat7/bin

5) vi catalina.sh

添加如下内容并保存:

export JAVA_HOME=/home/admin/jdk1.8(自行修改成自己的)

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

5、上传jenkins.war到140服务器(jdk和maven已经配置好并生效)

执行:java -jar jenkins.war --httpPort=8888 指定端口号,可自行修改

(需自定义jenkins访问端口执行java -jar jenkins.war  --httpPort=8081 ,启动jenkins,

其中httpPort就是访问端口设置,否则可直接将war包放在Tomcat里面去跑,一样的效果;

如果想后台一直运行,那么启动命令为nohup java -jar jenkins.war --httpPort=8888 &

或者 java -jar jenkins.war --httpPort=8888 后执行bg,再Ctrl + z执行bg后,输入exit也可以实现效果)

a16199fced31142ae4474d43ba69322d.png

d00ce2a9e381ffc5fdfaf6fc90442642.png

6、打开浏览器访问链接http://ip地址:8888(链接中ip根据实际情况更改)

cb85badcc4bc98b33dfa829923d1c7ef.png

7、进入jenkins系统后出现下面界面,点击下面图片中红框中的按钮

3f334bc5d0a2fd978018d9711ca002ec.png

8、点击后出现如下页面:

1fd58c8b6690a62df399247596416647.png

9、等待安装完毕,出现下面界面,设置用户名和密码:

2f511b99630b62ad033f6025570a3104.png

10、点击Start using Jenkins按钮后进入下面页面,点击“系统管理”:

d1a3a5bd9a759e156ed68f91e811ac07.png

11、“系统管理”出现下面页面,点击“管理插件”:

650ff117fb60ed9650ca57387202ea79.png

12、点击“管理插件”后点击“可选插件”出现先下面页面,

b0115afd2f4bce848939bf08d7ea8ff4.png

13、在过滤位置搜索“maven”,选择“Maven Integration plugin”,点击“直接安装”按钮:

521a5ccb8e5461852bfb8965ceb17a22.png

14、安装需要等待一段时间,出现下面页面代表安装成功,点击“返回首页”:

341192a758e074f101b81aa016c885b3.png

15、在“系统管理”-“管理插件”-“可选插件”下,在过滤中搜索“deploy”,选择“Deploy to container Plugin”

和“WebSphere Deployer  Plugin”,点击“直接安装”

c3a45ce84fabfc7438247faf3834a6cd.png

16、等待一段时间,显示完成代表安装成功

17、在“系统配置”页面,点击“Global Tool Configuration”

6b84640df5c62ffdf1c85f88ea5237f6.png

18、在Global Tool Configuration配置maven和jdk

解释下面三张图的参数输入:

Maven Configuration

Default settings provider:

File path:/home/admin/maven3.5.3/conf/settings.xml(maven的setting.xml文件路径)

Default global settings provider:

File path:/home/admin/maven3.5.3/conf/settings.xml(maven的setting.xml文件路径)

JDK

别名:随便取

JAVA_HOME:服务器上面配置的JAVA_HOME

MAVEN

name:随便取

MAVEN_HOME:服务器上面配置的MAVEN_HOME

1fee2b66c41e221a2cc3106c25885060.png

19、新增JDK

e1ee8b7a943d313192ea2bc8487a115b.png

20、新增Maven

d27c313516395947b1372a9f11214f4e.png

21、配置完成后点击“Save”保存

34968a2b3e0fe1d58a20840079b21ad1.png

22、点击“系统管理”->“系统设置”

df366aaa23d7c65fbea211a6f485d718.png

23、更改Maven项目配置

全局MAVEN_OPTS:-Xms128m -Xmx512m

Local Maven Repository 选择Local to the executor

ac88cae5868c2777cb831d8f8001d7e3.png

创建项目

1、 登录

05e94bbbeb16ec9167b3a066c0f61ec2.png

2、 点击登录进入Jenkins主界面

71f80177ed7b71baa4afd641788597ff.png

3、 在 Jenkins主界面点击右边“新建”

209337f431ec3f5137cf61e742f682fa.png

4、 在出现下面的界面中,创建一个新的Job

1)“Enter an item name”:输入新建一个Job的名称。

a923eba25e2f225cb6786310d451b8b7.png

2)选择“构建一个自由风格的软件项目”,点击OK即可创建一个新的Job,如图

f45ac3ca9aa786d41648564a8fc24414.png

5、找到“源码管理”,选择“Subversion”,如下图:

33367ca30674fd351a037b9d9d212d30.png

6、在“Repository URL” 设置你的代码的svn地址,控制好访问到哪一个文件夹,然后点击“Add”

下拉按钮,选择点击“Jenkins”:

48b248543af71203eb008e11a4b8ef31.png

在打开的页面中选择连接repository路径的密钥,具体方式在“Kind”中选择(默认选择使用

username with password即使用用户名和密码方式):

d11a845448b3036b22798333d890967f.png

填写完密钥后点击“Add”按钮保存,在“Credentials”标签右边的下拉菜单中选择对应的密钥:

01932b95c3509daaac209f94ea2f8356.png

Local module directory:这是让你自己设置代码存储到本地工作区的自定义目录,如果不写,则代

码直接放在当前工作区目录下;如果自定义目录,则会在工作区创建这个目录结构,然后代码存储

到这个目录下。例如:

1) 当jenkins的工作空间为默认路径时“Local module directory”默认值为”.”,如下图,

代码将保存到Jenkins工作目录下的名称为Job名称的文件夹中,举例:

Jenkins工作目录为/home/admin/.jenkins/workspace

Job名称为:Test

那么保存的代码位置也就是job的工作区路径就为: /home/admin/.jenkins/workspace/Test

4f81f7025acb259bf2d52722a08d2db1.png

1) 自定义Local module directory时,如下图,举例说明:

Jenkins工作目录为/home/admin/.jenkins/workspace

Job名称为:Test

Local module directory:Helloworld

那么保存的代码位置就为: /home/admin/.jenkins/workspace/Test/Helloworld

7、 找到“构建触发器”,勾选“Poll SCM”

b466165e2a8c249e6c1a42806f0de64b.png

在“日程表”中填写0 0 * * *:表示每天凌晨自动检查一次,源码改变了则自动下载构建。

H/5 * * * * : 表示每5分钟自动检查一次,源码改变了则自动下载构建。

两种方案如下图所示:

53240c4823868f52bbec2f6d6acd1085.png

a4b9d260e8598a7768826c33ddf446f1.png

8、 找到“构建”,点击“增加构建步骤”,选择“Execute shell”

7e0182835a8725e955a31fa2ba8199d6.png

选择“Execute shell”后会在页面生成如下页面:

b6b2593f20cdbfe8853fe2de53f9ba69.png

在command中填写shell脚本来执行mvn操作.

举例(红色部分根据实际情况修改):

cd $WORKSPACE

cd Helloworld

MAVEN_BIN=/home/admin/maven3.5.3/bin

$MAVEN_BIN/mvn clean install -Dmaven.test.skip=true

注释:

$WORKSPACE: Job的工作空间路径,例如:

Jenkins的工作目录时/home/admin/.jenkins/workspace

Job的名称为Helloworld

那么,该Job下的$WORKSPACE为:/home/admin/.jenkins/workspace/Helloworld, $WORKSPACE会根据

Job名称而改变,当Job为test时,TT中的$WORKSPACE也就为/home/admin/.jenkins/workspace/test

MAVEN_BIN : maven的bin文件夹的绝对路径

zkClient: pom.xml所在的文件夹,这个根据具体pom.xml文件的路径来写

-Dmaven.test.skip=true : 这个是指不执行测试用例,也不编译测试用例类。

9、点击“保存”,即可保存该job

d0e43f3b0304d3cc61b0cc9482d31c7a.png

打包项目

1、在Jenkins主界面,点击每个Job的下拉按钮,然后再点击“立即构建”

2、任务构建状态说明

当前构建状态分为以下几种

c72322f11596219f955d40231d3a6851.png

项目构建完成,同时被认为是稳定的

0ee1257bc87eb2b6fab3406dac4e8a14.png

项目构建完成,但被认定为不稳定

c1ab5e34aed14f1f0398ece99c3b7358.png

构建失败

1bd870891ea085358ffa1d0a76b644c0.png

作业已经禁止

构建稳定行,Jenkins会基于一些后处理器任务为构建发布一个稳健指数(从0-100 ),越高越稳定

aba1bf6eeee94816950741ba84ab4937.png

构建成功率>80%

67e2f4b2a5a56885f88b677f5b4352d2.png

构建成功率60%-79%

eec40b17c295459b14833bd2ee513930.png

构建成功率40%-59%

5387e4d549b49f7f32fbc64b87bf5561.png

构建成功率20%-39%

87dfd48b097bd3da01f22a3a005ae6ae.png

构建成功率0-19%

期待任务编译都处于和 状态。

job远程部署(自动部署)

进入系统管理》插件管理,下载“SSH plugin”和 “Publish Over SSH”插件

1、配置SSH Server

点击“系统管理”-“系统设置”,找到“Publish over SSH”

23a87019d52703f32b1dc403083c576f.png

Passphrase:全局的ssh密码

SSH Servers : 远程服务器信息设置区

Name:当前SSH Server的名称(随意取)

Hostname:远程服务器ip地址

Username:远程服务器的用户名

Remote Directory :连接远程服务器路径(绝对路径),也是在此路径下执行shell命令,

默认为/home/admin(根据每台服务器用户名而改变)。

点击“高级”,如上图所示

勾选“Use password authentication, or use a different key”,在“Passphrase / Password”

中输入远程服务器用户名的密码,比如该处输入用户名为“admin”的密码。

使用“Test Configuration”进行校验该配置是否通过,如下图:

eaff646d1e78134a3a13ece696399545.png

当出现“Success”表示通过,也就是可以使用,使用“增加”,可以再创建一个连接远程服务器的SSH Server。

2、在jobs的配置中找到“构建后操作”,点击“增加构建后操作步骤”,选择“Send build artifacts over SSH”

518af1d40856d09dba358172886e46ce.png

3、配置“Send build artifacts over SSH”

464db53bc225e2d959c55c6a587312ab.png

配置说明:

Name:选择一个SSH Server(包含了远程服务器的信息)

Source files:这是一个相对路径,相对于该job的工作区的路径(存放源码的路径),例如:

Source file 为“test/test/target/HelloWorld.war”,那么绝对路径为:$WORKSPACE/test/test/target/HelloWorld.war,

此处的$WORKSPACE为/home/admin/.jenkins/workspace/test

Remove prefix :移除Source files中的前缀,

例如Source file为“test/test/target/HelloWorld.war”,如果Remove prefix为空,

jenkins就会在远程服务器上目标位置创建test/test/target路径,并在该路径下存放war包;

如果Remove prefix为“test/test/target”jenkins只会讲war包移动至远程服务器的目标位置。

Remote directory:远程服务器的目标位置,相对路径,相对于在“系统设置”中的“Publish over SSH”里

的“SSH Server”设置里的“Remote Directory”的路径。

例如“Publish over SSH”里的“SSH Server”设置里的“Remote Directory”的没写路径就为默认路径,

而此处的“Remote directory”为history,那么war包保存在远程服务器路径为/home/admin/history中

Exec command :此处写在远程服务器上执行的shell脚本

Exec command 脚本:

#jdk环境

export JAVA_HOME=/home/admin/jdk1.8

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

#进入admin用户主目录

cd

#执行该文件

sh HelloWorld.sh

HelloWorld.sh文件内容

#tomcat路径

TOMCAT_HOME=/home/admin/tomcat7

#查看进程并杀掉进程

ID=`ps -ef | grep "$TOMCAT_HOME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`

echo $ID

for id in $ID

do

kill -9 $id

echo "killed $id"

done

#删除旧的war包等

cd $TOMCAT_HOME/webapps

rm -rf site-web*

#拷贝新war包到Tomcat下

cd ../../history/

cp HelloWorld.war $TOMCAT_HOME/webapps

cd ../tomcat7/bin

#启动tomcat

nohup ./startup.sh

30da3ede71b0ab0f11d10003e5a8b7fa.png

大功告成~~~~~~~~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值