关于 Windows 虚拟机的代理和扩展

重要

经典 VM 将于 2023 年 3 月 1 日停用。

如果使用 ASM 中的 IaaS 资源,请在 2023 年 3 月 1 日完成迁移。 我们建议你尽快进行切换,以利用 Azure 资源管理器中的许多增强功能。

有关详细信息,请参阅 将 IaaS 资源在 2023 年 3 月 1 日前迁移到 Azure 资源管理器

注释

Azure 具有用于创建和处理资源的两个不同的部署模型:资源管理器部署模型和经典部署模型。 本文介绍如何使用经典部署模型。 Microsoft 建议大多数新部署使用 Resource Manager 模型。 有关使用资源管理器的 VM 代理和扩展的信息,请参阅此处

VM 扩展可帮助你:

  • 修改安全和标识功能,例如重置帐户值和使用反恶意软件
  • 启动、停止或配置监视和诊断
  • 重置或安装连接功能,例如 RDP 和 SSH
  • 诊断、监视和管理 VM

还有其他许多功能。 新的 VM 扩展功能会定期发布。 本文介绍适用于 Windows 和 Linux 的 Azure VM 代理,以及它们如何支持 VM 扩展功能。 有关按功能类别列出的 VM 扩展列表,请参阅 Azure VM 扩展和功能

适用于 Windows 和 Linux 的 Azure VM 代理

Azure 虚拟机代理(VM 代理)是一个安全的轻型过程,用于在 Azure 虚拟机实例上安装、配置和删除 VM 扩展。 VM 代理充当 Azure VM 的安全本地控制服务。 代理加载的扩展提供特定功能,以使用实例提高工作效率。

存在两个 Azure VM 代理,一个用于 Windows VM,一个用于 Linux VM。

如果希望虚拟机实例使用一个或多个 VM 扩展,该实例必须具有已安装的 VM 代理。 使用 Azure 门户创建的虚拟机映像及来自 市场 的映像会在创建过程中自动安装 VM 代理。 如果虚拟机实例缺少 VM 代理,可以在创建虚拟机实例后安装 VM 代理。 或者,可以在随后上传的自定义 VM 映像中安装代理。

重要

这些 VM 代理非常轻量级,支持对虚拟机实例进行安全管理。 在某些情况下,你可能不希望 VM 代理。 如果是这样,请确保使用 Azure CLI 或 PowerShell 创建未安装 VM 代理的 VM。 尽管可以在物理上删除 VM 代理,但实例上的 VM 扩展行为是未定义的。 因此,不支持删除已安装的 VM 代理。

在以下情况下启用 VM 代理:

  • 使用 Azure 门户创建 VM 实例并从 市场中选择映像时,

  • 使用 New-AzureVMNew-AzureQuickVM cmdlet 创建 VM 实例时。 可以通过将 –DisableGuestAgent 参数添加到 Add-AzureProvisioningConfig cmdlet 来创建没有 VM 代理的 VM,

  • 在现有 VM 实例上手动下载并安装 VM 代理时,请将 ProvisionGuestAgent 值设置为 true。 可以使用 PowerShell 命令或 REST 调用将此方法用于 Windows 和 Linux 代理。 (如果在手动安装 VM 代理后未设置 ProvisionGuestAgent 值,则不会正确检测 VM 代理的添加。下面的代码示例演示如何使用 PowerShell 执行此作,其中已确定 $svc$name 参数:

    $vm = Get-AzureVM –ServiceName $svc –Name $name
    $vm.VM.ProvisionGuestAgent = $TRUE
    Update-AzureVM –Name $name –VM $vm.VM –ServiceName $svc
    
  • 创建包含已安装 VM 代理的 VM 映像时。 使用 VM 代理的映像存在后,可以将该映像上传到 Azure。 对于 Windows VM,请下载 Windows VM 代理 .msi 文件 并安装 VM 代理。 对于 Linux VM,请从位于 https://github.com/Azure/WALinuxAgent的 GitHub 存储库安装 VM 代理。 有关如何在 Linux 上安装 VM 代理的详细信息,请参阅 Azure Linux VM 代理用户指南

注释

在 PaaS 中,VM 代理称为 WindowsAzureGuestAgent,并且始终在 Web 和辅助角色 VM 上可用。 (有关详细信息,请参阅 Azure 角色体系结构。)角色 VM 的 VM 代理现在可以以与持久虚拟机相同的方式向云服务 VM 添加扩展。 角色 VM 上的 VM 扩展与持久性 VM 上的 VM 扩展最大的区别在于添加 VM 扩展的时间。 使用角色虚拟机时,先将扩展添加到云服务,然后再添加到该云服务中的部署。

使用 Get-AzureServiceAvailableExtension cmdlet 列出所有可用的角色虚拟机扩展。

查找、添加、更新和删除 VM 扩展

有关这些任务的详细信息,请参阅 添加、查找、更新和删除 Azure VM 扩展。