Windows Azure基础结构服务最近宣布了一项新功能VM Agent。VMAgent是一个轻量级进程,用于启动由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”指定新的值;如果不想更改,则使用现有值。
Get-AzureVM –ServiceName –Name |Set-AzureVMAccessExtension |Update-AzureVM
不使用任何参数调用Set-AzureVMAccessExtension可以修复任何损坏的RDP设置。启用该扩展程序后,如果未来想要修复RDP设置,可以再次调用该cmdlet或者重启VM。
从以下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或扩展程序的评论/问题发布到此处。期待听到您的反馈!
本文翻译自:
http://blogs.msdn.com/b/windowsazure/archive/2014/04/11/vm-agent-and-extensions-part-1.aspx
http://blogs.msdn.com/b/windowsazure/archive/2014/04/15/vm-agent-and-extensions-part-2.aspx