前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jenkins编包和发布分开---支持回滚发布

jenkins编包和发布分开---支持回滚发布

作者头像
@凌晨
发布2022-11-14 16:27:13
3620
发布2022-11-14 16:27:13
举报
文章被收录于专栏:Man_Docker

图1、发布流程图,原理是编包和发布jenkins分开,每次发布的版本都存储在编译的机器上。

jenkins编包和发布分开---支持回滚发布_sed
jenkins编包和发布分开---支持回滚发布_sed

图2、编包jenkins的输入参数

jenkins编包和发布分开---支持回滚发布_流程图_02
jenkins编包和发布分开---支持回滚发布_流程图_02

图3、发布jenkins输入的参数

jenkins编包和发布分开---支持回滚发布_流程图_03
jenkins编包和发布分开---支持回滚发布_流程图_03

代码1、编包cp

代码语言:javascript
复制
config_file=/home/data/workspace-jenkins/deploy_msg_sender/cpp/src/msg_sender/conf
bin_file=/home/data/workspace-jenkins/deploy_msg_sender/cpp/src/msg_sender/msg_sender
msg_file=/home/data/workspace-jenkins/deploy_msg_sender_release

mkdir $msg_file/msg_sender_${compile_version}
cp -a $config_file $msg_file/msg_sender_${compile_version}/
cp $bin_file $msg_file/msg_sender_${compile_version}/

代码2、发布

代码语言:javascript
复制
config_file=/home/data/workspace-jenkins/deploy_msg_sender/cpp/src/msg_sender/conf
bin_file=/home/data/workspace-jenkins/deploy_msg_sender/cpp/src/msg_sender/msg_sender
msg_file=/home/data/workspace-jenkins/deploy_msg_sender_release

target_name=/opt/imserver/msg_sender


if test $environ == Test
then
    target="10.0.0.181"
    sed -i "s/server_host=.*/server_host=$target/g" $msg_file/msg_sender_$compile_version/conf/msg_sender.ini
    if [ -f msg_sender_$compile_version.tar ]; then rm -rf msg_sender_$compile_version.tar; fi    
    tar -cvf msg_sender_$compile_version.tar msg_sender_$compile_version/
    
    tar_name="/home/data/workspace-jenkins/deploy_msg_sender_release/msg_sender_$compile_version.tar"
    command_1="cd $target_name && if [ -f msg_sender_$compile_version.tar ]; then rm -rf msg_sender_$compile_version.tar; fi"
    command_2="cd $target_name && if [ -f msg_sender_$compile_version ]; then rm -rf msg_sender_$compile_version; fi"
    
    command_3="cd $target_name && tar -xvf msg_sender_$compile_version.tar"
    command_4="cd $target_name && ln -snf msg_sender_$compile_version msg_sender"
    command_5='ps -ef|grep msg_sender|grep -v grep|awk "{print \$2}"| xargs kill -9'
        
    cd /home/data/ansible/ && ansible-playbook playbook-standard.yaml --extra-vars "{'host':'$target', 'tar_name':'$tar_name', 'target_name':'$target_name', 'command_1':'$command_1', 'command_2':'$command_2', 'command_3':'$command_3', 'command_4':'$command_4', 'command_5':'$command_5'}"
    
fi


if test $environ == Online
then
    
    for target in $(echo $server | sed "s/,/ /g")
    do        
        sed -i "s/server_host=.*/server_host=$target/g" $msg_file/msg_sender_$compile_version/conf/msg_sender.ini
        if [ -f msg_sender_$compile_version.tar ]; then rm -rf msg_sender_$compile_version.tar; fi
        tar -cvf msg_sender_$version.tar msg_sender_$compile_version/
        
        tar_name="/home/data/workspace-jenkins/deploy_msg_sender_release/msg_sender_$compile_version.tar"
        command_1="echo ok"
        command_2="echo ok"
        
        command_3="cd $target_name && tar -xvf msg_sender_$compile_version.tar"
        command_4="cd $target_name && ln -snf msg_sender_$compile_version msg_sender"
        command_5="supervisorctl restart msg_sender"
        
        cd /home/data/ansible/ && ansible-playbook playbook-standard.yaml --extra-vars "{'host':'$target', 'tar_name':'$tar_name', 'target_name':'$target_name', 'command_1':'$command_1', 'command_2':'$command_2', 'command_3':'$command_3', 'command_4':'$command_4', 'command_5':'$command_5'}"
    
    done

fi
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档