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 
posted @ 2020-12-30 09:06  观海云不远  阅读(466)  评论(0编辑  收藏  举报