本文介绍主机项目是如何通过 Zadig 快速搭建自动化流程,下面以 microservice-demo 案例为例进行演示,该案例包含 Vue.js 前端服务和 Golang 后端服务,实现的主要功能:分别展示前后端代码的构建时间。

说明:

  1. 请先 fork 以上代码库,然后在 Zadig 上集成个人代码仓库,详见文档
  2. 本教程使用的云主机与 Zadig 系统在同一内网环境,用于 dev 环境和 qa 环境的云主机名称分别为 devqa,IP 地址分别为 172.16.0.23172.16.0.24,请根据您的实际主机地址修改。

登录 Zadig,进入资源配置 -> 主机管理,点击新建,填写主机信息。

创建

参数说明:

# 步骤一:在主机的 $HOME/.ssh 目录下执行以下命令生成 SSH 密钥对
ssh-keygen -t rsa -C "your_email@example.com" 
# 步骤二:将生成的公钥追加到 $HOME/.ssh/authorized_keys 文件中
cat id_rsa.pub >>  authorized_keys
# 步骤三:将生成的私钥 id_rsa 填入上图私钥字段中

进入 Zadig 系统,点击新建项目 -> 填写项目名称 vm-microservice-demo -> 选择主机项目 -> 点击立即创建 -> 点击下一步

创建项目

创建项目

创建项目

添加 Golang 后端服务

步骤一:点击 + 按钮,输入服务名称 backend,添加服务。

添加服务

步骤二:为 backend 服务配置构建、资源、部署和探活

构建配置

添加服务

添加服务添加服务

#!/bin/bash
set -ex
env

if [ -e $WORKSPACE/backend ]; then
    rm -rf $WORKSPACE/backend
fi

cp -r $WORKSPACE/zadig/examples/microservice-demo/backend $WORKSPACE/backend
cp $WORKSPACE/zadig/examples/microservice-demo/vm/restart.sh $WORKSPACE/backend/restart.sh
cd $WORKSPACE/backend
chmod +x restart.sh
make build-backend
tar cvf $PKG_FILE backend

部署配置

部署配置部署配置

#!/bin/bash
set -ex
eval HOST_NAMES=\${${ENV_NAME}_HOST_NAMEs}
for h in $HOST_NAMES
do
eval VM_PK=\${${h}_PK}
eval VM_PORT=\${${h}_PORT}
eval VM_USERNAME=\${${h}_USERNAME}
eval VM_IP=\${${h}_IP}
scp -P $VM_PORT -i $VM_PK $ARTIFACT $VM_USERNAME@$VM_IP:/cfs/microservice/backend/$PKG_FILE
scp -P $VM_PORT -i $VM_PK $WORKSPACE/zadig/examples/microservice-demo/vm/restart.sh $VM_USERNAME@$VM_IP:/cfs/microservice/backend/restart.sh
ssh -p $VM_PORT -i $VM_PK $VM_USERNAME@$VM_IP 'cd /cfs/microservice/backend && ./restart.sh '$PKG_FILE''
done

探活配置

部署配置

填写完毕后,点击保存按钮完成 backend 服务的配置。

添加 Vue.js 前端服务

点击 + 按钮继续新建 frontend 服务并完成构建、资源、部署配置。

构建配置

服务构建

#!/bin/bash
set -ex

cd $WORKSPACE/zadig/examples/microservice-demo/frontend
make install-frontend-dep build-frontend
tar cvf $PKG_FILE dist

部署配置

服务部署

#!/bin/bash
set -ex

eval HOST_NAMES=\${${ENV_NAME}_HOST_NAMEs}

for h in $HOST_NAMES
do
eval VM_PK=\${${h}_PK}
eval VM_PORT=\${${h}_PORT}
eval VM_USERNAME=\${${h}_USERNAME}
eval VM_IP=\${${h}_IP}

scp -P $VM_PORT -i $VM_PK $ARTIFACT  $VM_USERNAME@$VM_IP:/cfs/microservice/frontend/$PKG_FILE
ssh -p $VM_PORT -i $VM_PK $VM_USERNAME@$VM_IP 'cd /cfs/microservice/frontend && 'rm -rf dist' && 'tar xvf $PKG_FILE' && 'rm $PKG_FILE''
done

填写完毕后,点击保存按钮完成 frontend 服务的配置。

点击向导的下一步,配置服务关联的主机,继续点击下一步 -> 完成结束项目向导。

加入环境

完成向导

选择 vm-microservice-demo-workflow-dev 工作流 -> 点击执行 -> 选择服务,对 dev 环境的服务进行更新。

点击「运行」,可以运行工作流任务。

启动工作流

启动工作流

触发工作流后,可查看工作流运行状况,点击构建可查看服务构建的实时日志。

工作流运行

待工作流运行完毕,进入环境查看服务状态,可看到配置了探活检测的 backend 服务已正常运行。

服务状态

访问服务,可看到前后端构建时间也在服务中体现出来。

访问服务

添加触发器,使得代码 Push commit、Pull Request、Push tag 都能自动触发部署服务。

配置工作流

配置工作流

提交代码变更

提交代码变更

配置工作流 -> 参考 IM 通知填写相关配置 -> 保存修改。

IM 配置

工作流执行后,会自动将运行结果和环境、服务等信息推送到 IM 系统中,方便及时跟进。

IM 通知