VM Agent 和扩展程序 - 第 1 部分


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”指定新的值;如果不想更改,则使用现有值。

  • 修复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或扩展程序的评论/问题发布到此处。期待听到您的反馈!

本文翻译自:

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 

VM Agent 和扩展程序的更多相关文章

  1. 使用自定义脚本扩展程序自动执行 VM 自定义任务

     在 Build 开发者大会上推出VM 扩展程序的其中一个称为"自定义脚本扩展程序",它支持 PowerShell.如果这是您第一次访问这些博客,可能需要查看以前的博客,请单击 ...

  2. 使用 VMAccess 扩展程序重置 Linux 虚拟机的登录凭据

    Ning KuangWSSC WS ARD高级项目经理 您是否曾经因为忘记 Azure VM 密码或 SSH密钥而导致无法访问 VM?VMAccess扩展程序使您可以重置密码.SSH密钥或 SSH ...

  3. 使用 CustomScript 扩展程序自动执行 Linux 虚拟机自定义任务

    NingKuangWSSC WS ARD 高级项目经理 您可能已经从Windows扩展程序博客中了解了针对 Windows 虚拟机的 CustomScript扩展程序,现在的好消息是,这一扩展程序也已 ...

  4. 浏览器怎么添加 Axure扩展程序

    步骤   本文以强大如斯的谷歌浏览器来说明,怎么查看Axure原型文件,怎么添加Axure RP扩展程序.Axure RP生成的原型文件,一般都是可以用浏览器打开的, 如:一般都有index.star ...

  5. Google Chrome 应用商店上传扩展程序

    1. 进入 Google 开发者中心 网址: https://chrome.google.com/webstore/developer/dashboard?hl=zh-cn 2. 添加新项 上传后,出 ...

  6. chrome扩展程序开发

    首先,明确两个概念的区别:chrome扩展程序和Web Apps.具体参考:http://www.chromi.org/archives/10106 本文只讨论chrome扩展程序. 最好的开发教程莫 ...

  7. Chrome扩展程序的二次开发:把它改得更适合自己使用

    我当然知道未经作者允许修改别人程序是不道德的了,但作为学习研究之用还是无可厚非,这里仅供交流. 一切都是需求驱动的 话说某天我在网上猎奇的时候无意间发现这么一款神奇的谷歌浏览器插件:Extension ...

  8. 编写Chrome扩展程序

    Chrome的扩展程序很多,也很容易入门,可以来简单实现一下 看看,慢慢就能实现出一个扩展程序来 每个扩展程序应用一般会包含: 一个manifest清单文件 html文件 js文件 其他文件等 可以看 ...

  9. Web 开发人员必备的12款 Chrome 扩展程序

    之前已经分享过一些帮助 Web 开发人员和设计师的 Chrome 扩展,这次我们继续展示一组很有用的 Chrome 应用程序.这些免费的 Chrome 应用程序可以简化您的工作流程,为了加快您的工作流 ...

随机推荐

  1. QF——iOS通知中心(NotificationCener)

    前面我们讲iOS不同界面间传值的时候,说过可以通过通知中心进行传值.那到底什么是通知中心,他是如何实现传值的呢? NSNotificationCenter是单例的,只提供了一个唯一的实例化入口,在整个 ...

  2. HTML5 标签元素的一些注意事项

    不运行写结束标记的元素(但标签元素): area.base.br.col.command.embed.hr.img.input.keygen.link.meta.param.source.track. ...

  3. Moutain Tai notes

    rest 40shaxian 18 drumsticks  13零食 11.5+21车费5门票62大衣10面14 > 194.5 notes :::: 岗位职责:1.基于Drupal系统的产品功 ...

  4. ACM大数模板(支持正负整数)

    之前就保留过简陋的几个用外部数组变量实现的简单大数模板,也没有怎么用过,今天就想着整合封装一下,封装成C++的类,以后需要调用的时候也方便得多. 实现了基本的加减乘除和取模运算的操作符重载,大数除以大 ...

  5. Oracle EBS-SQL (SYS-8):职责定义明细.sql

    SELECT DISTINCT fa.application_short_name 模块,                 b.responsibility_name 职责名称, fa.applica ...

  6. 电池和Adapter切换电路改进实验

    目的:很多单电池的机器在大负载的情况下,如把背光开到最亮,运行3D游戏,此时拔DC电源很容易出现机器死机,或花屏现象: 原因:Q5的导通时间不够,希望通过G极的快速放电,加快到导通时间: 修改前的电路 ...

  7. Qt:基于TCP和UDP的局域网P2P(局域网)通讯封装

    封装了一个类,可以进行在局域网进行P2P通讯(仅局域网可用) 也就是说,假设局域网中有10台电脑,那么从本机发出的数据,将依次派发到这10台电脑(目前的设计中包括自己这台) 在使用方面,构造的时候给端 ...

  8. 今天起改用mac的marsedit写博

    最近一直使用mac来工作,所以写博也相应改为marsedit. 初步感觉还是不错的,越来越发现mac其实也适合在工作中使用,生活上当然不在话下. 从高富帅的x220t变成屌丝的macbook小白(升级 ...

  9. Python入门-函数的使用到程序的公布安装

    Python入门-函数的使用到Python的公布安装 本文主要适合有一定编程经验,至少掌握一门编程语言的人查看. 文中样例大多都是简单到认识英文单词就能看懂的水平,主要讲的是Python的总体使用方法 ...

  10. LNMP : 502 Bad Gateway 解决小记,真正的原因

    站点搬迁到新的server.原先一直都是LAMP.如今改为LNMP. 将重写文件 htaccess改成 nginx的 conf.放到了站点.可仅仅能打开首页,其它重写页面一打开都是不停的载入. 载入等 ...