zoukankan      html  css  js  c++  java
  • 2、jenkins+svn自动发布和回滚

    Jenkins配置回滚思路:
    目前只能实现使用salt来管控配置文件的管控,配置文件的版本回滚需要后续定制化开发,或者进行格外其他的管理操作。后续实现
    以下配置可以为每个项目备份构建文件到本地指定路径
    clipboard
    测试路径说明:
    [root@jenkins-lopc-test-11 target]# pwd
    /opt/jenkins/jobs/pro/jobs/activiti/builds/30/archive/target
    clipboard
     
    clipboard
    pro是jenkins上自己配置的文件目录名称
    activiti是jenkins上配置的jobs名
    30是版本号,jenkins上构建的版本号
    activiti-0.0.1-SNAPSHOT.jar:构建的jar包
    在最后一次成功的构建结果处,可以获取到最新版本的构建文件。
    如果要回滚版本,可以写个脚本文件覆盖发布路径下的文件即可。
    简单说就是利用参数化构建,建立choice,choice里面建立两个变量,一个是发布新版,一个是回滚旧版。选择变量类型string parameter来传递要回滚的版本号。构建时选择运行t脚本,写上判断语句,判断是发布还是回滚。
     
    安装插件
    publish Over SSH
    svn
    maven Integration
    Publish Over SSH
    • 通过ssh连接远程服务器,并能执行脚本部署项目
    • 安装publish-over-ssh
    • 在“系统管理” -> “系统设置“ -> “Publish over SSH” 中配置对应的ssh信息
    • Key中填登录远程服务器的密码
    • 点击"SSH Servers"后的“增加”按钮,新增一个远程服务器
    • 点开“高级...”按钮,能进一步的配置端口等信息。
    • 配置为Server信息后,点击"Test Configuration"按钮测试是否能够连接成功。
    clipboard
     
    监测代码变动自动部署
    • 点击左侧边栏的“新建”按钮,新建一个任务。
    • 填写项目的名称,并选择一种构建的方式,此时我们选择第一个,构建一个自由风格的软件项目,然后点击“OK”按钮创建任务,并进行详细的配置(这里选择的是自由风格的软件项目,项目的打包实在脚本命令中进行)
    clipboard
     
    新建任务
    • 默认设置里填写项目名和描述,并选择之前配置好的要连接的svn(这里使用本地链接配置)
    clipboard
     
    默认配置
    • 配置源码,填写要构建项目的源码仓库地址。
    clipboard
     
    配置源码
    • 配置触发器,选择触发构建的方式,选择的定时检测项目变动,如果检测到分支有新的变动就触发构建,可以自己设置时间频率。
    clipboard
     
    构建触发器
    • 配置构建后操作, 该行为会在构建完成后执行,我们选用的是“Send build artifacts over SSH”的方式,把构建完成的jar包发送到远程服务器上用ssh命令执行启动,此时jenkins所有机器的默认路径是任务所在的目录,远程机器的默认路径是之前publish-over-ssh中指定的文件地址。Source files指定要传送到远程服务器上的文件,remote directory指定的是传送到远程服务器上的文件地址,Remove prefix是值要去除的文件目录,不然传送到远程服务器也会带有该目录层级结构的。exec Command里输入的是在远程服务器上要执行的指令。
    clipboard
    邮件通知
    clipboard
    构建部署配置
    • 项目构建后会有构建历史,点击进去,选择“Console Output”就可以查看构建过程中的执行记录
    至此使用jenkins自动部署(自动打包,替换jar包到此结束。)
     
    使用Jenkins配置项目回滚(jar包回退)
    • 目前实现了项目的自动部署,但有时需要在部署失败时回滚到指定版本的构建,这样才能更灵活的进行项目的构建部署。可以选择“参数化的构建过程”进行传递不同的参数来选择是进行新的构建还是回滚。
    • 要实现回滚,一定要在构建后将,构建完成的文件进行存档,方便以后回滚的时候使用。
    clipboard
     
    构建后存档
    • 使用参数化构建过程,让后面的脚步可以根据不同的变量执行不同的操作。添加“Choice”参数配置不同的选项,让选择发布还是回滚,添加“String Parameter”参数来传递要回滚的版本号。
    clipboard
     
    clipboard
    参数和构建过程
    • 构建选择“Execute Shell”的方式,自己根据变量,自定义构建的脚本。
    • 如果是参数是选择deploy就使用maven的构建过程进行新的构建
    • 如果是回滚,知道历史构建后的文件,复制到当前构建结果目录。
    clipboard
    脚本内容:
    case ${deploy_env} in
    deploy)
    echo "deploy: ${deploy_env}"
    pwd
    #指定maven的绝对路径,并根据实际情况使用-f指定pom.xml的地址
    /usr/local/maven-3.5/bin/mvn clean install package
    ;;
    rollback)
    echo "rollback: ${deploy_env}"
    echo "version: ${version}"
    rm -rf target
    #后续统一标准后需要将项目名称标准化(归档的包根据实际情况进行填写),
    cp -R ${JENKINS_HOME}/jobs/pro/jobs/${JOB_BASE_NAME}/builds/${version}/archive/target .
    pwd && ls && ifconfig
    ;;
    *)
    exit
    ;;
    esac
    构建脚本
    • 点击构建,根据不同的参数选择发布还是回滚,回滚的时候填写要回滚到的历史版本号
    clipboard
    构建页面
    配置文件回滚:
    整体配置实现思路是通过参数,将每次构建的版本号传递过去,在客户机本地创建相关相关备份目录。备份相关目录文件即可。后续结合怎么使用saltstack将salt管控的配置文件同步到业务机上。

    source /etc/profile;
    appdir="/opt/gm-activitiweb";
    backupdir="/opt/backup/jenkins/${BUILD_NUMBER}";
    rollbackdir="/opt/backup/jenkins/rollback";
    currenttime="`date +"%Y%m%d%H%M"`";
    mkdir -p ${backupdir} && cp -R ${appdir}/config ${backupdir};
    if [[ ${deploy_env} == "rollback" ]];then
    mkdir -p ${rollbackdir}/${currenttime} && mv ${appdir}/config ${rollbackdir}/${currenttime} &&
    cp -R /opt/backup/jenkins/${version}/config ${appdir};
    fi;
    cd ${appdir} && sh stop.sh && sh startup.sh; 
    参考链接:
    https://blog.csdn.net/flyingshuai/article/details/73457850
  • 相关阅读:
    codeforces C. Fixing Typos 解题报告
    codeforces B. The Fibonacci Segment 解题报告
    codeforces B. Color the Fence 解题报告
    codeforces B. Petya and Staircases 解题报告
    codeforces A. Sereja and Bottles 解题报告
    codeforces B. Levko and Permutation 解题报告
    codeforces B.Fence 解题报告
    tmp
    API 设计 POSIX File API
    分布式跟踪的一个流行标准是OpenTracing API,该标准的一个流行实现是Jaeger项目。
  • 原文地址:https://www.cnblogs.com/jmucai/p/10747221.html
Copyright © 2011-2022 走看看