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. 加密传输SSL协议6_验证公钥

    如上图所示,我怎么能确定我手里的公钥就是我心中的接收方的公钥呢?怎么防止被钓鱼呢? 解决的办法就是引入一个第三方,一个权威机构,一个我们都相信的机构. 验证公钥,Digital Certificate ...

  2. java设计模式之 工厂模式Factory

    好比某种套路,经过不断实践,证明对项目结构非常有利 如果需要获取某种对象,如同获取不同的产品 需要由工厂来提供,工厂模式 可能的类或者对象:工厂类  产品:Cat  Dog  Fish ... //动 ...

  3. android 用 XML 自定义边框(只上下边框有色)

    直接上代码: <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android ...

  4. perl 分析binlog 定位错误sql 思路

    1. 获取需要的binlog 日志: [root@zjzc01 binlog]# mysqlbinlog --start-datetime='2016-08-01 00:00:00' --stop-d ...

  5. poj2039---写出c++reverse函数,且且依次输出每一行的第一个、第二个.....

    #include <stdio.h> #include <stdlib.h> #include <string.h> void reverse(char *p1,c ...

  6. 从ACM中删除一个已经创建的Library

    从ACM中删除一个已经创建的Library,无法通过界面操作,须要手工从DB中删除.须要删除的表记录有: RECENTUPDATE 找到字段Name等于该libraryName的那条记录删除掉 del ...

  7. Delphi XE7中新并行库

    Delphi XE7中添加了新的并行库,和.NET的Task和Parellel相似度99%. 详细内容能够看以下的文章: http://www.delphifeeds.com/go/s/119574 ...

  8. js apply 和call的区别

    function Person(name, profession) { this.name = name; this.profession = profession; this.speak = fun ...

  9. 关于matlab鼠标响应

    今天看了一下Matlab中响应鼠标的事件,整理如下, (1)函数WindowButtonMotionFcn,当鼠标在窗口上运动的时候就会相应此函数,于是在此函数中可以设置运动时想要的代码,如:改变鼠标 ...

  10. Lc.exe已退出 代码为-1问题解决方法

    对于用vs作为开发工具的同学来说,可能常常会碰到“Lc.exe已退出 代码为-1”的问题,造成这个结果的一般是因为加入了第三方的插件程序造成的,今天一一讲解如何解决. 工具/原料 vs各版本开发工具 ...