如何解决terraform-provider-vsphere 自定义 windows ip 地址失败 sysprep “Windows 安装程序无法将 Windows 配置为在此计算机的硬件上运行”
我目前正在尝试使用 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" {
│
在虚拟机的屏幕上,有一条消息“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 应答文件,但我得到了完全相同的错误。
解决方法
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。看来 Antivirus 通常会抛出类似的错误。
尽管如此,由于某些(仍然)未知的原因,这些错误仍在发生。幸运的是,我应该在找到答案后编辑答案。
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。