• 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 
    
  • 相关阅读:
    预览图片功能 直接复制就OK
    记录:express返回自定义http状态吗
    Git tag 给当前分支打标签
    css双飞翼和圣杯布局
    简单模拟MVVM数据双向绑定
    JS的自定义事件(观察者模式)
    js模拟触发事件
    QueryString和BASE64
    WebResource.axd文件的配置和使用
    处理json中的异常字符
  • 原文地址:https://www.cnblogs.com/lurenjiashuo/p/jenkins-install-and-rollback-config-example.html
Copyright © 2020-2023  润新知