Jenkins安装配置回滚
安装(ubuntu环境)
安装java环境
sudo apt-get install openjdk-8-jdk
安装jenkins
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
Jenkins常用命令
查看Jenkins状态:
sudo service jenkins status
启动Jenkins:
sudo service jenkins start
停止Jenkins:
sudo service jenkins stop
重启Jenkins:
sudo service jenkins restart
配置Jenkins
1、打开 ip:8080 进行开始配置,管理员密码可以通过下面方式获取:
cat /var/lib/jenkins/secrets/initialAdminPassword
2、按建议的方式安装插件
创建工程(示例)
1、填写基本信息
2、参数化配置,用于部署和回滚
3、源码(从github获取)
4、构建触发器,github收到push事件后,通过webhook通知jenkins(需要在github上配置webhook),触发构建
github上的配置:
5、构建脚本
根据选项进行Deploy或Rollback
case $Status in
Deploy)
echo "Status:$Status"
path="${WORKSPACE}/bak/${BUILD_NUMBER}" #创建每次要备份的目录
if [ -d $path ];
then
echo "The files is already exists "
else
mkdir -p $path
fi
pwd
if [ -f "xxx.tar.gz" ];then
rm xxx.tar.gz
fi
tar -zcvf xxx.tar.gz ./*
cp -f xxx.tar.gz $path #将打包好的文件备份到相应目录,覆盖已存在的目标
echo "Completing!"
;;
Rollback)
echo "Status:$Status"
echo "Version:$Version"
cd ${WORKSPACE}/bak/$Version #进入备份目录
pwd
cp -f xxx.tar.gz ${WORKSPACE}/ #将备份拷贝到程序打包目录中,并覆盖之前的文件
;;
*)
exit
;;
esac
把代码复制到项目目录,解压(小本测试jenkins跟正式环境在一台服务器上)
cp /var/lib/jenkins/workspace/xxx/xxx.tar.gz /var/www/html/test
cd /var/www/html/test
tar -zxvf xxx.tar.gz
rm xxx.tar.gz
删除多余的备份文件
ReservedNum=5 #保留文件数
FileDir=${WORKSPACE}/bak/
date=$(date "+%Y%m%d-%H%M%S")
cd $FileDir #进入备份目录
FileNum=$(ls -l | grep '^d' | wc -l) #当前有几个文件夹,即几个备份
while(( $FileNum > $ReservedNum))
do
OldFile=$(ls -rt | head -1) #获取最旧的那个备份文件夹
echo $date "Delete File:"$OldFile
rm -rf $FileDir/$OldFile
let "FileNum--"
done