jenkins自动打包部署
jenkins自动打包部署1、找台Linux 服务器(比如Centos7.4),搭建jenkins环境,设置jenkins工作目录,下载工程源代码(比如通过svn),通过maven编包。2、在该服务器上,找个目录放置test.sh脚本,该脚本下面有介绍。这个脚本主要用来把编好的jar包,传的要部署的环境3、test.sh#!/bin/bashpasswd='123456'packag...
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
更多推荐
所有评论(0)