【云效】使用流水线进行应用部署

前言

「流水线」,又名「Flow」,是阿里云「云效」产品矩阵中的一款企业级自动化研发交付工具。

它提供了灵活易用的持续集成、持续验证和持续发布功能,旨在帮助企业高质量、高效率地交付业务。

流水线充当了持续交付的工具,通过构建自动化、集成自动化、验证自动化和部署自动化的过程,实现了从开发到上线的持续交付。


一、部署应用步骤

1、创建流水线

方法一:打开 代码管理,选择代码库:

在这里插入图片描述

然后在右侧选择对应的代码库点击进去,选择流水线:

在这里插入图片描述

在右侧点击创建流水线。

方法二:打开 流水线,选择我的流水线:

在这里插入图片描述

在右侧点击新建流水线。

选择模板进行创建:

在这里插入图片描述

2、编辑流水线源

选择代码源,我的代码库就是codeup,也可以选择别的代码源。

在这里插入图片描述

选择服务连接,如果没有就新建服务连接。

然后,选择正确的代码仓库和需要部署的分支。

工作目录可以为默认的目录。

在这里插入图片描述

点击右上角的仅保存。

3、编辑java构建上传

在这里插入图片描述

展开任务步骤里面的Java构建,选择正确的JDK版本和Maven版本。

展开任务步骤里面的构建物上传,其它默认,打包路径可以修改为自己实际的项目路径。

在这里插入图片描述

4、编辑主机部署

选好制品,然后新建主机组:

在这里插入图片描述
在这里插入图片描述

我是选择的阿里云ECS,按步骤走下去。

然后写好下载路径(我一般放在jar包目录的上一层目录中)。

然后是部署脚本,我是启的两个进程,我的脚本如下:

set -e;
if [ -f "/home/test/test-api/test-api.sh" ]; then /home/test/test-api/test-api.sh stop prod8094 8094; fi;

mkdir -p /home/test/test-api;
tar xf /home/test/test-api.tgz -o -C /home/test/test-api;
chmod +x  /home/test/test-api/test-api.sh;

/home/test/test-api/test-api.sh restart prod8094 8094;

echo "Sleep for a while to wait the 1st instance is ready."

i=40
while test $i -ge 0; do
sleep 1
echo $((i--))
done


echo "Wake up, restart the 2nd instance..."

if [ -f "/home/test/test-api/test-api.sh" ]; then /home/test/test-api/test-api.sh stop prod8095 8095; fi;
/home/test/test-api/test-api.sh restart prod8095 8095;

test-api.sh文件内容:

SERVICE_DIR=/home/test/test-api
SERVICE_NAME=test-api
SPRING_PROFILES_ACTIVE=$2

case "$1" in
    start)
        procedure=`ps -ef | grep -w "${SERVICE_NAME}" |grep -w "java"| grep -v "grep" | grep $3 | awk '{print $2}'`
        if [ "${procedure}" = "" ];
        then
            echo "start ..."
            if [ "$2" != "" ];
            then
                SPRING_PROFILES_ACTIVE=$2
            fi
            echo "spring.profiles.active=${SPRING_PROFILES_ACTIVE}"
            exec nohup java -Dfile.encoding=utf-8 -jar ${SERVICE_DIR}/${SERVICE_NAME}\.jar --spring.profiles.active=${SPRING_PROFILES_ACTIVE} >${SERVICE_DIR}/log.log 2>&1 &
            echo "start success"
        else
            echo "${SERVICE_NAME} is start"
        fi
    ;;
    stop)
        procedure=`ps -ef | grep -w "${SERVICE_NAME}" |grep -w "java"| grep -v "grep" | grep $3 | awk '{print $2}'`
        if [ "${procedure}" = "" ];
        then
            echo "${SERVICE_NAME} is stop"
        else
            kill -9 ${procedure}
            sleep 1
            argprocedure=`ps -ef | grep -w "${SERVICE_NAME}" |grep -w "java"| grep -v "grep" | grep $3 | awk '{print $2}'`
            if [ "${argprocedure}" = "" ];
            then
                echo "${SERVICE_NAME} stop success"
            else
                kill -9 ${argprocedure}
                echo "${SERVICE_NAME} stop error"
            fi
        fi
    ;;
    restart)
        $0 stop
        sleep 1
        $0 start $2
    ;;
    *)
        echo "usage: $0 [start|stop|restart] [dev|test|prod]"
    ;;
esac

把test-api.sh文件,放到服务器对应的目录/home/test/test-api里。

注意要给此文件访问权限:

chmod 777 /home/test/test-api/test-api.sh

配置好Nginx,然后就运行流水线吧。搞定!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

joinclear

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值