你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 上一教程中,你将部署链接的模板。 本教程介绍如何使用 Azure Pipelines 持续生成和部署 Azure 资源管理器模板(ARM 模板)项目。
Azure DevOps 为开发人员提供服务,以支持团队计划工作、进行代码开发协作以及构建和部署应用。 开发人员可以使用 Azure DevOps Services 在云中工作。 Azure DevOps 提供一组集成的功能,可通过 Web 浏览器或 IDE 客户端访问。 Azure Pipelines 是其中一项功能。 Azure Pipelines 是一项功能齐全的持续集成(CI)和持续交付(CD)服务。 它适用于首选的 Git 提供商,可部署到大多数主要云服务。 然后,您可以自动化代码的构建、测试和部署,将其部署到 Microsoft Azure、Google Cloud Platform 或 Amazon Web Services 上。
注释
选取项目名称。 完成本教程后,请将任何 ARMPipelineProj 替换为项目名称。 此项目名称用于生成资源名称。 其中一个资源是存储帐户。 存储帐户名称长度必须介于 3 到 24 个字符之间,并且仅使用数字和小写字母。 名称必须唯一。 在模板中,存储帐户名称是追加 存储 的项目名称,项目名称必须介于 3 到 11 个字符之间。 因此,项目名称必须满足存储帐户名称要求,并且少于 11 个字符。
本教程涵盖以下任务:
- 准备 GitHub 存储库
- 创建 Azure DevOps 项目
- 创建 Azure 管道
- 验证管道部署
- 更新模板并重新部署
- 清理资源
如果没有 Azure 订阅,请在开始之前 创建一个免费帐户 。
先决条件
若要完成本文,需要做好以下准备:
- GitHub 帐户,用于创建模板的存储库。 如果没有 ,可以免费创建一个。 有关使用 GitHub 存储库的详细信息,请参阅 生成 GitHub 存储库。
- 安装 Git。 本教程说明使用 Git Bash 或 Git Shell。 有关说明,请参阅 安装 Git。
- Azure DevOps 组织。 如果你没有此类帐户,可免费创建一个。 请参阅 “创建组织或项目集合”。
- (可选)包含“资源管理器工具”扩展的 Visual Studio Code。 请参阅 快速入门:使用 Visual Studio Code 创建 ARM 模板。
准备 GitHub 存储库
GitHub 用于存储项目源代码,包括资源管理器模板。 有关其他受支持的存储库,请参阅 Azure DevOps 支持的存储库。
创建 GitHub 存储库
如果没有 GitHub 帐户,请参阅 先决条件。
登录到 GitHub。
选择右上角的帐户映像,然后选择 存储库。
选择“ 新建”,绿色按钮。
在 存储库名称中,输入存储库名称。 例如 ARMPipeline-repo。 请记住,将所有“ARMPipeline”替换为自己的项目名称。 可以选择 “公共 ”或 “专用 ”以完成本教程。 然后选择“ 创建存储库”。
记下 URL。 存储库 URL 的格式如下 :
https://github.com/[YourAccountName]/[YourRepositoryName]
。
此存储库称为 远程存储库。 同一项目的每个开发人员都可以克隆自己的 本地存储库,并将更改合并到远程存储库。
克隆远程存储库
打开 Git Shell 或 Git Bash。 请参阅 先决条件。
验证当前文件夹是否为 GitHub。
运行下面的命令:
git clone https://github.com/[YourAccountName]/[YourGitHubRepositoryName] cd [YourGitHubRepositoryName] mkdir create_web_app cd create_web_app pwd
将
[YourAccountName]
替换为您的 GitHub 帐户名称,并将[YourGitHubRepositoryName]
替换为您在上一个步骤中创建的存储库名称。
create_web_app文件夹是存储模板的文件夹。 该 pwd
命令显示文件夹路径。 路径是在以下过程中将模板保存到的位置。
下载快速入门模板
可以下载模板并将其保存到 create_web_app 文件夹中,而不是创建模板。
- 主模板: https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/get-started-deployment/linked-template/azuredeploy.json
- 链接模板: https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/get-started-deployment/linked-template/linkedStorageAccount.json
文件夹名称和文件名在流程中按原样使用。 如果更改这些名称,则必须更新流水线中使用的名称。
将模板推送到远程存储库
azuredeploy.json 已添加到本地存储库。 接下来,将模板上传到远程存储库。
打开 Git Shell 或 Git Bash(如果未打开)。
将目录更改为本地存储库中的 create_web_app 文件夹。
验证 azuredeploy.json 文件是否在文件夹中。
运行下面的命令:
git add . git commit -m "Add web app templates." git push origin main
可能会收到一条有关 LF 的警告。 可以忽略警告。 main 是主分支。 通常为每个更新创建分支。 为了简化本教程,可以直接使用主分支。
从浏览器浏览到 GitHub 存储库。 该 URL 为
https://github.com/[YourAccountName]/[YourGitHubRepository]
。 此时会看到 create_web_app 文件夹和文件夹中的两个文件。选择 azuredeploy.json 打开模板。
选择“原始”按钮。 URL 以
https://raw.githubusercontent.com
开头。创建 URL 的副本。 在本教程的后面部分配置管道时,需要提供此值。
到目前为止,你已创建 GitHub 存储库,并将模板上传到存储库。
创建 DevOps 项目
需要 DevOps 组织,然后才能继续执行下一过程。 如果没有,请参阅 先决条件。
登录到 Azure DevOps。
从左侧选择 DevOps 组织,然后选择“ 新建项目”。 如果没有任何项目,将自动打开“创建项目”页。
输入以下值:
- 项目名称:输入项目名称。 可以使用在教程开头选取的项目名称。
- 可见性:选择 “专用”。
使用其他属性的默认值。
选择“ 创建”。
创建用于将项目部署到 Azure 的服务连接。
从左侧菜单底部选择 “项目”设置 。
选择“管道”下的“服务连接”。
选择“ 创建服务连接”,选择 “Azure 资源管理器”,然后选择“ 下一步”。
选择 “服务主体”(自动),然后选择“ 下一步”。
输入以下值:
- 范围级别:选择 “订阅”。
- 订阅:选择订阅。
- 资源组:将其留空。
- 连接名称:输入连接名称。 例如ARMPipeline-conn。 记下此名称,创建管道时需要该名称。
- 向所有管道授予访问权限。 (已选择)
选择“ 保存”。
创建管道
到目前为止,你已完成以下任务。 如果由于熟悉 GitHub 和 DevOps 而跳过前面的部分,则必须在继续之前完成这些任务。
- 创建 GitHub 存储库,并将模板保存到存储库中的 create_web_app 文件夹中。
- 创建 DevOps 项目,并创建 Azure 资源管理器服务连接。
若要创建一个包含部署模板步骤的管道,请执行以下步骤:
从左侧菜单中选择 “管道 ”。
选择“创建管道”。
在 “连接 ”选项卡中,选择 “GitHub”。 如果系统询问,请输入 GitHub 帐户信息,然后按照说明进行操作。 如果看到以下屏幕,请选择 “仅选择存储库”,并在选择“ 批准和安装”之前验证存储库是否在列表中。
从 “选择 ”选项卡中,选择存储库。 默认名称为
[YourAccountName]/[YourGitHubRepositoryName]
。在“ 配置 ”选项卡中,选择 “启动器管道”。 它显示了 azure-pipelines.yml 管道文件,其中包含两个脚本步骤。
从 .yml 文件中删除两个脚本步骤。
将光标移到“步骤:”后面的行。
选择屏幕右侧的“ 显示助手 ”以打开 “任务 ”窗格。
选择 ARM 模板部署。
输入以下值:
- deploymentScope:选择 资源组。 若要了解有关范围的详细信息,请参阅 部署范围。
- Azure 资源管理器连接:选择之前创建的服务连接名称。
- 订阅:指定目标订阅 ID。
- 操作:选择创建或更新资源组操作执行两个操作 - 1。 如果提供了新的资源组名称,则创建资源组;2. 部署指定的模板。
- 资源组:输入新的资源组名称。 例如 ,ARMPipeline-rg。
- 位置:选择资源组的位置,例如 美国中部。
- 模板位置:选择 文件的 URL,这意味着任务使用 URL 查找模板文件。 由于 relativePath 在主模板中使用,并且 relativePath 仅在基于 URI 的部署上受支持,因此必须在此处使用 URL。
- 模板链接:输入在 “准备 GitHub 存储库 ”部分末尾获取的 URL。 它以
https://raw.githubusercontent.com
开头。 - 模板参数链接:将此字段留空。 将在 Override 模板参数中指定参数值。
- 替代模板参数:输入 。
-projectName [EnterAProjectName]
- 部署模式:选择 增量。
- 部署名称:输入 DeployPipelineTemplate。 先选择 “高级 ”,然后才能看到 部署名称。
选择 “添加”。
有关任务的详细信息,请参阅 Azure 资源组部署任务和 Azure 资源管理器模板部署任务
.yml文件应类似于:
选择“ 保存并运行”。
在“ 保存并运行 ”窗格中,选择“ 保存并再次运行 ”。 YAML 文件的副本将保存到连接的存储库中。 可以通过浏览到存储库来查看 YAML 文件。
验证管道是否成功执行。
验证部署
- 登录到 Azure 门户。
- 打开资源组。 名称是在管道 YAML 文件中指定的。 应会看到已创建一个存储帐户。 存储帐户名称以 存储开头。
- 选择存储帐户名称以将其打开。
- 选择 “属性”。 请注意,复制是本地冗余存储(LRS)。
更新和重新部署
更新模板并将更改推送到远程存储库时,管道会自动更新资源,在本例中为存储帐户。
在 Visual Studio Code 或任何文本编辑器中从本地存储库打开 linkedStorageAccount.json 。
将 storageAccountType 的 defaultValue 更新为 Standard_GRS。 请参阅以下屏幕截图:
保存更改。
通过从 Git Bash/Shell 运行以下命令,将更改推送到远程存储库。
git pull origin main git add . git commit -m "Update the storage account type." git push origin main
第一个命令 (
pull
) 将本地存储库与远程存储库同步。 管道 YAML 文件仅添加到远程存储库。 运行命令会将pull
YAML 文件的副本下载到本地分支。第四个命令 (
push
) 将修订 后的linkedStorageAccount.json 文件上传到远程存储库。 更新远程存储库的主分支后,将再次触发管道。
若要验证更改,可以检查存储帐户的 Replication 属性。 请参阅 “验证部署”。
清理资源
不再需要 Azure 资源时,请通过删除资源组来清理部署的资源。
- 在 Azure 门户上的左侧菜单中选择“资源组” 。
- 在“按名称筛选”字段中输入资源组名称。
- 选择资源组名称。
- 在顶部菜单中选择“删除资源组”。
可能还需要删除 GitHub 存储库和 Azure DevOps 项目。
后续步骤
恭喜,你已完成此资源管理器模板部署教程。 如果你在反馈部分中有任何评论和建议,请告知我们。 谢谢! 你已准备好深入了解有关模板的更高级概念。 下一教程详细介绍了如何使用模板参考文档来帮助定义要部署的资源。