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

如何通过Pipeline将Azure仓库推送至cPanel私有仓库触发自动部署

实现方案

核心思路是放弃FTP传输,直接在Azure Pipeline中通过标准Git SSH协议向cPanel私有仓库执行推送操作,原生触发cPanel的autodeploy钩子,不需要额外开发触发接口。

cPanel侧前置配置

  • 登录cPanel进入「Git Version Control」面板,确认目标私有仓库已开启自动部署功能,复制该仓库的SSH格式克隆地址备用(不要用HTTPS格式地址,cPanel的HTTPS Git接口默认不开放推送权限)
  • 进入「SSH Access」面板,生成一对专用的SSH密钥对,将公钥添加到当前cPanel账号的授权密钥列表,给密钥分配仓库读写权限;本地先手动执行一次Git推送测试,确认推送后自动部署可以正常触发,先排除cPanel侧配置问题
  • 本地执行ssh-keyscan 你的cPanel服务器IP获取服务器的SSH公钥指纹备用,避免Pipeline连接时因主机校验卡住

Azure Pipeline配置

  • 进入Azure DevOps项目的「Pipelines - Library」配置页,将刚才生成的SSH私钥上传为安全文件,同时把之前拿到的cPanel服务器SSH公钥指纹存为机密变量,不要在日志里明文输出这类敏感信息
  • 在你的Pipeline配置文件中添加对应步骤,核心流程参考如下:
trigger:
  - main # 触发Pipeline的源码分支

pool:
  vmImage: ubuntu-latest # 用Linux构建机跑Git命令兼容性最好

steps:
  - checkout: self
    persistCredentials: true

  # 配置SSH免密认证
  - task: InstallSSHKey@0
    inputs:
      knownHostsEntry: $(CPANEL_KNOWN_HOSTS) # 之前存的服务器指纹变量
      sshPublicKey: "你的SSH公钥内容"
      sshKeySecureFile: cpanel_deploy_key # 上传的私钥安全文件名

  # 执行Git推送
  - script: |
      git config --global user.name "Azure Deploy Bot"
      git config --global user.email "deploy-bot@your-domain.com"
      # 加cPanel仓库为远程源
      git remote add cpanel-prod 你之前复制的cPanel仓库SSH地址
      # 推送到对应分支,需要推构建产物的话提前切到构建输出目录再初始化Git推送即可
      git push cpanel-prod main:main --force
    displayName: "Push code to cPanel repo to trigger autodeploy"

常见问题排查

  • 推送报权限错误:先检查cPanel侧仓库目录的权限,属主必须是当前cPanel账号,不要给777这类过高权限,Git会自动拒绝不安全目录的读写操作;同时确认SSH密钥已经添加到授权列表且没有设置密钥密码
  • 推送成功但没触发自动部署:检查cPanel仓库的自动部署监听分支是不是和你推送的目标分支一致,部分旧版本cPanel默认只响应main/master分支的推送事件
  • 连接SSH超时:检查cPanel服务器的防火墙是不是放行了Azure构建机的出口IP,或者直接在cPanel防火墙里开放你账号SSH端口的访问规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:09:28