jenkins自动打包部署
一、主要步骤:

1、找台Linux 服务器(比如Centos7.4)(192.168.1.20),搭建jenkins环境,设置jenkins工作目录,下载工程源代码(比如通过svn),修改代码中的配置文件,通过maven编包。

2、在该服务器上,找个目录放置test.sh脚本,该脚本下面有介绍。这个脚本主要用来把编好的jar包,传的要部署的环境(192.168.1.100)。并且执行部署环境中的部署脚本auto-deploy.sh。

3、部署脚本主要用来,停止服务,备份上一个版本的jar包,启动新版本的jar包。

二、下面是关于两个脚本的说明:
传送包到远程服务器脚本:test.sh(该脚本位于jenkins所在服务器上

#!/bin/bash
passwd='123456'
packagefileDir='/home/cqkang/qw/jenkinsworkspace/target/'
deployDir='/home/cqkang/qw/auto-deploy/'
/usr/bin/expect <<-EOF
set time 30
spawn scp ${packagefileDir}datadocking-0.0.1-SNAPSHOT.jar root@192.168.1.100:${deployDir}datadocking-display.jar
expect {
"*yes/no" {send "yes\r"; exp_continue}
"*password:" {send "$passwd\r"}
}
expect eof
EOF

echo "success scp"

/usr/bin/expect <<-EOF
set time 30
spawn ssh root@192.168.1.100
expect {
"*yes/no" {send "yes\r"; exp_continue}
"*password:" {send "$passwd\r"}
}
expect "*#"
send "cd /home/cqkang/qw/auto-deploy/\r"

expect "*#"
send "./auto-deploy.sh\r"

expect "*#"
send "exit\r"

expect eof

EOF

echo "success"

部署脚本:auto-deploy.sh (该脚本位于部署环境服务器上

#!/bin/bash
#安装目录
install_dir=/home/cqkang/qw/qwserver/

#包所在目录
package_dir=/home/cqkang/qw/auto-deploy/

#安装包前缀
prefix=datadocking-display

cd $install_dir

#查询9090端口占用的进程号,并杀死该进程。
netstat -tunlp|grep 9090|awk '{print $7}'|awk '{split($0,a,"/"); print a[1]}'|xargs kill -9

rm -rf log

#移动到备份目录
mv -f ${prefix}*.jar ./back-up/

#移动部署包到部署目录
mv -f ${package_dir}${prefix}*.jar $install_dir

#启动后台jar包
nohup java -jar ${prefix}*.jar > log 2>&1 &

echo "auto-deploy success"

关于脚本说明:
脚本中使用到expect命令,我们需要在jenkins所在服务器安装expect。
expect是什么?
expect是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。说白了,expect就是一套用来实现自动交互功能的软件。

在实际工作中,我们运行命令、脚本或程序时,这些命令、脚本或程序都需要从终端输入某些继续运行的指令,而这些输入都需要人为的手工进行。而利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行。这就是expect!!!

Linux安装expect命令
【Linux安装expect命令】:–expect是在Tcl基础上创建起来的,所以在安装expect前我们应该先安装Tcl。
①:tcl安装
源码下载:
http://www.tcl.tk/software/tcltk/downloadnow84.tml
wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.20-src.tar.gz
解压:
tar -zxvf tcl8.4.20-src.tar.gz

cd tcl8.4.20/unix/

./configure --prefix=/usr/tcl --enable-shared
make
make install
cp tclUnixPort.h …/generic/

②:expect 安装 (需Tcl的库):
下载源码包:
wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download
解压:
tar xzvf expect5.45.tar.gz
安装配置:
cd expect5.45
./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=…/tcl8.4.20/generic
make
make install
ln -s /usr/tcl/bin/expect /usr/expect/bin/expect

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐