VM Agent 和扩展程序

VM Agent 和扩展程序 -  1 部分

Windows Azure 基础结构服务最近宣布了一项新功能 VM Agent。VM Agent 是一个轻量级进程,用于启动由Microsoft 或合作伙伴共同提供的额外解决方案,可以配置、管理和加速虚拟机。本博客意在说明 VM Agent 及其与 VM 扩展程序之间的关系,以及它们的好处和用法。本博客的第 1 部分主要关注在新的 Azure VM 上如何启用 VM Agent 和扩展程序,第 2 部分主要关注如何将该功能扩展到现有 VM。

VM 扩展程序是什么?

在讨论 VM 扩展程序之前,我们先来看一下额外的软件现在是如何在 IaaS 虚拟机上实现使用的。在 VM 上安装和管理软件的一些常用方法包括 1) 在创建 VM 之前将软件预安装到磁盘上 2) 登录 VM,然后在 VM 中手动安装软件3) 通过远程 PowerShell 等安装 4) 结合使用多种工具进行更新管理和运行状况/状态报告。

下面说明了 VM 扩展程序可以在哪些方面简化 VM 管理。

  • VM 扩展程序是一种软件组件,可以扩展 VM 功能并简化多种 VM 管理操作。
  • 任何给定的 VM 上可以安装多个 VM 扩展程序,这些 VM 扩展程序可以独立于 VM 的生命周期进行添加、更新和移除。
  • VM 及其扩展程序的状态可以在同一个位置查看和管理。

以下是带有扩展程序的 VM 的视图:

这些扩展程序由谁编写?

这些扩展程序由 在Microsoft
注册过的发布者编写、发布并提供支持。每个扩展程序都带有发布者信息。本博客主要关注如何将扩展程序添加到 VM 上,在今后的博客中我们将讨论扩展程序发布流程。

现在有哪些可用的扩展程序?

现在有两款由 Microsoft 发布的 IaaS VM 扩展程序可用 – BGInfo 和 VMAccess。

BGInfo BGInfo 是一款可以将有用的服务器信息作为壁纸写入桌面的扩展程序。今后如果您的 VM 是从门户创建的,说明您已经得到了这款扩展程序。

启用 Bginfo 后,VM 桌面的壁纸将如下所示:

如果您想要手动添加该功能,您可以使用 cmdlet Set-AzureVMBGInfoExtenion,非常方便。有关该 cmdlet 的使用细节,请参阅此处的 MSDN 文档。

  • 启用 BGIno

Get-AzureVM –ServiceName –Name |
Set-AzureVMBGInfoExtensiom | Update-AzureVM

  • 禁用 BGInfo

从以下 cmdlet 的输出中查看扩展程序的 ReferenceName 和 Version:

Get-AzureVM –ServiceName –Name |
Get-AzureVMBGInfoExtension

Get-AzureVM –ServiceName –Name |
Set-AzureVMBGInfoExtension –ReferenceName –Version –Disable | Update-AzureVM

有时禁用 Bginfo 需要注销再登录。

注意:如果您已经是 Bginfo 用户,您可能需要注意,Bginfo 的扩展程序版本尚不支持在 VM 上修改 Bginfo 设置。 

VMAccess 如果您之前丢失过您的 IaaS VM 密码,密码将无法恢复,这一点您应该清楚。同样,如果 VM 上的 RDP 设置损坏,要修复该设置也并不容易。VMAccess 可以解决这两种场景下的问题。对于密码,VMAccess 提供了一种机制,可以让用户通过重置密码和用户名再次登录 VM。当可以使用重置的密码登录后,建议您更改密码。

有关该 cmdlet 的使用细节,请参阅此处的 MSDN 文档。

以下是 VMAccess 的一些使用场景。

  • 重置密码:

Get-AzureVM –ServiceName –Name |
Set-AzureVMAccessExtension –UserName –Password |Update-AzureVM

如果您想要更改用户名,请为“UserName”指定新的值;如果不想更改,则使用现有值。

  • 修复 RDP 设置:

Get-AzureVM –ServiceName –Name |
Set-AzureVMAccessExtension |Update-AzureVM

不使用任何参数调用 Set-AzureVMAccessExtension 可以修复任何损坏的 RDP 设置。启用该扩展程序后,如果未来想要修复 RDP 设置,可以再次调用该 cmdlet 或者重启 VM。

  • 禁用 VMAccess

从以下 cmdlet 的输出中查看扩展程序的 ReferenceName 和 Version:

Get-AzureVM –ServiceName –Name |
Get-AzureVMAccessExtension

Get-AzureVM –ServiceName –Name |
Set-AzureVMAccessExtension –ReferenceName –Version –Disable | Update-AzureVM

注销后再登录 VM,以禁用 VMAcces。

启用 VM 扩展程序的先决条件是什么?

启用 VM 扩展程序只有一个简单的先决条件 – 创建 IaaS VM时启用 VM Agent。当您通过门户或最新的 Azure Powershell 创建 VM 时,VMAgent 将默认启用,除非被手动禁用。

注意:本博客的第 2 部分将说明如何在现有 VM 上和通过磁盘创建的 VM 上启用 VM Agent。

VM 扩展程序的未来发展是什么?

希望到现在为止,本博客已经带您大致了解了如何使用 VM 扩展程序在 VM 上开启和关闭额外功能。Bginfo 和 VMAccess
是第一批可用的扩展程序,我们希望未来几个月内会有更多的扩展程序。敬请关注,欢迎您再次阅读本博客,了解更多新的 VM 扩展程序。

云服务扩展程序的情况如何?

虽然本博客关注的是虚拟机,但我想补充的是,扩展程序也适用于云服务 VM,现在已经有了一些可用的云服务扩展程序,如 RDP 和 WAD 扩展程序。在未来的博客中,我们将进一步讨论这些云服务扩展程序以及其他新的云服务扩展程序。

 

VM Agent 和扩展程序 - 2 部分

希望上一篇博客“VM Agent 和扩展程序 - 1 部分 已经让您大概了解了 VM Agent 及其好处以及如何在 VM Agent 启用的情况下创建新 VM。在本博客系列的第 2 部分,我们将讨论两种关键场景 - 在现有 VM 上和通过磁盘创建的 VM 上启用 VM Agent。

1 在现有 VM 上启用 VM Agent

如果您在 VM Agent 可用之前已经创建了 Azure VM,本工作流将说明如何在此类 VM 上启用 VM Agent,进而在该 VM 上启用扩展程序。

1.1 验证在 VM 上尚未启用 VM Agent

该操作可以使用以下 Azure PowerShell cmdlet 完成:

$x = Get-AzureVM -ServiceName $serviceName

验证“$x.VM.ProvisionGuestAgent”为 false。

如果 $x.VM.ProvisionGuestAgent true ,说明 VM 已有 VM Agent 。剩余步骤可以跳过。

1.2 安装 Microsoft Azure VM Agent ,准备 VM

Azure VM Agent 安装程序是一款独立的 MSI,用于在 VM 上安装 VM Agent。安装 VM Agent 只需简单的一步:下载 MSI 并启动该 MSI。根据下面显示的安装程序工作流,安装VM Agent。

1.1 通过 PowerShell 设置标志,指示已安装 VM Agent

现在 VM Agent 已经安装到 VM 中,下一步是通知 Azure 平台该 VM 已经安装 VM Agent。该操作可以通过运行以下 Azure PowerShell cmdlet 完成:

$vm = Get-AzureVM –serviceName $svc –Name $name

$vm.VM.ProvisionGuestAgent = $TRUE

Update-AzureVM –Name $name -VM $vm.VM -ServiceName $svc

注意:Azure PowerShell cmdlet 可以在此处下载。

此 VM 现可随时运行任何 VM 扩展程序!

2 如何在通过磁盘创建的 VM 上启用 VM Agent 和扩展程序:

另一种常见的 VM 创建场景是,通过磁盘创建 Azure VM。如果您要在 Azure 门户中使用 Sysprep 准备的映像,则 VM Agent 会在 VM 创建工作流中启用,无需执行任何其他步骤。但如果您使用的是专门的磁盘,则 VM Agent 需要手动安装。以下步骤说明了相关流程。

2.1  VHD 上安装 VM Agent

使用磁盘在本地创建 VM,然后使用 MSI 安装 VM Agent。

将 VHD 上传到 Azure

2.2 通过磁盘创建 VM

在门户中,通过库创建 VM,然后选择上传的 VHD。在 VM 创建工作流中,选择相应标志,指示该磁盘已经包含 VM Agent。在此之后,扩展程序就可以在 VM 创建过程之中或之后添加到 VM 上。

3.     启用 VM Agent 之后需执行什么操作?

在 VM 上启用 VM Agent 后,BGInfo、VMAccess 等任何可用的扩展程序就可以添加到该 VM 上。在接下来的几篇博客中,我们将讨论如何发现更多扩展程序并将其添加到 VM 上,例如直接在处于运行状态的 VM 上运行任意自定义脚本。

4.   反馈 / 问题?

请将您有关 VM Agent 或扩展程序的评论/问题发布到此处。期待听到您的反馈!

 

本文翻译自:

https://blogs.msdn.com/b/windowsazure/archive/2014/04/11/vm-agent-and-extensions-part-1.aspx

https://blogs.msdn.com/b/windowsazure/archive/2014/04/15/vm-agent-and-extensions-part-2.aspx