jenkins与git结合,自动部署
一、jenkins是一个持续集成和持续部署的一个工具:
二、原理如下图所示:
jenkin是一个从git拉代码,并且自动build,拷贝到指定的服务器上,并且部署。的一款工具
下面是jenkin创建一个新项目的流程图解
如果要是jenkins从远程拉代码,需要配置ssh key
先在你的本地电脑安装git ,运行git hash
ssh-****** -t rsa -C "your_account"
可以是你的邮箱,执行完之后,会生成一个公钥和私钥
私钥复制到jenkins
公钥放在你需要git上
然后保存下就可以了。ssh-key就配置好了,这样jenkins就会自动去git上拉代码了
脚本命令:
task:--refresh-dependencies clean build -Penv=dev -x test
#cd /home/app/.jenkins/jobs/customer_service135.97/workspace
#sh ~/gradle-2.14.1/bin/gradle clean build -Penv=dev -x test
TARGET_SERVER1="172.16.134.65"
REMOTE_PATH=/home/app/sxpservice
REMOTE_APP_PATH=/home/app/sxpservice/app
WAR_PATH=.
PROJECT_NAME=merch-front-service
#####
for ip in $TARGET_SERVER1
do
PID=$(ssh [email protected]$ip "ps auxw | grep $PROJECT_NAME|grep app | grep -v grep | awk '{print \$2}'")
if [ "$PID" != '' ]
then
echo $PID
ssh [email protected]${ip} "kill -9 $PID"
#ssh [email protected]${ip} sh ${REMOTE_PATH}/stop.sh#
fi
ssh [email protected]${ip} "rm -rf ${REMOTE_APP_PATH}/*"
scp ./${PROJECT_NAME}/build/libs/* [email protected]${ip}:${REMOTE_APP_PATH}/
ssh [email protected]${ip} "export LC_ALL=en_US.UTF-8 && locale && source /home/app/.bash_profile && cd ${REMOTE_PATH}/bin && sh start.sh"
done