You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用GitHub Actions向多云多VM批量部署应用?

GitHub Actions 跨Azure/AWS多VM批量部署实现方案

GitHub Actions 没有直接命名为「部署组」的原生功能,但完全可以覆盖Azure DevOps部署组的多节点批量发布能力,以下是经过生产验证的几种实现思路,你可以根据自己的运维习惯选择:

方案1:自托管Runner组(最贴近Azure DevOps部署组使用习惯)

这个方案的逻辑和Azure DevOps部署组几乎一致,不需要额外调整原有部署脚本逻辑:

  • 先把所有Azure、AWS上的目标VM注册为GitHub仓库/组织级的自托管Runner,给Runner统一打自定义标签,比如按环境打deploy-env:prod,按云厂商打cloud:azure/cloud:aws,按可用区打az:east-1这类标签做节点分组
  • 在工作流里通过标签匹配目标节点组,结合strategy配置控制并发度、失败策略,实现滚动部署、分批发布,最小化发布对业务的影响
  • 示例工作流配置:
name: 多VM批量部署
on:
  push:
    branches: [ main ]
jobs:
  deploy:
    runs-on: [self-hosted, 'deploy-env:prod'] # 匹配所有打了对应标签的目标节点
    environment: production # 可绑定GitHub环境,配置部署前人工审批
    strategy:
      max-parallel: 2 # 每次同时部署2台,避免全量节点同时重启导致服务不可用
      fail-fast: false # 单个节点部署失败不中断其余节点的部署流程
    steps:
      - uses: actions/checkout@v4
      - name: 拉取构建制品
        run: wget ${{ secrets.ARTIFACT_INTERNAL_URL }} -O /opt/app/release.tar.gz
      - name: 停止旧服务
        run: sudo systemctl stop my-app
      - name: 更新版本并重启
        run: |
          tar -zxf /opt/app/release.tar.gz -C /opt/app/
          sudo systemctl start my-app
      - name: 本地健康检查
        run: curl -f http://localhost:8080/health
  • 这个方案的优势是不需要给VM开放公网SSH/WinRM端口,所有通信都是VM主动向GitHub发起到443端口的出站连接,安全组配置更简单,每个节点的部署日志可以直接在GitHub工作流页面查看。

方案2:对接云厂商原生批量运维能力(适合大规模VM集群)

如果不想在业务VM上额外维护Runner代理,可以直接对接云厂商自带的无代理批量管理能力:

  • AWS侧:所有EC2实例默认预装SSM Agent,只需要给VM绑定对应权限的IAM角色,在GitHub Actions里通过AWS官方认证Action配置好临时凭证后,直接调用SSM Run Command接口,就能按标签、资源组筛选目标EC2批量执行部署脚本,原生支持分批部署、错误阈值控制、自动回滚配置
  • Azure侧:通过Azure官方登录Action完成服务主体认证后,调用Azure CLI的az vm run-command invoke命令,即可按标签、资源组筛选目标Azure VM批量下发部署命令,可直接复用Azure原有VM权限、运维审计体系
  • 这个方案不需要在VM上装额外代理,适合VM规模较大、已经在使用云厂商原生运维工具的场景。

方案3:轻量SSH批量部署(适合小规模测试场景)

如果VM数量在10台以内、测试环境临时部署,可以把VM的SSH连接信息存到GitHub Secrets里,用并行SSH工具批量连接目标节点执行部署脚本。注意这个方案不要把SSH 22端口直接暴露在公网,优先通过跳板机连接,且尽量用短期临时密钥,不要用长期固定的私钥凭证,避免安全风险。

实用提示:建议搭配GitHub Environments功能做环境隔离,不同环境的节点标签、审批规则、环境变量单独配置,所有部署操作、节点状态都有全链路审计,整体使用体验和Azure DevOps部署组基本对齐。

内容的提问来源于stack exchange,提问作者Sarmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 08:24:26