阿里云云效流水线教程

第一章 云效流水线教程

大家有时候需要云效的流水线来一键部署,下面把关键的注意事项写出来。

1、登录云效

2、新建流水线,选择自己的ECS

3、选择代码,选择版本

4、java构建的时候需要注意,其中涉及到自己的jar,可能存在同一版本号,无法更新下载到最新的文件,所以部署的时候需要首先把以前的删除掉,然后再去打包,所以下面的命令需要修改一下。

#com/naturobot是自己项目的包名
rm -rf /root/.m2/repository/com/naturobot
# 下面的命令不用改,原来是什么样的就是什么样的。
mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skip

 5、构建物的上传文件夹地址,大家注意一下。直接就是项目的文件夹路径,前面没有斜杠。这里需要注意,你的deploy.sh文件必须在项目中要存在的,文件名随便起,这里的路径一定要正确,不然找不到该文件就无法部署了。

 6、deploy.sh文件demo

#!/bin/bash

# 修改APP_NAME为云效上的应用名
APP_NAME=naturobot-user-service
VERSION_NAME=0.0.1

PROG_NAME=$0
ACTION=$1
APP_START_TIMEOUT=50    # 等待应用启动的时间
APP_PORT=8031          # 应用端口
HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT}  # 应用健康检查URL
HEALTH_CHECK_FILE_DIR=/opt/${APP_NAME}/status   # 脚本会在这个目录下生成nginx-status文件
APP_HOME=/opt/${APP_NAME} # 从package.tgz中解压出来的jar包放到这个目录下
JAR_NAME=${APP_HOME}/${APP_NAME}-${VERSION_NAME}.jar # jar包的名字
JAVA_OUT=${APP_HOME}/logs/start.log  #应用的启动日志

# 创建出相关目录
mkdir -p ${HEALTH_CHECK_FILE_DIR}
mkdir -p ${APP_HOME}
mkdir -p ${APP_HOME}/logs
usage() {
    echo "Usage: $PROG_NAME {start|stop|restart}"
    exit 2
}

health_check() {
    echo "check ${HEALTH_CHECK_URL} success"
}
start_application() {
    echo "starting java process"
    nohup java -jar -Dspring.profiles.active=test1230 ${APP_NAME}-${VERSION_NAME}.jar >/dev/null 2>&1 &
    echo "started java process"
}

stop_application() {
   checkjavapid=`ps -ef | grep java | grep ${APP_NAME}-${VERSION_NAME}.jar | grep -v grep |grep -v 'deploy1230.sh'| awk '{print$2}'`
   
   if [[ ! $checkjavapid ]];then
      echo -e "\rno java process"
      return
   fi

   echo "stop java process"
   times=60
   for e in $(seq 60)
   do
        sleep 1
        COSTTIME=$(($times - $e ))
        checkjavapid=`ps -ef | grep java | grep ${APP_NAME}-${VERSION_NAME}.jar | grep -v grep |grep -v 'deploy1230.sh'| awk '{print$2}'`
        if [[ $checkjavapid ]];then
            kill -9 $checkjavapid
            echo -e  "\r        -- stopping java lasts `expr $COSTTIME` seconds."
        else
            echo -e "\rjava process has exited"
            break;
        fi
   done
   echo ""
}
start() {
    start_application
    health_check
}
stop() {
    stop_application
}
case "$ACTION" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        stop
        start
    ;;
    *)
        usage
    ;;
esac

 7、主机部署,这里就比较简单,如果配置主机组的时候什么ECS也看不到,那可能是你的RAM没有权限。找一个权限大一点的帐号或者分配一个权限。然后就是下载路径就是自己的ECS上的路径,想部署在哪里就写自己的文件夹地址就可以了。执行用户就是ROOT,不需要修改。比较重要的就是下面的部署脚本,需要懂得基础的linux命令。

# 文件夹是否存在,不存在创建一个文件夹,存在也不报错
mkdir -p /opt/naturobot-user-service
# 删除以前的文件夹
rm -rf /opt/naturobot-user-service/naturobot-user-service
# 解压
tar zxvf /opt/naturobot-user-service/package.tgz -C /opt/naturobot-user-service/
# 复制
mv -f /opt/naturobot-user-service/naturobot-user-service/target/naturobot-user-service-0.0.1.jar /opt/naturobot-user-service/naturobot-user-service-0.0.1.jar
# 复制
mv -f /opt/naturobot-user-service/naturobot-user-service/deploy1230.sh /opt/naturobot-user-service/deploy1230.sh
# 删除
rm -rf /opt/naturobot-user-service/naturobot-user-service
# 赋权
chmod 777 /opt/naturobot-user-service/naturobot-user-service-0.0.1.jar
chmod 777 /opt/naturobot-user-service/deploy1230.sh
cd /opt/naturobot-user-service
#启动,这里不需要停止,是因为在deploy1230.sh文件中会先停止在启动。
sh /opt/naturobot-user-service/deploy1230.sh restart

第二章 课外知识

1、云效流水线 Flow 是什么,阿里官网是这样解释的。

「流水线」,又名「Flow」,是一款企业级、自动化的研发交付流水线, 提供灵活易用的持续集成、持续验证、 持续发布功能,帮助企业高质量、高效率的交付业务。

流水线是持续交付的载体,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线过程的持续交付。通过持续向团队提供及时反馈,让交付过程高效顺畅。

2、为什么选择「Flow」。

快速上手配置。相比较自建的持续交付工具,使用 Flow 仅仅需要几步,就可以快速搭建 CICD 流程。Flow 为你提供了开箱即用的构建环境,提供了数十种通用的流水线模版帮助你快速创建流水线,从此,你的企业无需花费精力维护你的 CICD 工具。同时,我们提供了支持各种场景的最佳实践文章供你参考,帮助你更快上手使用。Flow语言专项场景。

3、各种覆盖各种工具和技术栈

Flow 作为一款企业级的自动化交付流水线,全面覆盖研发场景中涉及的技术栈和工具链。

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

renkai721

谢谢您的打赏!

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

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

打赏作者

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

抵扣说明:

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

余额充值