本文介绍主机项目是如何通过 Zadig 快速搭建自动化流程,下面以 microservice-demo 案例为例进行演示,该案例包含 Vue.js 前端服务和 Golang 后端服务,实现的主要功能:分别展示前后端代码的构建时间。
说明:
dev
、qa
,IP 地址分别为 172.16.0.23
、172.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
-> 选择主机项目
-> 点击立即创建
-> 点击下一步
。
步骤一:点击 +
按钮,输入服务名称 backend
,添加服务。
步骤二:为 backend
服务配置构建、资源、部署和探活
构建配置
go1.13
添加步骤
中选择二进制包存储路径
,本例中路径为 $WORKSPACE/backend/$PKG_FILE
#!/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
部署配置
本地直连部署
microservice-demo
仓库#!/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
服务的配置。
点击 +
按钮继续新建 frontend
服务并完成构建、资源、部署配置。
构建配置
yarn 1.15.2
和 node 8.15.0
添加步骤
中选择二进制包存储路径
,本例中路径为 $WORKSPACE/zadig/examples/microservice-demo/frontend/$PKG_FILE
#!/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 都能自动触发部署服务。
vm-microservice-demo-workflow-dev
Pull Request
事件为例,提交代码变更后,会有触发工作流的信息。可点击右侧 Details
链接快速跳转到触发的工作流配置工作流 -> 参考 IM 通知填写相关配置 -> 保存修改。
工作流执行后,会自动将运行结果和环境、服务等信息推送到 IM 系统中,方便及时跟进。