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

如何构建Azure Repos至Linux服务器的CI/CD同步流水线?

Azure Repos 同步至 Linux 服务器的 CI/CD 流水线实现方案

前提准备

  • 在 Linux 服务器上生成 SSH 密钥对,将公钥写入服务器的 ~/.ssh/authorized_keys 文件,确保 Azure DevOps 能无密码 SSH 连接服务器
  • 确认 Linux 服务器开放 SSH 端口(默认22),且 Azure DevOps 托管代理可访问该服务器
  • 在 Azure DevOps 项目中创建新流水线

流水线配置步骤

1. 关联源代码源

创建流水线时选择「Azure Repos Git」作为代码源,绑定你的目标仓库。

2. 编写 YAML 流水线配置

使用以下模板,根据实际路径调整参数:

trigger:
  branches:
    include:
      - main  # 替换为需要触发同步的分支
  paths:
    include:
      - '*'  # 监听所有文件变更,可按需指定特定文件夹

pool:
  vmImage: 'ubuntu-latest'  # 使用Azure托管Ubuntu代理

steps:
- checkout: self
  fetchDepth: 1  # 仅拉取最新代码,提升执行速度

- task: SSH@0
  displayName: '同步代码至Linux服务器'
  inputs:
    sshEndpoint: '你的Linux服务器SSH服务连接'  # 提前在Azure DevOps配置SSH服务连接
    runOptions: 'commands'
    commands: |
      # 创建服务器目标目录(不存在则创建)
      mkdir -p /path/to/target/folder
      # 同步代码至服务器,排除.git目录
      rsync -avz --delete --exclude='.git' $(Build.SourcesDirectory)/ user@server-ip:/path/to/target/folder/

3. 配置SSH服务连接

进入 Azure DevOps 项目的「项目设置」→「服务连接」,添加「SSH」类型连接,填入服务器IP、用户名、对应私钥,测试连接确保可用。

4. 验证流水线

提交代码变更到目标分支,触发流水线运行,检查 Linux 服务器目标目录是否同步最新文件。

可选优化

  • 仅同步特定文件夹:修改trigger.paths.include为具体路径,比如- '/src/*'
  • 错误通知:添加「Send Email」任务,流水线失败时发送告警邮件
  • 增量同步:优化rsync参数,仅传输变更文件,降低带宽消耗
  • 权限修正:同步完成后添加命令调整文件权限,比如chmod -R 755 /path/to/target/folder/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:35:29