gpt4 book ai didi

azure - Terraform 配置程序无法 winrm 到 Azure 上新建的 Windows VM

转载 作者:行者123 更新时间:2023-12-02 06:11:35 25 4
gpt4 key购买 nike

我正在尝试使用 Terraform 在 Azure 上配置 Windows VM,并同时引导它。我能想到的方法是terraform provisioner。出于测试目的,我这样编写了配置程序:

provisioner "remote-exec" {
inline = [
"md c:/terraform",
]
connection {
type = "winrm"
host = "${azurerm_network_interface.vmstamp.private_ip_address}"
user = "${var.admin_username}"
password = "${var.admin_password}"
https = false
insecure = true
timeout = "1m"
}
}

模板已成功配置 VM,但在尝试使用 WinRM 连接 VM 时出现错误。

azurerm_virtual_machine.vmstamp: Still creating... (5m50s elapsed)
azurerm_virtual_machine.vmstamp (remote-exec): Connecting to remote host via WinRM...
azurerm_virtual_machine.vmstamp (remote-exec): Host: 10.237.249.146
azurerm_virtual_machine.vmstamp (remote-exec): Port: 5985
azurerm_virtual_machine.vmstamp (remote-exec): User: azadmin
azurerm_virtual_machine.vmstamp (remote-exec): Password: true
azurerm_virtual_machine.vmstamp (remote-exec): HTTPS: true
azurerm_virtual_machine.vmstamp (remote-exec): Insecure: true
azurerm_virtual_machine.vmstamp (remote-exec): NTLM: false
azurerm_virtual_machine.vmstamp (remote-exec): CACert: false
azurerm_virtual_machine.vmstamp: Still creating... (6m0s elapsed)

Error: Error applying plan:

1 error(s) occurred:

* azurerm_virtual_machine.vmstamp: timeout - last error: unknown error Post https://10.237.249.146:5985/wsman: dial tcp 10.237.249.146:5985: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

我尝试过的几件事:

1)正在考虑防火墙问题。但打包程序可以使用以下代码在同一台笔记本电脑上启动到新建 Windows 虚拟机的连接:

"communicator": "winrm",
"winrm_use_ssl": "true",
"winrm_insecure": "true",
"winrm_timeout": "3m",
"winrm_username": "packer",

2) 尝试了 https=truehttps=false,均失败。

3) 尝试了 use_ntlm=trueuse_ntlm=false,均失败。

4) 尝试了 port=5985port=5986,均失败。从市场图像来看,5986 实际上没有在新的 Windows VM 中监听。

terraform 配置程序的正确配置是什么?

最佳答案

后来我发现winrm我们需要添加一个证书来启用winrm。要添加证书,我们需要先创建一个 keystore 和存储帐户。 Packer 为我们执行这些步骤,而 terraform 则不然。因此,我们必须在 terraform 模板中构建这些步骤以启用证书,然后启用 winrm。该计划是引导 Windows 虚拟机,而无需创建额外的资源(例如存储帐户或 key 存储),因为我需要在配置后清理它们,这会使模板变得复杂。如果我无论如何都必须创建额外的资源,我更喜欢使用 Azure VM 扩展,因为它不需要在 NSG 上启用 winrm 端口 5985,这是另一个大的治理问题。

关于azure - Terraform 配置程序无法 winrm 到 Azure 上新建的 Windows VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53440481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com