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. error1

     #include<stdio.h>main(){ int a[10],i,m,n,j;   for(i=3;i<10;i++)    scanf("%d",&a ...

  2. Ajax中send方法的使用

    Ajax中send方法参数的使用 一般情况下,使用Ajax提交的参数多是些简单的字符串,可以直接使用GET方法将要提交的参数写到open方法的url参数中,此时send方法的参数为null. 例如 : ...

  3. ArrayList与LinkedList时间复杂度之对比

    package ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections ...

  4. hdu 5726 GCD 倍增+ 二分

    题目链接 给n个数, 定义一个运算f[l,r] = gcd(al, al+1,....ar). 然后给你m个询问, 每次询问给出l, r. 求出f[l, r]的值以及有多少对l', r' 使得f[l, ...

  5. ProcessBuilder 和 Runtime(转)

    ProcessBuilder.start() 和 Runtime.exec() 方法都被用来创建一个操作系统进程(执行命令行操作),并返回 Process 子类的一个实例,该实例可用来控制进程状态并获 ...

  6. nginx 通过rsyslog发日志 rsyslog服务器挂掉 日志丢失问题

    nginx 配置: user nginx; worker_processes 1; syslog local5 nginx-zjzc01; rsyslog 服务器收到的消息: -rw-r--r-- 1 ...

  7. 10.30 NFLS-NOIP模拟赛 解题报告

    总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...

  8. _sortBy用法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 弹飞DZY(思维,打表,还没过全,先放着)

    弹飞DZYDescription某天,机智的ZZC发明了一种超级弹力装置,为了在他的朋友DZY面前显摆,他邀请DZY一起玩个游戏.游戏一开始,ZZC在地上沿着一条直线摆上n个装置,每个装置设定初始弹力 ...

  10. 2014年同年CFA考试中哪些CFA资料没有变化?

    从2014年起,美国CFA协会将官方教材.题库.模拟题等CFA资料捆绑在报名费用之中,而以往可以单独选购的纸质版教材也变成了额外购买.这让非常多參加12月的CFA考生产生了借阅6月考生CFA资料的想法 ...