如何为 Azure VM 附加 OSDisk 和更改 OSProfile
How to attach OSDisk and change OSProfile for Azure VM
我正在设置 VM 恢复管道。它看起来像这样:
我复制OS磁盘
$diskConfig = New-AzureRmDiskConfig -AccountType $storageType `
-Location $snapshot.Location -SourceResourceId $snapshot.Id -CreateOption Copy
$disk = New-AzureRmDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName `
-DiskName $diskName
然后我像这样将它附加到我的虚拟机:
$vmConfig = New-AzureRmVMConfig -VMName $virtualMachineName `
-VMSize $virtualMachineSize
$vmConfig = Set-AzureRmVMOSDisk -VM `
$vmConfig -ManagedDiskId $disk.Id -CreateOption Attach -Windows
但是我也想通过绑定证书来间接修改 VM 的 OSProfile
属性,因为我正在关注 this guide by Microsoft。我愿意:
$vmConfig = Add-AzureRmVMSecret -VM $vmConfig -SourceVaultId $vaultId `
-CertificateStore $certificateStore -CertificateUrl $certificateUrl
现在当我尝试通过
完成创作时
New-AzureRmVM -VM $vmConfig -ResourceGroupName $resourceGroupName -Location $location
我得到一个错误:
New-AzureRmVM : Parameter 'osProfile' is not allowed.
我知道它修改了 OSProfile.Secrets
(即 - 向列表中添加了一条新记录),但有一个限制,即我无法对其进行任何编辑。我也尝试过先创建一个 VM,然后添加那些 Secrets
,但它给了我几乎相同的错误
Update-AzureRmVM : Changing property 'osProfile' is not allowed.
顺便说一下,如果我使用 FromImage
而不是 Attach
,我会得到错误:
New-AzureRmVM : Cannot specify user image overrides for a disk already defined in the specified image reference.
我该如何解决?
很确定此错误意味着您正在尝试使用现有磁盘创建虚拟机。在这种情况下,您不能修改 os 设置。仅在从新磁盘创建时。
我最终创建了一个 powershell 脚本,该脚本在 VM 上执行 powershell 命令(使用 Invoke-AzureRmVMRunCommand
):
检索证书
Get-AzureKeyVaultSecret -VaultName $keyVaultName -name (Get-AzureKeyVaultSecret -VaultName $keyVaultName).name
- 下载这些证书并将其绑定到 IIS
创建 ssl 绑定并将其分配给 https 绑定
Get-ChildItem cert:\localmachine\My | New-Item -Path IIS:\SslBindings\!443
我正在设置 VM 恢复管道。它看起来像这样:
我复制OS磁盘
$diskConfig = New-AzureRmDiskConfig -AccountType $storageType `
-Location $snapshot.Location -SourceResourceId $snapshot.Id -CreateOption Copy
$disk = New-AzureRmDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName `
-DiskName $diskName
然后我像这样将它附加到我的虚拟机:
$vmConfig = New-AzureRmVMConfig -VMName $virtualMachineName `
-VMSize $virtualMachineSize
$vmConfig = Set-AzureRmVMOSDisk -VM `
$vmConfig -ManagedDiskId $disk.Id -CreateOption Attach -Windows
但是我也想通过绑定证书来间接修改 VM 的 OSProfile
属性,因为我正在关注 this guide by Microsoft。我愿意:
$vmConfig = Add-AzureRmVMSecret -VM $vmConfig -SourceVaultId $vaultId `
-CertificateStore $certificateStore -CertificateUrl $certificateUrl
现在当我尝试通过
完成创作时New-AzureRmVM -VM $vmConfig -ResourceGroupName $resourceGroupName -Location $location
我得到一个错误:
New-AzureRmVM : Parameter 'osProfile' is not allowed.
我知道它修改了 OSProfile.Secrets
(即 - 向列表中添加了一条新记录),但有一个限制,即我无法对其进行任何编辑。我也尝试过先创建一个 VM,然后添加那些 Secrets
,但它给了我几乎相同的错误
Update-AzureRmVM : Changing property 'osProfile' is not allowed.
顺便说一下,如果我使用 FromImage
而不是 Attach
,我会得到错误:
New-AzureRmVM : Cannot specify user image overrides for a disk already defined in the specified image reference.
我该如何解决?
很确定此错误意味着您正在尝试使用现有磁盘创建虚拟机。在这种情况下,您不能修改 os 设置。仅在从新磁盘创建时。
我最终创建了一个 powershell 脚本,该脚本在 VM 上执行 powershell 命令(使用 Invoke-AzureRmVMRunCommand
):
检索证书
Get-AzureKeyVaultSecret -VaultName $keyVaultName -name (Get-AzureKeyVaultSecret -VaultName $keyVaultName).name
- 下载这些证书并将其绑定到 IIS
创建 ssl 绑定并将其分配给 https 绑定
Get-ChildItem cert:\localmachine\My | New-Item -Path IIS:\SslBindings\!443