主机部署

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

云效流水线(Flow)支持将制品部署到阿里云ECS服务器、公网主机、免费体验主机中,本文将介绍如何接入主机并创建和配置部署任务。

方案概览

  1. 接入新主机:创建主机组并接入新主机。

  2. 添加主机部署任务:创建流水线主机部署任务或在已存在的流水线中添加相关的主机部署任务。

  3. 配置主机部署任务:对已创建的流水线中的主机部署任务,进行相关的配置。

  4. 管理主机部署任务:对主机部署任务进行管理,包括查看部署详情部署历史回滚

接入新主机

接入到阿里云ECS服务器

  1. 在流水线 Flow控制台页面,选择导航菜单全局设置,进入设置页面,单击左侧导航菜单主机组管理

  2. 在主机组管理页面,根据需求新建主机组选择目标主机组,单击添加新主机,在弹出的对话框中,选择添加方式为阿里云ECS。如何创建主机组,请参见主机组管理

  3. 选择服务连接地域,在可添加的主机列表里选择需要添加的主机实例,可自行添加服务连接,点击保存即可完成主机组与阿里云ECS服务器的绑定。

    image

说明

对部署权限的相关说明,请参见主机组成员权限

接入到公网主机

  • 云效流水线 Flow支持在对应主机中安装 Runner 的方式,部署到非阿里云的公网主机(包括其他公有云主机或者可以连通公网的自有主机)。

  • 您可以按照以下方式,将您的公网主机加入主机组,从而让 Flow 能对其进行部署。

    1. 添加新主机,选择 添加方式手动安装Runner

      image

    2. 复制接入主机下所展示的命令行到需要添加的主机上执行,控制台出现“service started”和“service status running ”提示字样,即表示接入成功。

      重要

      主机需要能访问公网。

      image

    3. Runner 安装成功后,新机器就会自动添加至当前集群,请刷新主机列表后查看。

      image

说明

对部署权限的说明,请参见流水线成员权限

接入到免费体验主机

  1. 添加新主机,添加方式选择免费体验主机

  2. 点击阿里云体验实验室,前往申请免费体验资源。

    image

  3. 点击立即开始,进入资源申请页面。

    image

  4. Flow有实验资源体验(5小时)领取免费试用额度个人账号资源三种实验资源可供选择。详情请参见界面所展示的实验资源说明,以实验资源体验(5小时)为例。

    image

  5. 完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,其中 AK IDAK SecretECS 实例 ID地域为主机导入的关键信息。

    123123123

  6. 返回 Flow,将体验资源的 AK IDAK SecretECS 实例 ID地域分别填写至对应位置,保存完成主机组添加。

    image

  7. 点击保存,Flow 会在体验主机上执行安装 agent,预计会等待 15s 左右时间,请耐心等待,在主机组界面刷新便可看到当前绑定主机信息。

    image

使用以上部署方式完成主机部署后,您可以在流水线的部署任务中选择该主机组。

添加主机部署任务

可以通过两种形式添加部署任务:

  • 创建流水线的时候,选择包含部署任务的模板。

  • 在已有流水线中添加新任务,并选择部署任务。

流水线模板创建

新建流水线时,选择对应的开发语言,可以查看当前语言下的默认流水线模板,选择带有主机部署节点的流水线模板,即可快速使用构建能力 。

image

编排流水线,添加部署任务

在已有的流水线中,选择新的任务 > 部署,选择所需要的部署方式。

image

配置主机部署任务

进入部署任务,进行如下配置:

  1. 选择制品,制品来源于上游的构建任务。关于如何得到构建制品,请参见测试构建

  2. 创建或者选择主机组,部署组用于管理部署的资源和配置。关于如何创建部署组,请参见主机组管理

  3. 通过部署配置,配置制品的下载路径,执行用户和具体的部署执行命令。

    1. 从示例代码源选择一个SpringBoot代码仓库,其中包含启动脚本deploy.sh

      image

    2. 在部署机安装Java运行环境。

    3. 在流水线构建出制品。为了进行部署,首先需要构建出制品。本示例中的制品是一个 tgz 压缩包,在构建任务中可以指定一个或者多个文件(文件夹),Flow 的制品中就会包含这些文件(文件夹)。详情请参见归档至云效公共存储空间

      在本例中,需要将target/application.jar和deploy.sh两个文件打包到制品中。因此需要在构建任务中按下面的方式进行配置:

      image

    4. 在主机部署任务中,可以进行部署相关的配置,用于将构建产物在部署机上进行安装。

      image

      相关配置

      说明

      下载路径

      部署配置中的下载路径就是构建物上传步骤所产生压缩包所处的路径。

      执行用户

      填写执行部署脚本的用户,如 admin 等。

      部署脚本

      因为实际的部署脚本已经打包到了构建产出的压缩包中,因此部署脚本只需简单地进行解压和执行即可。

      mkdir -p /home/admin/application
      tar zxvf /home/admin/app/package.tgz -C /home/admin/application/
      sh /home/admin/application/deploy.sh restart
      重要

      Flow 在部署过程中,会下发部分以rdc_deploy_command_开头的部署进程,请勿在部署脚本中对此类部署进程进行操作,否则可能会导致部署失败。

  4. 配置部署策略,避免不稳定发布对用户的影响, 保障业务交付的稳定。

    如果您需要一次发布多台主机,Flow 支持分批发布,您可在主机部署任务中指定对应的部署策略。假如您有 4 台主机,选择分 2 批发布,则每一批自动发布 2 台主机。

    暂停方式

    说明

    第一批暂停

    第一批发布完成后,您可先进行验证,点击继续后可执行后续发布。

    不暂停

    每一批发布完成后,自动执行后续批次的发布。

    每批暂停

    每一批发布完后,都需要手动确认是否继续发布。

    分批数量:指定主机分批的数量,指定分批发布的数量,会按照相应的数量进行分批部署。

    image

  5. 部署时如何使用环境变量,请参见环境变量部署使用环境变量部分。

管理主机部署任务

查看部署详情

配置完部署任务后,运行流水线执行部署任务,即会将对应的制品部署到指定的部署组。在部署过程中,可以点击部署任务,获取最新的部署详情,确保部署的正确性。

  1. 流水线配置完成,在流水线运行页面,在主机部署任务中,可以点击部署详情查看部署过程。

    image

  2. 部署详情会显示当前部署的整体状态和情况。

    image

    部署状态

    说明

    部署中

    可以执行终止操作,并查看日志。

    待部署

    当前无操作。

    已成功

    成功可以查看部署日志。

    已失败

    失败可以查看部署日志,并在卡片视图上进行重试发起部署。

    已跳过

    跳过当前部署任务。

    常见部署问题,请参见部署常见问题

部署历史回滚

您可在具体流水线执行记录中部署历史中,查看到该流水线所有执行的部署历史记录,并可选择其中任意一条历史记录进行回滚操作。Flow 会根据当时运行的部署脚本和构建制品重新执行部署任务,以实现回滚的效果。

image

警告

流水线部署包仅保留30天,记录已超过30天无法回滚。