DolphinScheduler升级部署简化思路及脚本实现 (1.2.1版本 其他版本需要适应性修改)

抛出问题

为啥不用jenkins部署?

ds可以用jenkins部署吗?那肯定是可以的,那我们为啥不用jenkins部署呢?
• 消耗jenkins机器性能。ds依赖包比较多,打包的时候会将所有的包打进tar.gz文件,而我们实际开发中,基本不需要替换除了dolphinscheduler相关包之外的其他包,每次重新打包非常消耗jenkins机器性能;
• DS服务器和jenkins服务器存在连通性问题。DS服务器和jenkins服务器不能都做免密,服务器密码又不好写在shell脚本中,存在安全性问题;
于是决定使用脚本部署,通过执行脚本达到一键升级效果。

脚本内容执行步骤

  1. 进入到项目目录;
  2. 切换分支;
  3. 拉取最新代码;
  4. maven打包DS项目,获取tar.gz;
  5. 解压tar.gz包;
  6. 如果是同时需要DSjar,不需要部署,则使用mv命令直接移动ds jar到指定位置;
  7. 如果需要部署到指定机器,先scp ds jar到指定服务器的指定目录;
  8. 连接远程机器,并重启DS服务

脚本代码

package.sh
#!/bin/bash
ds_dir=$1
branch=$2
echo ds项目路径:$ds_dir

cd $ds_dir

# git拉取最新代码
git checkout $branch
git pull
# maven打包ds
mvn -U clean package -Prelease -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
cd $ds_dir/dolphinscheduler-dist/dolphinscheduler-backend/target
# 解压tar.gz包
tar -zxvf apache-dolphinscheduler-incubating-1.2.1-SNAPSHOT-dolphinscheduler-backend-bin.tar.gz
local_upgrade.sh
#!/bin/bash
remote=$1
remote_dir=$2
branch=$3
echo 远程机器地址:$remote:$2
# ds项目目录
ds_dir=/xxx/xxx/deepexi-daas-dolphinscheduler
# 打包ds项目,并解压
sh package.sh $ds_dir $branch

# 移动ds jar到指定位置
# target_dir=~/script/ds/
# mv $ds_dir/dolphinscheduler-dist/dolphinscheduler-backend/target/apache-dolphinscheduler-incubating-1.2.1-SNAPSHOT-dolphinscheduler-backend-bin/lib/dolphinscheduler* $target_dir
# 传输ds jar到远程机器
scp $ds_dir/dolphinscheduler-dist/dolphinscheduler-backend/target/apache-dolphinscheduler-incubating-1.2.1-SNAPSHOT-dolphinscheduler-backend-bin/lib/dolphinscheduler* root@$remote:$2/lib
ssh root@$remote "su dolphinscheduler -c 'sh $2/bin/stop-all.sh; sleep 5; sh $2/bin/start-all.sh; exit'" 
exit
执行示例:

sh local_upgrade.sh 192.168.0.1 /data/dolphinscheduler dev

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游语

对你有帮助,可以请我喝杯奶哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值