你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集 ✔️ 统一规模集
若要大规模创建和管理 Azure 虚拟机(VM),通常需要某种形式的自动化。 有许多工具和解决方案可让你自动完成完整的 Azure 基础结构部署和管理生命周期。 本文介绍可在 Azure 中使用的一些基础结构自动化工具。 这些工具通常适合以下方法之一:
自动配置 VM
- 工具包括 Ansible、 Chef、 Puppet、 Bicep 和 Azure 资源管理器模板。
- 特定于 VM 自定义的工具包括适用于 Linux VM 的 cloud-init 、 PowerShell Desired State Configuration (DSC)和所有 Azure VM 的 Azure 自定义脚本扩展 。
自动化基础结构管理
自动执行应用程序部署和传递
- 示例包括 Azure DevOps Services 和 Jenkins。
Terraform
Terraform 是一种自动化工具,可用于使用单个模板格式语言(HashiCorp 配置语言(HCL)定义和创建整个 Azure 基础结构。 使用 Terraform,可以定义模板,以便自动执行为给定应用程序解决方案创建网络、存储和 VM 资源的过程。 可以将现有 Terraform 模板用于 Azure 中的其他平台,以确保一致性并简化基础结构部署,而无需转换为 Azure 资源管理器模板。
学习如何做到:
Azure 自动化
Azure 自动化 使用运行手册在目标 VM 上执行一组任务。 Azure 自动化用于管理现有 VM,而不是创建基础结构。 Azure 自动化可以跨 Linux 和 Windows 虚拟机运行,同时也支持通过混合 Runbook 工作器在本地的虚拟或物理计算机上运行。 Runbook 可以存储在源代码管理存储库(如 GitHub)中。 然后,这些运行簿可以手动运行或按定义的计划运行。
Azure 自动化还提供 Desired State Configuration (DSC) 服务,用于创建给定 VM 集的配置方式的定义。 然后,DSC 可确保应用所需的配置,并且 VM 保持一致。 Azure 自动化 DSC 在 Windows 和 Linux 计算机上运行。
学习如何做到:
Azure DevOps Services
Azure DevOps Services 是一套工具,可帮助你共享和跟踪代码、使用自动生成,并创建完整的持续集成和开发(CI/CD)管道。 Azure DevOps Services 与 Visual Studio 和其他编辑器集成,以简化使用情况。 Azure DevOps Services 还可以创建和配置 Azure VM,然后向其部署代码。
了解有关以下方面的详细信息:
Azure 资源管理器模板
Azure 资源管理器是 Azure 的部署和管理服务。 它提供一个管理层,可用于在 Azure 订阅中创建、更新和删除资源。 部署后,可以使用访问控制、锁和标记等管理功能来保护和组织资源。
学习如何做到:
二头肌
Bicep 是一种特定于域的语言 (DSL),使用声明性语法来部署 Azure 资源。 在 Bicep 文件中,定义要部署到 Azure 的基础结构,然后在整个开发生命周期中使用该文件重复部署基础结构。 你的资源以一致的方式部署。
从快速入门着手。
Cloud-init
Cloud-init 是一种广泛使用的方法,用于在首次启动 Linux VM 时对其进行自定义。 可使用 cloud-init 来安装程序包和写入文件,或者配置用户和安全性。 由于在初始启动过程中调用 cloud-init,因此无需执行额外的步骤或所需的代理来应用配置。 有关如何正确格式化 #cloud-config
文件的详细信息,请参阅 cloud-init 文档站点。 #cloud-config
文件是采用 base64 编码的文本文件。
Cloud-init 还支持不同的发行版。 例如,不要使用 apt-get 安装或 yum 安装来安装包。 您可以定义一个要安装的程序包列表。 Cloud-init 将为所选发行版自动使用本机包管理工具。
我们正在积极地与我们认可的 Linux 发行版合作伙伴合作,以便在 Azure 市场中提供已启用 cloud-init 的映像。 这些映像可使 cloud-init 部署和配置无缝地应用于 VM 和虚拟机规模集。 了解有关 Azure 上的 cloud-init 的更多详细信息:
PowerShell DSC
PowerShell Desired State Configuration (DSC) 是一个管理平台,用于定义目标计算机的配置。 DSC 还可以通过 开放管理基础结构 (OMI) 服务器在 Linux 上使用。
DSC 配置定义要在计算机上安装的内容以及如何配置主机。 本地配置管理器(LCM)引擎在每个目标节点上运行,根据推送的配置处理请求的操作。 请求服务器是在中央主机上运行的 Web 服务,用于存储 DSC 配置和关联的资源。 拉取服务器与每个目标主机上的 LCM 引擎通信,以提供所需的配置并报告符合性。
学习如何做到:
Azure 自定义脚本扩展
适用于 Linux 或 Windows 的 Azure 自定义脚本扩展在 Azure VM 上下载和执行脚本。 可以在创建 VM 时或在 VM 使用后随时使用该扩展。
可以从 Azure 存储或任何公共位置(如 GitHub 存储库)下载脚本。 使用自定义脚本扩展,可以使用源 VM 上运行的任何语言编写脚本。 这些脚本可用于安装应用程序或根据需要配置 VM。 若要保护凭据,敏感信息(如密码)可以存储在受保护的配置中。 这些凭据仅在 VM 内解密。
学习如何做到:
Ansible
Ansible 是用于配置管理、VM 创建或应用程序部署的自动化引擎。 Ansible 使用无代理模型(通常使用 SSH 密钥)对目标计算机进行身份验证和管理。 配置任务在 playbook 中定义,有多个 Ansible 模块可用于执行特定任务。 有关详细信息,请参阅 Ansible 的工作原理。
学习如何做到:
厨师
Chef 是一个自动化平台,可帮助定义基础结构的配置、部署和管理方式。 某些组件包括 Chef Habitat,用于应用程序生命周期自动化,而不是基础结构,以及 Chef InSpec,可帮助自动满足安全性和策略要求。 Chef 客户端安装在目标计算机上,其中包含一个或多个用于存储和管理配置的中央 Chef 服务器。 有关详细信息,请参阅 Chef 概述。
学习如何做到:
木偶
Puppet 是一个企业就绪的自动化平台,用于处理应用程序交付和部署过程。 代理安装在目标计算机上,允许 Puppet Master 运行定义 Azure 基础结构和 VM 所需配置的清单。 Puppet 可以与其他解决方案(例如 Jenkins 和 GitHub)集成,以改进 devops 工作流。 有关详细信息,请参阅 Puppet 的工作原理。
学习如何做到:
包装者
在 Azure 中创建自定义 VM 映像时,Packer 会自动执行生成过程。 使用 Packer 定义 OS 并运行配置后脚本,以便根据特定需求自定义 VM。 配置完成后,会将 VM 作为托管磁盘映像捕获。 Packer 自动执行创建源 VM、网络和存储资源、运行配置脚本,然后创建 VM 映像的过程。
学习如何做到:
詹金斯
Jenkins 是一个持续集成服务器,可帮助部署和测试应用程序,并创建用于代码传递的自动化管道。 有数百个插件用于扩展核心 Jenkins 平台,还可以通过 Webhook 与其他许多产品和解决方案集成。 可以在 Azure VM 上手动安装 Jenkins、从 Docker 容器中运行 Jenkins 或使用预生成的 Azure 市场映像。
学习如何做到:
后续步骤
在 Azure 中使用基础结构自动化工具有多种不同的选项。 你可以自由使用最适合你的需求和环境的解决方案。 若要开始并尝试内置到 Azure 的一些工具,请参阅如何自动自定义 Linux 或 Windows VM。