本文介绍主机项目中的服务相关操作。

点击添加服务按钮 -> 输入服务名称 -> 填写构建配置、部署配置及探活配置后,保存即可新建主机服务。

新增服务

构建配置

配置服务构建所需的环境、代码等信息,定义服务的构建打包过程。

构建环境

配置构建过程运行时的环境,细节请阅读构建环境

代码信息

配置服务构建时需要的相关代码库,细节可阅读代码信息

构建变量

包括系统内置构建变量和用户自定义构建变量,可在构建脚本中直接使用,细节请阅读构建变量

通用构建脚本

在通用构建脚本中声明代码的构建过程和实现,细节请阅读通用构建脚本

高级配置

包括构建超时配置、缓存配置和资源配置,细节请阅读高级配置

更多构建步骤

包括镜像构建和二进制包存储,细节请阅读更多构建步骤

部署配置

配置部署方式及部署脚本,定义服务的部署过程。

部署脚本

本地直连部署

在 Zadig 中执行部署脚本,利用部署工具(比如:Ansible)将服务部署到目标主机上。需要确保部署工具就绪,Zadig 系统和目标部署主机的网络连通。

SSH Agent 远程部署

安全登录到目标机器上执行部署操作。需要提前在系统中配置好主机资源,可参考主机管理

内置部署变量

除了可使用构建变量中的变量,还包括以下变量:

  • <AGENT_NAME>_PK:通过 SSH Agent 远程登录主机使用的私钥信息,其中 AGENT_NAME 为 SSH Agent 名称。使用下图例中的主机作为 SSH Agent,则部署脚本中使用 $zadig_PK 即可获得该主机服务器的私钥信息。
  • <AGENT_NAME>_USERNAME:通过 SSH Agent 远程登录到主机的用户名称,下图例中即为 $zadig_USERNAME。
  • <AGENT_NAME>_IP:SSH Agent 目标服务器的主机地址(不包含端口),下图例中即为 $zadig_IP。
  • <AGENT_NAME>_PORT:SSH Agent 目标服务器的主机地址中的端口,下图例中即为 $zadig_PORT。

部署脚本

  • <ENV>_HOST_IPs:获得指定环境所关联的所有主机 IP,下图例中,使用 $dev_HOST_IPs 即可获得 dev 环境所关联的所有主机 IP 信息。
  • <ENV>_HOST_NAMEs:获取指定环境所关联的所有主机名称,下图例中即为 $dev_HOST_NAMEs。

部署脚本

  • <HOST_NAME>_PK:HOST_NAME 为具体的主机名称,通过 <HOST_NAME>_PK 获得对应主机的私钥信息,下图例中即为 $dev_PK。
  • <HOST_NAME>_USERNAME:HOST_NAME 为具体的主机名称,通过 <HOST_NAME>_USERNAME 获得对应主机的用户名信息,下图例中即为 $dev_USERNAME。
  • <HOST_NAME>_IP:HOST_NAME 为具体的主机名称,通过 <HOST_NAME>_IP 获得对应主机的地址信息(不含端口),下图例中即为 $dev_IP。
  • <HOST_NAME>_PORT:HOST_NAME 为具体的主机名称,通过 <HOST_NAME>_PORT 获得对应主机地址中的端口信息,下图例中即为 $dev_PORT。

部署脚本

  • ARTIFACT:部署的交付物包,通过该变量可获取交付物包。
    • 使用构建部署工作流部署服务时,交付物包的实体为更多构建步骤中增加的二进制包存储,即 $PKG_FILE 文件。
    • 使用交付物部署工作流部署服务时,交付物包的实体为运行工作流时从对象存储中选择的资源。

部署脚本

部署脚本和通用构建脚本共享存储卷,在构建脚本中生成的包可直接在部署脚本中使用。可在部署脚本中使用构建变量内置部署变量

探活配置

服务部署成功后,按照一定规则对服务进行探活检测。

配置探活

字段说明:

  • 协议:支持 HTTP、HTTPS 和 TCP。
  • 路径:HTTP/HTTPS 请求的健康检查路径。
  • 端口:支持 1 - 65535 端口。
  • 响应超时:超出设定时间,判断为不健康。
  • 高级设置
    • 探测间隔:两次探活请求的间隔时间,默认 2s。
    • 健康阈值:从不健康变为健康的连续探测次数。
    • 不健康阈值:从健康变为不健康的连续探测次数。

策略配置

点击策略,设置部署服务的超时时间以及交付物命名规则,细节可阅读:策略配置

策略配置

更新服务

  • 选择需要修改的服务,修改服务配置,点击保存 -> 点击更新环境 -> 在弹框中选择需要更新的环境。

更新服务

删除服务

  • 点击服务右侧的删除按钮将服务删除。删除服务后,若需将服务从环境中也删除,点击更新环境即可。

删除服务