jenkins自动推送发布实现 含完整脚本

1. Jenkins安装

在官网(https://jenkins.io)找到jenkins安装包,并查看安装注意事项。

检查安装注意事项

yum install java -y


确认java版本

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    #确认服务端口是否正常

安装目录

/var/lib/jenkins/

Jenkins配置文件地址:

/etc/sysconfig/jenkins

JENKINS_HOME是Jenkins的主目录,Jenkins工作的目录都放在这里,Jenkins储存文件的地址,Jenkins的插件,生成的文件都在这个目录下。

JENKINS_USER是Jenkins的用户,拥有$JENKINS_HOME和/var/log/jenkins的权限。

JENKINS_PORT是Jenkins的端口,默认端口是8080。

在浏览器上输入jenkins Server的地址(http:// IP_addr:8080)


输入确认密码
安装插件
开始安装
创建管理员
完成引导模式
配置完成后展示的界面

2. 自动发布配置

2.1 插件安装

安装SSH插件,SSH插件可以通过SSH远程到其它服务器完成配置或者执行命令。


在插件管理中下载并安装SSH插件
安装成功后重启jenkins使配置生效

配置SSH,本例中后端服务为2台,jenkins发布任务推送至后端2台应用服务器。


配置后端应用服务器


2.2 创建发布任务


创建任务


配置发布

该配置的意思是当构建任务后,发送war包并且执行命令。**/*.war表示构建目录下所有的war包,也可以指定war包的名称。Exec command里面是1个脚本,后文会提供,主要意思是先停止应用服务器的tomcat,将推送前的代码备份,并且将推送的代码解压到发布目录,开启tomcat服务。

war包的上传目录默认为(/var/lib/jenkins/workspace/e9z-web)

点击任务构建,既可以完成自动推送发布。


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

#项目名

ProjectName=$1

#WAR包名

PackageName=$2

Date=`date +%F`

DateNow=`date +%Y-%m-%d.%H%M`

##当前Tomcat的IP地址

IP="127.0.0.1"

#项目备份目录

BackupDir="/data/backup/web/"

#项目目录

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容