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

news2024/11/26 12:41:08

目录

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

前言

「流水线」,又名「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,然后就运行流水线吧。搞定!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/722510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot+mybatis-plus+mysql+vue实现物流信息管理系统(课设)

基于springbootmybatis-plusmysqlvue实现物流信息管理系统(课设) 一、系统介绍1、系统主要功能:2、环境配置 二、功能展示1.登陆2.用户管理3.个人信息4.物流管理 三、其它系统四、获取源码 一、系统介绍 1、系统主要功能: 用户&…

ElasticSearch 快速上手教程 (二) —— 基本概念术语

上一部分,我们讲解了 ES 的一些基本概念和应用场景,以及如何在本机搭建一个 ELK 测试环境。现在这篇文章带你了解 ES 当中一些基本术语以及相关的工作原理。 基本的概念术语 node(节点) ES 的一个运行实例,存储了部分文档数据,属…

文件包含基础

实验目的 通过本实验,理解文件包含的基本方法及文件包含需要注意的问题,为熟练掌握文件包含方法及防御奠定基础。 实验环境 操作机:kali 靶机:Windows 实验地址:http://靶机ip/exp/include/include1.php 用户名&…

ABC 195 C

不知道该怎么解释这道题&#xff0c;反正我不太会&#xff0c;感觉很帅 题意&#xff1a; Code&#xff1a; #include <bits/stdc.h>#define int long longusing namespace std;const int mxn2e310; const int mxe2e510; const int mod1e97; const int Inf1e18;int N;v…

基于FreeRTOS的嵌入式设备管理关键技术研究及实现(学习四)

硬件平台 终端设备的硬件选型主要由STM32芯片作为处理器&#xff0c;板载时钟电路和电源电路以及对外通信串口&#xff0c;并挂载AM2302温湿度传感器来实时收集环境相关信息&#xff0c;将收集到的信息通过NB-IoT通信模组上传到云端&#xff0c;从而实现整个环境监测功能。 主…

【重拾计划】模板 | N进制加法

N进制加法模板 基本原理 n进制转十进制&#xff0c;利用字符串处理&#xff0c;由于位数不同&#xff0c;采用倒序处理字符串。 代码实现 #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> usin…

phpoffice/phpspreadsheet读取excel表格中的图片并保存到本地

我们开发导入excel表格功能时&#xff0c;会遇到表格中带有图片的情况&#xff0c;怎样获取到表格的图片并且把图片保存到本地&#xff0c;这样就可以展示你导入的数据和图片&#xff0c;实现此功能。 这里介绍一下分别使用phpspreadsheet和PHPExcel扩展库来实现读取Excel内图片…

win10multiple editions意思详细介绍

multiple editions是win10系统的一个版本号&#xff0c;很多的小伙伴都不知道这个英文是什么意思&#xff0c;今天就给你们带来了win10multiple editions意思详细介绍&#xff0c;还不清楚的就快来看看吧。 multiple editions是什么意思&#xff1a; 1、multiple editions是多…

C++笔记之内置基本类型的默认构造函数

C笔记之内置基本类型的默认构造函数 code review! 文章目录 C笔记之内置基本类型的默认构造函数1.C中基本内置类型的默认构造函数2.C有没有一个“内置构造函数”这样一个名词&#xff1f;3.基本内置类型按照前面提到的规则进行初始化是C11才开始的新特性吗&#xff1f; 1.C中…

【NX】NXOpen::BlockStyler::Tree的个人使用类分享

网上关于NXOpen::BlockStyler::Tree的例子不是太多&#xff0c;控件默认id名称为tree_control01&#xff0c;因为例子不多很多功能得自己写&#xff0c;虽然NXOpen::BlockStyler::Tree的封装已经不错了&#xff0c;但是实际使用起来也不是很方便&#xff0c;比如像获取所有节点…

基于PyQt5的桌面图像调试仿真平台开发(8)锐化

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

机器学习基础之《特征工程(2)—特征工程介绍》

一、什么是特征工程 机器学习领域的大神Andrew Ng(吴恩达)老师说“Coming up with features is difficult, time-consuming, requires expert knowledge. “Applied machine learning” is basically feature engineering. ” 注&#xff1a;业界广泛流传&#xff1a;数据和特…

论文阅读-DF-Platter: Multi-Face Heterogeneous Deepfake Dataset(多人脸异构深度伪造数据集)

一、论文信息 文章名称&#xff1a;DF-Platter: Multi-Face Heterogeneous Deepfake Dataset 作者团队&#xff1a; 会议&#xff1a;cvpr2023 数据集地址&#xff1a;http://iab-rubric.org/df-platter-database 二、动机与创新 动机 目前大多数研究工作都集中在个人外表…

【零基础入门学习Python---Python中安全编程和测试之快速入门实践】

&#x1f680; 零基础入门学习Python&#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜…

Mysql基础之SQL语句

作定期复习和查询用&#xff0c;打开这篇博客提高效率&#xff0c;避免回视频或者百度上找 &#x1f442; 无论你多怪异我还是会喜欢你&#xff08;《刺客伍六七》动画推广版片尾曲&#xff09; - 周子琰 - 单曲 - 网易云音乐 内容来自B站黑马Mysql&#xff0c;检索使用 附上…

浅析Lambda架构

大家好&#xff0c;今天我们来介绍一个用于亿级实时数据分析架构Lambda架构。 Lambda架构 Lambda架构&#xff08;Lambda Architecture&#xff09;是由Twitter工程师南森马茨&#xff08;Nathan Marz&#xff09;提出的大数据处理架构。这一架构的提出基于马茨在BackType和Tw…

Python GUI编程利器:Tkinker中的消息和文本(7)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 和猫妹学Python&#xff0c;一起趣味学编程。 今日目标 实现下面效果&#xff1a; 消息(Message类) 消息用于显示多行文本消息&#xff0c;对标签进行替代&#xff0c;如果…

【数学建模】国赛真题分析 2012 A题 葡萄酒的评价

2012 A题 葡萄酒的评价 优秀论文地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/19WGpybgM6RncxTYhx61JRA?pwdvl22 提取码&#xff1a;vl22 –来自百度网盘超级会员V6的分享 确定葡萄酒质量时一般是通过聘请一批有资质的评酒员进行品评。每个评酒员在对葡萄酒进…

GWIN入门-完整一个程序

GWIN入门-完整一个程序 新建工程 右击工程名,添加.v文件 编写功能文件 /* timescale是Verilog HDL 中的一种时间尺度预编译指令,它用来定义模块的仿真时的时间单位和时间精度。 */`timescale 1ns/1ps module LED(input wire clk

第三步:STM32F4时钟介绍

1.0 时钟系统框图 1.1 时钟系统知识 1. STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。 ①、HSI是高速内部时钟&#xff0c;RC振荡器&#xff0c;频率为16MHz&#xff0c;精度不高。可以直接作为系统 时钟或者用作PLL时钟输入。    ②、HSE是高速外部时钟&#xff0c;可接石英…