尝试使用Azure Powershell创建Palo Alto VM

时间:2017-09-15 15:22:33

标签: powershell azure firewall azure-virtual-machine

我目前正尝试使用Azure Powershell创建Palo Alto VM系列防火墙,以便稍后进行一些更改。

我有以下相关代码

$VM = Set-AzureRmVMSourceImage -VM $vm -PublisherName $pubName -Offer $offerName -Skus $skuName -Version "latest"

$VM = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize 

Set-AzureRmVMPlan -VM $VM -Publisher paloaltonetworks -Product vmseries1 -Name "bundle2" 

# Specify the OS disk name and create the VM
$DiskName='OSDisk-'+$VMName
$SA = Get-AzureRmStorageAccount -Name $SAName -ResourceGroupName $RGName
$OSDiskUri = $SA.PrimaryEndpoints.Blob.ToString() + "vhds/" + $VMName+".vhd"
   $VM = Set-AzureRmVMOSDisk -VM $VM -Name $DiskName -VhdUri $OSDiskUri -CreateOption fromImage
$VM = Add-AzureRmVMNetworkInterface -VM $VM -Id $VNIC01.Id -Primary
New-AzureRmVM -ResourceGroupName $RGName -Location $Region -VM $VM -Verbose

我收到错误

New-AzureRmVM : Changing property 'osDisk.createOption' is not allowed.
ErrorCode: PropertyChangeNotAllowed
ErrorMessage: Changing property 'osDisk.createOption' is not allowed.
StatusCode: 409
ReasonPhrase: Conflict
OperationID : 882848ca-7053-4098-9599-d25d58b4b3fe
At C:\Users\IEUser\Desktop\DeployMultipleNicPANWv0.2.ps1:192 char:1
+ New-AzureRmVM -ResourceGroupName $RGName -Location $Region -VM $VM -V ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzureRmVM], ComputeCloudException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.NewAzureVMCommand

我以前曾尝试过一些更改,因为它告诉我原始vhd是使用高级存储创建的,而且我有标准存储。

有人能指出我正确的方向吗?

由于

1 个答案:

答案 0 :(得分:1)

根据您的代码,我发现脚本包含

“$VM = Set-AzureRmVMOSDisk -VM $VM -Name $DiskName -VhdUri $OSDiskUri -CreateOption fromImage”.

错误代码为409。此问题可能由此引起:VM created from Image cannot have blob based disks. All disks have to be managed disks.

因此,您应该确定要用于创建VM的源。如果您只想使用image来创建VM,则不应添加 -VhdUri $OSDiskUri

有关如何使用image创建具有Powershell的新VM的更多信息,请参阅this document.

此外,您可以使用模板轻松创建Palo Alto VM。有关如何使用模板创建Palo Alto VM的更多信息,请参阅this link

---------- ----------更新

确保已正确配置了您的映像和其他要求,然后您可以使用以下Powershell脚本来创建:

    $VM = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize 

    $VM = Set-AzureRmVMSourceImage -VM $vm -PublisherName $pubName -Offer $offerName -Skus $skuName -Version "latest"

    Set-AzureRmVMPlan -VM $VM -Publisher paloaltonetworks -Product vmseries1 -Name "bundle2" 


    $VM = Set-AzureRmVMOSDisk -VM $VM -CreateOption fromImage -Caching ReadWrite
    $VM = Add-AzureRmVMNetworkInterface -VM $VM -Id $VNIC01.Id -Primary

    New-AzureRmVM -ResourceGroupName $RGName -Location $Region -VM $VM -Verbose

注意:对于托管磁盘,当我们使用image或vdi创建VM时,我们无法更改OSdiskname。如果您仍然无法创建它,我建议您使用模板来创建它。只需单击Azure上的部署,然后提供所需信息。