使用模板部署 Azure 虚拟机

已完成

Contoso 可以使用 Azure 资源管理器来帮助部署其 VM。 Azure 资源管理器支持基于部署模板的声明性部署方法。 生成的部署根据模板内容填充目标资源组或订阅。

模板的优点

与依赖图形用户界面 (GUI) 或脚本和编程语言的传统部署方法相比,模板具有一些独特的优势。 与脚本类似,它们有助于以自动化方式部署多组件解决方案。 但与脚本不同的是,它们并不显式指定预配这些解决方案所需的各个步骤, 而是只定义其预期的结束状态。 通过这种方式,它们可以依靠 Azure 平台中内置的智能,以最佳方式部署所有必要的资源。 这会最大程度地减少部署时间并将出现错误的可能性。 如果需要,可以选择定义资源之间的依赖项来控制资源预配序列。

如果需要预配具有相同常规设计的多个解决方案,那么部署模板是理想选择。 例如,你可以将同一模板部署到分别表示开发、测试、质量保证和生产环境的单独资源组。 若要考虑它们之间的任何潜在差异,可以将模板中的特定值替换为参数,然后在部署时为这些参数赋值。

模板是幂等的,这意味着你可以多次将它们部署到具有相同结果的同一资源组。 当你想要重新创建原始部署或修正由部署后更改引起的任何问题时,这很有用。 模板支持 VM 扩展,因此你可以在部署过程中在 Azure VM 中配置操作系统。 这些扩展包括配置管理服务,例如 PowerShell Desired State Configuration (DSC)、Chef 或 Puppet。

使用模板的注意事项

Azure 资源管理器模板包含一个或多个 Azure 资源的 JSON 格式定义,以及便于自定义其配置的参数和变量。 创建和使用资源模板时,应考虑以下事项:

  • 要部署哪些资源。
  • 要将资源放在哪个位置。
  • 将使用哪个版本的资源提供程序应用程序编程接口 (API)。
  • 资源之间是否存在依赖项。
  • 将在何时指定资源属性的值。 虽然可以在模板中包含这些值,但通常最好是在部署过程中使用相应的参数来指定这些值。

创作 Azure Resource Manager 模板

资源模板由以下部分组成:

{
   "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "",
   "parameters": {  },
   "variables": {  },
   "functions": [  ],
   "resources": [  ],
   "outputs": {  }
}

下表描述了前面代码示例中的各个部分。

元素名称 说明
$schema 预定义的 URL,用于标识 JSON 架构文件的位置,该文件描述模板语法。
contentVersion 你定义的自定义值,用于跟踪对模板内容所做的更改。
参数 在部署过程中可以交互方式或使用参数文件提供的参数。
variables 包含模板部署过程中引用的值的变量。
函数 简化模板部署过程中的计算的自定义函数。
resources 将要因部署而预配或修改的资源。
outputs 部署返回的值。

使用 Azure 资源管理器模板部署 Azure VM

拥有 Azure 资源管理器模板之后,可以使用下表中所述的任何方法部署其资源。

方法 说明
Azure PowerShell 可以通过运行 New-AzResourceGroupDeployment cmdlet 来启动部署。 若要引用模板文件,请使用 -TemplateFile 或 -TemplateUri 参数,具体取决于模板是存储在本地计算机上还是驻留在可公开访问的位置。 此 cmdlet 会将模板中定义的资源部署到指定为 -ResourceGroupName 参数值的资源组。 你可能还需要提供在模板中指定的参数值。 或者,在部署过程中,你可以直接在模板中为这些参数分配默认值,或引用包含其值的参数文件。
Azure CLI 可以运行包含 --template-file 或 --template-uri* 参数和 --resource_group 参数的 az deployment group create Azure CLI 命令来启动部署。 与基于 PowerShell 的部署一样,你可能还需要提供在模板中指定的参数值。 或者,在部署过程中,你可直接在模板中为这些参数赋予默认值,也可以包含默认值的参数文件的引用的形式赋予默认值。
Azure 门户 Azure 门户中的“自定义部署”窗格提供了部署基于 Azure 资源管理器模板的资源的简便方法。 若要访问该方法,请在 Azure 门户中,搜索并选择“部署自定义模板”市场项。 在“自定义部署”窗格中,你可以在基于浏览器的模板编辑器中构建自己的模板,选取一个预定义模板或者加载现有的 GitHub 快速启动模板
Azure 快速启动模板 GitHub 存储库 GitHub 上发布的每个快速启动模板都有相应的“部署到 Azure”链接。 选择该链接后,浏览器将自动重定向到 Azure 门户中的“自定义部署”窗格。 若要启动部署,只需提供所需参数的值。
Microsoft Visual Studio 或 Visual Studio Code 你可以使用 Visual Studio 和 Visual Studio Code 创建和部署模板。

附加阅读材料

你可以通过查看以下文档来了解详细信息:

注意

如果要使用模板创建 Azure VM,请尝试以下实践练习:使用 Azure 快速启动模板部署 VM