使用Powershell在Azure中创建VM

时间:2014-12-17 16:47:20

标签: powershell azure

我正在尝试使用PowerShell在Azure中创建VM。我在我的本地PC上运行它。我已经能够设置网站和SQL Azure实例没有任何问题,但网络上没有任何样本工作。

Import-Module Azure
Import-AzurePublishSettingsFile -PublishSettingsFile "C:\Cloud\Azure.publishsettings"

$VMImage = @(Get-AzureVMImage | Where-Object -Property Label -Match "Windows Server 2012 R2 Datacenter, November 2014").ImageName 
$myVMName = "jsTestVM1"
$myAdminName ="jsTestAdmin1"
$myAdminPwd ="not telling you"
New-AzureQuickVM -ImageName $VMImage -Windows -Name $myVMName -ServiceName $myVMName -AdminUsername $myAdminName -Password $myAdminPwd -InstanceSize "ExtraSmall"

我收到以下消息:

New-AzureQuickVM : ResourceNotFound: The hosted service does not exist.
At line:1 char:1
+ New-AzureQuickVM -ImageName $VMImage -Windows -Name $myVMName -ServiceName $myVM ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzureQuickVM], CloudException
    + FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.PersistentVMs.NewQuickVM

我已尝试过网络上的示例,他们也会提供相同的错误消息。

编辑:

如果我指定了某个位置,则会收到错误消息'服务已存在,无法指定位置'。 如果我指定AffinityGroup,我的服务已经存在,则无法指定AffinityGroup'

3 个答案:

答案 0 :(得分:1)

$VMImage = @(Get-AzureVMImage | Where-Object -Property Label -Match "Windows Server 2012 R2 Datacenter, November 2014").ImageName 
$myVMName = "srikstest"
$myAdminName ="srikstest"
$myAdminPwd ="NeitherMe"
New-AzureQuickVM -Windows -ServiceName $myVMName -ImageName $VMImage -AdminUsername $myAdminName - Password $myAdminPwd -InstanceSize "ExtraSmall" -Location "Southeast Asia" -Name $myVMName -Verbose

您可以通过指定Location或AffinityGroup参数或将新虚拟机部署到现有服务中来为虚拟机创建新的Azure服务。

我刚刚添加了location参数,它确实有用!!

答案 1 :(得分:1)

最后,我添加了一个关联组,并更改了我正在使用的服务名称。这使我能够创建VM。在我的订阅中,我所使用的服务名称没有被使用,因此,先前失败的安装会留下一些假象,或者名称需要全局唯一。我在这里检查了文档 http://msdn.microsoft.com/en-us/library/azure/dn495183.aspx 并且它没有说明服务名称必须是全球唯一的

答案 2 :(得分:0)

将值赋值/替换为变量。

New-AzureVMConfig -Name $VmName -InstanceSize $InstanceSize -Label $VmName -ImageName $Imagename -DiskLabel $DiskLabel | add-azureprovisioningconfig -LinuxUser $cred.GetNetworkCredential().Username -Linux -Password $cred.GetNetworkCredential().Password -SSHPublicKeys $sshkey | Add-AzureEndpoint -LocalPort $LocalPort1 -Name $LocalPortName1 -Protocol tcp -PublicPort $LocalPort1 | New-AzureVM -ServiceName $CloudServiceName -AffinityGroup $AffinityGroup –WaitForBoot