Azure错误:使用具有专门操作系统磁盘配置的VMImage时,应指定无配置集

时间:2014-08-27 21:43:11

标签: azure ssh

有人可以帮忙吗?我是Azure的新手,只从Web界面启动了VM。现在我想用CLI启动一些虚拟机但我无法使用以下命令在命令行上启动虚拟机:

azure vm create --vm-size extrasmall --ssh --ssh-cert ~/.ssh/Talentwunder2.pem --no-ssh-password --location "South Central US" tw-cloud-2 tw-image-v1-20140808-441581 azureuser

我在shell上得到以下输出(MacOS btw。):

info:    Executing command vm create
+ Looking up image tw-image-v1-20140808-441581                               
+ Looking up cloud service 
info:    cloud service tw-cloud-2 not found.
+ Creating cloud service                                                       
+ Configuring certificate                                                      
+ Creating VM                                                                  
+ Deleting cloud service
error:   No Configuration Set should be specified while using a VMImage with a specialized OS Disk Configuration. 
info:    Error information has been recorded to azure.err 
error:   vm create command failed

和azure.err有以下消息:

Wed Aug 27 2014 23:18:25 GMT+0200 (CEST):
{ [Error: No Configuration Set should be specified while using a VMImage with a specialized OS Disk Configuration.]   
code: 'BadRequest',   
statusCode: 400,   
requestId: 'c398d47fdc71039a9ca1a3a1bb197fd4' } 
Error: No Configuration Set should be specified while using a VMImage with a specialized OS Disk Configuration.
    at Function.ServiceClient._normalizeError (/usr/local/lib/node_modules/azure-cli/node_modules/azure-common/lib/services/serviceclient.js:785:23)
    at /usr/local/lib/node_modules/azure-cli/node_modules/azure-common/lib/services/filters/errorhandlingfilter.js:44:29
    at Request._callback (/usr/local/lib/node_modules/azure-cli/node_modules/azure-common/lib/http/request-pipeline.js:109:14)
    at Request.self.callback (/usr/local/lib/node_modules/azure-cli/node_modules/request/request.js:129:22)
    at Request.EventEmitter.emit (events.js:98:17)
    at Request.<anonymous> (/usr/local/lib/node_modules/azure-cli/node_modules/request/request.js:873:14)
    at Request.EventEmitter.emit (events.js:117:20)
    at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/azure-cli/node_modules/request/request.js:824:12)
    at IncomingMessage.EventEmitter.emit (events.js:117:20)
    at _stream_readable.js:920:16

我没有收到错误消息,Google没有帮助,我认为我做了文档(http://azure.microsoft.com/de-de/documentation/articles/command-line-tools/)想要的内容?有任何想法吗?

BtW:我从正在运行的系统创建了VM映像,可以在Web界面上启动计算机而不会出现任何问题。

2 个答案:

答案 0 :(得分:3)

注意 - 我没有使用您正在使用的命令行工具,因此这是尝试进行心理疑难解答。希望它有用。 :)

了解在幕后,命令行工具在尝试理解错误时会对Azure的Service Management REST API进行调用会很有帮助。一个类似“BadRequest”之类的失败可能来自服务,而不是你的工具集。

您正在尝试创建新的虚拟机,这意味着您正在从Create Virtual Machine Deployment API返回错误。不幸的是,这是界面中更复杂的api之一,因为有很多方法可以启动VM。幸运的是,错误消息为我们提供了关键线索:

No Configuration Set should be specified 
while using a VMImage with a specialized 
OS Disk Configuration.

我们在API的文档中看到了几个术语:Configuration SetVMImage

查看VMImage信息,我们在文档中看到以下内容: Optional. Specifies the name of the VM Image that is to be used to create the Virtual Machine. If this element is used, the ConfigurationSets element is not used. For more information, see Capture VM Image.

ConfigurationSets被忽略,因为它们用于从Sysprepped映像(或等效的linux,不确定是什么)配置新的虚拟机。它们提供了一种在创建新VM时指定用户帐户和密码的方法,例如,

然而,VMImages被捕获而不是匿名化。预计它们已经具有内置于图像中的用户名和密码等配置,因此不需要配置集。

对于包含指定了VMImage的配置集存在错误,我感到有些惊讶 - 我希望配置集只是被忽略。但是,了解配置集中的内容可能有助于了解如何修改命令行以排除它。也许嗅探生成此错误的请求主体并将其与其余的api进行比较将使这个问题更容易解决。 :)

祝你好运!

答案 1 :(得分:0)

尝试在捕获VM之前概括VM。这意味着从VM中删除个人信息。实际上,这意味着在捕获映像之前在VM中运行以下命令。

sudo waagent -deprovision+user