SuperAPI AI 工具集

azure-devops

部署与运维

查看项目

更新于 10-19 01:57

技能介绍

用途

本技能用于在 Azure DevOps 中搭建 CI/CD 流水线,配置构建与发布阶段,管理 Azure DevOps 项目与服务连接,并将应用部署到 Azure 或其他云平台。适用于创建 CI/CD 流水线、配置构建与发布阶段、管理服务连接、部署到 Azure 或其他云平台,以及设置多阶段 YAML 流水线等场景。

前置条件

  • Azure DevOps 组织与项目
  • 目标环境的服务连接
  • 基本 YAML 理解
  • Azure 订阅(用于 Azure 部署)

主要能力

YAML 流水线结构

在仓库根目录创建 azure-pipelines.yml,可定义触发器、池、变量、阶段与作业。示例结构包含 Build 与 Deploy 两个阶段,使用 NodeTool 任务、脚本步骤、发布产物,以及依赖 Build 阶段并仅在 main 分支成功时执行的部署作业。

触发器

支持分支触发器(include/exclude 分支与标签)、拉取请求触发器(pr 分支与路径过滤)以及计划触发器(cron 表达式、displayName、always 等)。

作业与阶段

支持并行作业、矩阵策略(如 linux/windows/macos 多平台)、作业依赖(dependsOn)。

变量与参数

支持变量组(group)、运行时参数(parameters,含类型、默认值与可选值)、以及通过流水线设置注入的机密变量,并在步骤中通过 env 传递。

模板

支持作业模板与阶段模板,通过 parameters 传入参数,在 azure-pipelines.yml 中以 template 引用,实现可复用组件。

部署

支持环境部署(deployment 作业与 environment)、审批门(在 Azure DevOps UI 的 Environments 中配置审批检查与审批人)、以及滚动部署(rolling 策略与 maxParallel)。

Azure 服务任务

提供 Azure Web App 部署(AzureWebApp@1)、Azure Container Apps(AzureContainerApps@1)、Azure Kubernetes Service(KubernetesManifest@0)、Docker 构建(Docker@2)等任务示例。

自托管代理

包含下载代理、配置(config.sh 使用 PAT 与池)、以服务方式安装与启动(svc.sh),以及在流水线中使用自托管池并指定 demands 的示例。

常见问题

列出服务连接失败、产物未找到、环境未找到三类问题及其排查方向。

使用方式

以 YAML 流水线为主,在仓库根目录创建 azure-pipelines.yml,按需组合触发器、阶段、作业、变量、模板与部署策略;审批门等部分配置需在 Azure DevOps UI 中完成。

最佳实践

  • 优先使用 YAML 流水线而非经典编辑器
  • 使用模板实现可复用组件
  • 使用变量组管理共享配置
  • 为生产环境配置环境审批
  • 使用最小权限的服务连接
  • 实现产物版本化
  • 缓存依赖以加快构建

相关技能

github-actions(GitHub CI/CD 替代方案)、terraform-azure(Azure IaC)、azure-aks(AKS 部署)。

限制

  • 指南会针对真实环境执行:应用任何内容前需确认目标、影响范围与回滚方案。
  • 未经明确批准,切勿部署到生产环境。
  • 仅导入文档:上游脚本与模板未随附。

示例

git status && git diff --stat kubectl diff -f manifest.yaml

本内容改编自 BagelHole/DevOps-Security-Agent-Skills(MIT);为符合上游要求补充了 frontmatter、When to Use/Limitations 与安全边界。仅导入文档:辅助脚本与模板未随附。