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

目录

  • 前言
  • 一、部署应用步骤
    • 1、创建流水线
    • 2、编辑流水线源
    • 3、编辑java构建上传
    • 4、编辑主机部署

前言

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

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

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


一、部署应用步骤

1、创建流水线

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

【云效】使用流水线进行应用部署_第1张图片

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

【云效】使用流水线进行应用部署_第2张图片

在右侧点击创建流水线。

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

【云效】使用流水线进行应用部署_第3张图片

在右侧点击新建流水线。

选择模板进行创建:

【云效】使用流水线进行应用部署_第4张图片

2、编辑流水线源

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

【云效】使用流水线进行应用部署_第5张图片

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

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

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

【云效】使用流水线进行应用部署_第6张图片

点击右上角的仅保存。

3、编辑java构建上传

【云效】使用流水线进行应用部署_第7张图片

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

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

【云效】使用流水线进行应用部署_第8张图片

4、编辑主机部署

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

【云效】使用流水线进行应用部署_第9张图片
【云效】使用流水线进行应用部署_第10张图片

我是选择的阿里云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,然后就运行流水线吧。搞定!

你可能感兴趣的:(云效,云效部署)