Azure我在Portal

时间:2016-02-24 12:01:39

标签: azure virtual-machine azure-virtual-machine reinstall

作为标题,我删除了VMAccessForLinux扩展。 但是,没有办法取回扩展程序。

如何在我的VM上重新安装扩展程序?

在使用Azure CLI的情况下,它会出现如下错误:

2016年2月24日星期三20:56:17 GMT + 0900(KST): {[错误:对角色的扩展引用的更新无效:Look360VM和引用:VMAccessForLinux。]   代码:'BadRequest',   statusCode:400,   requestId:'36d5f8a1bcd37ce480e26e31a2742249'} 错误:对角色的扩展引用的更新无效:Look360VM和引用:VMAccessForLinux。     在Function.ServiceClient._normalizeError(/usr/local/azure/node_modules/azure-common/lib/services/serviceclient.js:815:23)     at /usr/local/azure/node_modules/azure-common/lib/services/filters/errorhandlingfilter.js:44:29     在Request._callback(/usr/local/azure/node_modules/azure-common/lib/http/request-pipeline.js:109:14)     在Request.self.callback(/usr/local/azure/node_modules/azure-common/node_modules/request/request.js:199:22)     在Request.emit(events.js:110:17)     在请求。 (/usr/local/azure/node_modules/azure-common/node_modules/request/request.js:1160:14)     在Request.emit(events.js:129:20)     在IncomingMessage。 (/usr/local/azure/node_modules/azure-common/node_modules/request/request.js:1111:12)     在IncomingMessage.emit(events.js:129:20)     at _stream_readable.js:908:16

它说'BadRequest'。我不知道为什么,但可能是我删除了扩展名。

如果您有经验,请评论解决方案。 感谢。

3 个答案:

答案 0 :(得分:2)

在当前的Azure CLI中,假设您正在进行ARM部署,请始终使用实用程序命令azure vm reset-access及其参数来执行此工作。这是最简单的方法,因为你不必担心json的东西....

azure vm reset-access --help
help:    Enables you to reset Remote Desktop Access or SSH settings on a Virtual Machine and to reset the password for the account that has administrator or sudo authority.
help:
help:    Usage: vm reset-access [options] <resource-group> <name>
help:
help:    Options:
help:      -h, --help                             output usage information
help:      -v, --verbose                          use verbose output
help:      -vv                                    more verbose with debug output
help:      --json                                 use json output
help:      -g, --resource-group <resource-group>  the resource group name
help:      -n, --name <name>                      the virtual machine name
help:      -u, --user-name <user-name>            the user name
help:      -p, --password <password>              the password
help:      -M, --ssh-key-file <ssh-key-file>      path to public key PEM file or SSH Public key file for SSH authentication (valid only when os-type is "Linux")
help:      -r, --reset-ssh                        Reset the SSH configuration to default
help:      -E, --extension-version <version>      Version of VM Access extension [1.4]
help:      -e, --expiration <expiration>          password expiration
help:      -R, --remove-user <remove-user-name>   Remove a user account with specified name
help:      -s, --subscription <subscription>      the subscription identifier
help:
help:    Current Mode: arm (Azure Resource Management)

答案 1 :(得分:1)

我得到了与使用Azure CLI将扩展程序安装到我的VM时所做的确切错误。我还没有确定根本原因。但是,我有另一种方法来安装扩展,而不是使用Azure PowerShell。

这是命令:

$vm = Get-AzureVm -ServiceName <your cloud service> -Name <your vm>

Set-AzureVMExtension -ExtensionName "VMAccessForLinux" -VM $vm `
    -Publisher "Microsoft.OSTCExtensions" -Version "1.*" | Update-AzureVM




经过几次挖掘后,我找到了根本原因。您需要为“VMAccessForLinux”指定“参考名称”,即“Microsoft.OSTCExtensions.VMAccessForLinux”。对于azure vm extension set,默认情况下,它使用扩展名作为引用名称,适用于大多数扩展。但是,“VMAccessForLinux”并非如此。

这是命令:

azure vm extension set "<your VM>" "VMAccessForLinux" "Microsoft.OSTCExtensions" "1.*" -r "Microsoft.OSTCExtensions.VMAccessForLinux"

答案 2 :(得分:0)

发布答案以启用新的资源管理器VM:

$RGName = "<Rg name>"
$VmName = "<Vm name>"
$Location = '<VM Location>'

$ExtensionName = 'VMAccessForLinux'
$Publisher = 'Microsoft.OSTCExtensions'
$Version = '1.4'

$PublicConf = '{}'
$PrivateConf = '{
  "username": "<new username>",
  "password": "<new password>",
  "reset_ssh": true
}'

Set-AzureRmVMExtension -ResourceGroupName $RGName -VMName $VmName -Location $Location -Name $ExtensionName -Publisher $Publisher -ExtensionType $ExtensionName -TypeHandlerVersion $Version -Settingstring $PublicConf -ProtectedSettingString $PrivateConf

有关详细信息,请参阅https://github.com/Azure/azure-linux-extensions/tree/master/VMAccess