zoukankan      html  css  js  c++  java
  • 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 
    
  • 相关阅读:
    rpmdb open failed 的解决办法
    centos7 搭建vsftpd服务并锁定用户的家目录
    centos7 搭建samba服务
    python检测是否为数字
    python的random模块
    利用python编写一个简单的猜数字游戏
    在centos7中利用kvm创建虚拟机并设置为桥接模式
    支付宝提现
    冒泡排序(数组排序)
    全选获取对应值
  • 原文地址:https://www.cnblogs.com/lurenjiashuo/p/jenkins-install-and-rollback-config-example.html
Copyright © 2011-2022 走看看