1. Jenkins安裝
在官網(wǎng)(https://jenkins.io)找到j(luò)enkins安裝包,并查看安裝注意事項(xiàng)。

yum install java -y

wget https://pkg.jenkins.io/redhat-stable/jenkins-2.150.3-1.1.noarch.rpm
rpm -ivh jenkins-2.150.3-1.1.noarch.rpm
service jenkins start
chkconfig jenkins on
netstat -ntlp? ? #確認(rèn)服務(wù)端口是否正常
安裝目錄
/var/lib/jenkins/
Jenkins配置文件地址:
/etc/sysconfig/jenkins
JENKINS_HOME是Jenkins的主目錄,Jenkins工作的目錄都放在這里,Jenkins儲存文件的地址,Jenkins的插件,生成的文件都在這個目錄下。
JENKINS_USER是Jenkins的用戶,擁有$JENKINS_HOME和/var/log/jenkins的權(quán)限。
JENKINS_PORT是Jenkins的端口,默認(rèn)端口是8080。
在瀏覽器上輸入jenkins?Server的地址(http://?IP_addr:8080)






2. 自動發(fā)布配置
2.1 插件安裝
安裝SSH插件,SSH插件可以通過SSH遠(yuǎn)程到其它服務(wù)器完成配置或者執(zhí)行命令。


配置SSH,本例中后端服務(wù)為2臺,jenkins發(fā)布任務(wù)推送至后端2臺應(yīng)用服務(wù)器。

2.2 創(chuàng)建發(fā)布任務(wù)


該配置的意思是當(dāng)構(gòu)建任務(wù)后,發(fā)送war包并且執(zhí)行命令。**/*.war表示構(gòu)建目錄下所有的war包,也可以指定war包的名稱。Exec command里面是1個腳本,后文會提供,主要意思是先停止應(yīng)用服務(wù)器的tomcat,將推送前的代碼備份,并且將推送的代碼解壓到發(fā)布目錄,開啟tomcat服務(wù)。
war包的上傳目錄默認(rèn)為(/var/lib/jenkins/workspace/e9z-web)
點(diǎn)擊任務(wù)構(gòu)建,既可以完成自動推送發(fā)布。
deploy.sh?代碼:
#!/bin/bash
source /etc/profile
export LANG="en_US.UTF-8"
if [ $# -eq 0 ]
then
echo "param1:ProjectName,param2:PackageName "
echo "example:./deploy.sh? e9z-web? e9z-web.war"
exit 1
fi
#項(xiàng)目名
ProjectName=$1
#WAR包名
PackageName=$2
Date=`date +%F`
DateNow=`date +%Y-%m-%d.%H%M`
##當(dāng)前Tomcat的IP地址
IP="127.0.0.1"
#項(xiàng)目備份目錄
BackupDir="/data/backup/web/"
#項(xiàng)目目錄
ProjectDir="/data/web"
deploy(){
mkdir -p ${BackupDir}
cp -rf ${ProjectDir}/${ProjectName} ${BackupDir}/${ProjectName}_${DateNow}
num=$(ps aux | grep tomcat_${ProjectName} | grep -v "grep" |grep -v "tail"|wc -l)
if [ $num -eq 1 ];then
kill -9 `ps aux | grep tomcat_${ProjectName} | grep -v "grep" |grep -v "tail"|awk '{print $2}'`
echo "---------------------tomcat_${ProjectName}? is stop ---------------------------"
elif [ $num -eq 0 ]; then
echo "---------------------tomcat_${ProjectName}? is stoped ---------------------------"
else
echo "please check projectname ~~~~~~~~~~~~~~~~~~~~~~~~~~"
exit 1
fi
rm -rvf /usr/local/tomcat_${ProjectName}/work/*
rm -rvf ${ProjectDir}/${ProjectName}/*
cd ${ProjectDir}
unzip -o? ${PackageName} -d ${ProjectDir}/${ProjectName}/
rm -rf ${ProjectDir}/${PackageName}
sleep 1
nohup? /usr/local/tomcat_${ProjectName}/bin/startup.sh >/dev/null 2>&1
echo "---------------------tomcat_${ProjectName}? is starting ---------------------------"
? ? ? ? echo "${Date}*******mark*******backup release is ${ProjectName}_${DateNow}*******"?
? ? ? ? echo "${Date}*******mark*******backup release is ${ProjectName}_${DateNow}*******"?
sleep 20
}
deploy