如何为 Azure VM 附加 OSDisk 和更改 OSProfile
Posted
技术标签:
【中文标题】如何为 Azure VM 附加 OSDisk 和更改 OSProfile【英文标题】:How to attach OSDisk and change OSProfile for Azure VM 【发布时间】:2019-01-16 22:20:30 【问题描述】:我正在设置虚拟机恢复管道。它看起来像这样:
我复制操作系统磁盘
$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 来间接修改 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
(即 - 将新记录添加到列表中),但有一个限制,我无法对其进行编辑。我也试过先创建一个虚拟机,然后添加那些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.
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:我最终创建了一个在 VM 上执行 powershell 命令(使用 Invoke-AzureRmVMRunCommand
)的 powershell 脚本:
检索证书
Get-AzureKeyVaultSecret -VaultName $keyVaultName -name (Get-AzureKeyVaultSecret -VaultName $keyVaultName).name
创建一个 ssl 绑定并将其分配给 https 绑定
Get-ChildItem cert:\localmachine\My | New-Item -Path IIS:\SslBindings\!443
【讨论】:
【参考方案2】:很确定这个错误意味着您正在尝试使用现有磁盘来创建虚拟机。在这种情况下,您无法修改操作系统设置。仅在从新磁盘创建时。
【讨论】:
但我确实复制了它,不是吗?我希望它能够像新的一样被处理。 复制它有什么关系? 嗯,我猜,它没有。但是,在这种情况下,是否有另一种方法来实现我提到的绑定证书教程的功能? 使用新的虚拟机镜像? 我已经安装了很多程序,并按照我需要的方式在该磁盘中进行设置。我无法创建空磁盘。安装/设置一切需要几天时间。以上是关于如何为 Azure VM 附加 OSDisk 和更改 OSProfile的主要内容,如果未能解决你的问题,请参考以下文章