0

我目前正在尝试使用 terraform 和 packer 部署域控制器。我构建了一个 Windows Server 2016 模板,并在其中安装了 Active Directory 域控制器。

以下是我部署 VM 的方式:

resource "vsphere_virtual_machine" "Active_Directory" {
  name             = "Active Directory"
  num_cpus         = 2
  memory           = 4196
  datastore_id     = data.vsphere_datastore.datastore.id
  host_system_id   = data.vsphere_host.host.id
  resource_pool_id = data.vsphere_resource_pool.pool.id
  guest_id         = data.vsphere_virtual_machine.template_win2016.guest_id
  scsi_type        = data.vsphere_virtual_machine.template_win2016.scsi_type

  # Configure network interface

  network_interface {
    network_id = data.vsphere_network.AD_network.id
  }
  

  disk {
    name = "Active Directory.vmdk"
    size = "35"
  }

  # Define template and customisation params
  clone {
    template_uuid = data.vsphere_virtual_machine.template_win2016.id

    customize {
      windows_options {
        computer_name  = "DomainControl"
      }
      network_interface {
        ipv4_address = "192.168.7.2"
        ipv4_netmask = 24
      } 
      ipv4_gateway = "192.168.7.1"
    }
  }
}

部署失败并出现以下错误:

╷
│ Error: 
│ Virtual machine customization failed on "/XXXX/vm/Active Directory":
│ 
│ timeout waiting for customization to complete
│ 
│ The virtual machine has not been deleted to assist with troubleshooting. If
│ corrective steps are taken without modifying the "customize" block of the
│ resource configuration, the resource will need to be tainted before trying
│ again. For more information on how to do this, see the following page:
│ https://www.terraform.io/docs/commands/taint.html
│ 
│ 
│   with vsphere_virtual_machine.Active_Directory,
│   on 061-Active Directory.tf line 6, in resource "vsphere_virtual_machine" "Active_Directory":
│    6: resource "vsphere_virtual_machine" "Active_Directory" {
│ 

在 VM 的屏幕上,出现此消息“Windows 安装程序无法将 Windows 配置为在此计算机的硬件上运行”

C:\Windows\Temp\vmware-imc 中没有错误。在 C:\Windows\Panther\setuperr.log 中:

2021-04-29 08:10:19, Error      [0x0f0082] SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'CryptoSysPrep_Specialize' from C:\Windows\system32\capisp.dll; dwRet = 0x32
2021-04-29 08:10:19, Error                 SYSPRP ActionPlatform::ExecuteAction: Error in executing action; dwRet = 0x32
2021-04-29 08:10:19, Error                 SYSPRP ActionPlatform::ExecuteActionList: Error in execute actions; dwRet = 0x32
2021-04-29 08:10:19, Error                 SYSPRP SysprepSession::Execute: Error in executing actions from C:\Windows\System32\Sysprep\ActionFiles\Specialize.xml; dwRet = 0x32
2021-04-29 08:10:19, Error                 SYSPRP RunPlatformActions:Failed while executing SysprepSession actions; dwRet = 0x32
2021-04-29 08:10:19, Error      [0x060435] IBS    Callback_Specialize: An error occurred while either deciding if we need to specialize or while specializing; dwRet = 0x32

在 C:\Windows\System32\Sysprep\Panther\setuperr.log 中:

2021-04-29 08:08:55, Error                 SYSPRP setupdigetclassdevs failed with error 0
2021-04-29 08:08:55, Error                 SYSPRP MRTGeneralize:98 - ERROR: Failed ConnectServer

我认为 0x32 表示“不支持该请求”。(来源:https ://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499- )但我不明白发生了什么。我猜这个问题与 MSRT 有关,但我没有发现任何关于“Failed ConnectServer”的类似错误

我尝试在 VM 上运行 Windows 更新并从 Windows2016 更改为 Windows2019,但似乎没有任何效果。有谁知道是什么导致了这个问题?Sysprep 是否需要网络连接才能工作?

编辑:我也尝试使用自定义最小 sysprep 应答文件,但我得到完全相同的错误。

4

1 回答 1

0
2021-04-29 08:08:55, Error                 SYSPRP setupdigetclassdevs failed with error 0
2021-04-29 08:08:55, Error                 SYSPRP MRTGeneralize:98 - ERROR: Failed ConnectServer

第一个错误是由于 Windows 服务在 Windows 服务器中没有真正的位置(如 XboxGameSave)。我只需要停止并禁用这些服务。对于第二个错误,这里应该归咎于 Windows Defender。似乎防病毒软件通常会引发类似的错误。

尽管如此,由于某些(仍然)未知的原因,这些错误仍在发生。运气好的话,我应该稍后在找到答案时编辑答案。

2021-04-29 08:10:19, Error      [0x0f0082] SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'CryptoSysPrep_Specialize' from C:\Windows\system32\capisp.dll; dwRet = 0x32
2021-04-29 08:10:19, Error                 SYSPRP ActionPlatform::ExecuteAction: Error in executing action; dwRet = 0x32
2021-04-29 08:10:19, Error                 SYSPRP ActionPlatform::ExecuteActionList: Error in execute actions; dwRet = 0x32
2021-04-29 08:10:19, Error                 SYSPRP SysprepSession::Execute: Error in executing actions from C:\Windows\System32\Sysprep\ActionFiles\Specialize.xml; dwRet = 0x32
2021-04-29 08:10:19, Error                 SYSPRP RunPlatformActions:Failed while executing SysprepSession actions; dwRet = 0x32
2021-04-29 08:10:19, Error      [0x060435] IBS    Callback_Specialize: An error occurred while either deciding if we need to specialize or while specializing; dwRet = 0x32
于 2021-05-03T06:15:31.813 回答