代码之家  ›  专栏  ›  技术社区  ›  Andrius NaruÅ¡evičius

如何附加OSDisk并更改Azure VM的OSProfile

  •  0
  • Andrius NaruÅ¡evičius  · 技术社区  · 6 年前

    我正在建立一个虚拟机恢复管道。看起来是这样的:

    我复制操作系统磁盘

    $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
    

    但是我也希望间接地修改 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.
    

    我该怎么解决?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Andrius NaruÅ¡evičius    6 年前

    我最终创建了一个powershell脚本来执行powershell命令(使用 Invoke-AzureRmVMRunCommand )在虚拟机上:

    1. 检索证书

      Get-AzureKeyVaultSecret -VaultName $keyVaultName -name (Get-AzureKeyVaultSecret -VaultName $keyVaultName).name

    2. 下载这些证书并将其绑定到IIS
    3. 创建ssl绑定并将其分配给https绑定

      Get-ChildItem cert:\localmachine\My | New-Item -Path IIS:\SslBindings\!443

        2
  •  0
  •   4c74356b41    6 年前

    非常肯定,这个错误意味着你正在尝试使用现有的磁盘来创建虚拟机。在这种情况下,不能修改操作系统设置。仅当从新磁盘创建时。