2014-11-02 45 views
2

我有脚本,它创建虚拟机,并通过dsc安装谷歌浏览器。我创建了当前的存储帐户,并执行了脚本。但在下一次我有错误。这是我的脚本:当前的天蓝色存储不允许创建新的虚拟机

$SubscriptionName = "subscription_name" 
    Select-AzureSubscription -SubscriptionName $SubscriptionName 

    #Replace the variable values as needed 
    $VMName = "CSETest" 
    $StorageAccount = 'googleChrome' 
    $StorageKey = 'key' 
    $StorageContainer = 'dscarchives' 

    $ServiceName="ChromeInstaller" 

    #Get the OS image reference 
    $arrayWindows=(Get-AzureVMImage | where-object { $_.ImageName -like "*Windows*Server*2012*R2*en.us*" }) 

    $locationAllow=$arrayWindows[$arrayWindows.Count-1].Location 
    $locationAllow=$locationAllow.Split(";") 
    $locationAllow=$locationAllow | where-object { $_ -like "* US*"} 
    $Localization=(Get-Random -InputObject $locationAllow) 

    #Create VM Config with last windows update 
    $vmConfig = New-AzureVMConfig -Name $VMName -ImageName $arrayWindows[$arrayWindows.Count-1].ImageName -InstanceSize Small 

    #Create Provisioning Configuration 
    $vmProvisioningConfig = Add-AzureProvisioningConfig -VM $vmConfig -Windows -AdminUsername "login" -Password "password" 

    $StorageContext = New-AzureStorageContext -StorageAccountName $StorageAccount -StorageAccountKey $StorageKey 
    Publish-AzureVMDscConfiguration -ConfigurationPath .\ChromeInstaller.ps1 -ContainerName $StorageContainer -StorageContext $StorageContext -Force 

    #Set the Azure VM DSC Extension to run the LCM meta-configuration 
    $vmAzureExtension = Set-AzureVMDscExtension -VM $vmProvisioningConfig -ConfigurationArchive ChromeInstaller.ps1.zip -ConfigurationName OpenChrome -Verbose -StorageContext $StorageContext -ContainerName $StorageContainer -Force 

    #Create a VM 
    New-AzureVM -ServiceName $ServiceName -VMs $vmAzureExtension -Location $Localization -WaitForBoot 

在最后一行中,脚本抛出异常:

新AzureVM:错误请求:位置或相关性组美国中部的存储账户的,其中源图像 a699494373c04fc0bc8f2bb1389d6106__Windows -Server-2012-R2-201410.01-en.us-127GB.vhd与指定的云服务不在 相同的位置或关联组中。源图像必须位于具有与美国西部的云服务相同的关联组或位置的存储帐户中。

所以,正如你所看到的,我的脚本生成随机位置。而且我无法与位置链接。那么,我该如何解决这个错误?

+1

的相同位置的错误告诉你,你需要知道创建云服务。如果您在随机的美国Azure位置部署基于映像的虚拟机,则需要在每个位置的本地存储帐户中安装VHD。 – 2014-11-03 06:05:20

回答

1

源映像VHD必须与新虚拟机位于相同的位置。使用AzCopy将图像复制到$locationAllow中列出的所有位置的存储帐户。

0

简单的答案是在与存储帐户相同的位置创建虚拟机。这是告诉你,存储帐户位置中的Azure操作系统映像不存在于您的云服务位置。

你也可以试试这个

$AzureLocation = (get-azurelocation) 
$Localization=(Get-Random -InputObject $AzureLocation) 
$WindowsImage=(Get-AzureVMImage | where-object { $_.ImageName -like "*Windows*Server*2012*R2*en.us*" -and $_.Location -Match $Localization.DisplayName } | sort PublishedDate | select -first 1).ImageName 

#Create VM Config with last windows update 
$vmConfig = New-AzureVMConfig -Name $VMName -ImageName $WindowsImage -InstanceSize Small 

随着驻留该位置在这个方法中,我们选择一个位置,然后图像。以前,您选择的图像(可能位于美国西部地区),然后选择一个位置。

Alternativly,让您的存储帐户的位置,并使用该位置来获取图像,并在存储账户

相关问题