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

2024-04-11

我正在尝试使用 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)正在考虑防火墙问题。但是 Packer 可以使用以下代码在同一台笔记本电脑上启动到新建 Windows 虚拟机的连接:

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

2)尝试过https=true and https=false,都失败了。

3)尝试过use_ntlm=true and use_ntlm=false,都失败了。

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

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


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Terraform 配置程序无法 winrm 到 Azure 上新建的 Windows VM 的相关文章

随机推荐

  • 在裸机上使用 Kubernetes 1.6 安装插件的说明?

    我按照此文档从头开始设置了我的 kubernetes 集群 https kubernetes io docs getting started guides scratch https kubernetes io docs getting s
  • 在 Foundation 中动态设置 Sass 变量

    如何在 Foundation 中动态设置 Sass 变量 根据他们的文档 http foundation zurb com docs components tables html 您可以借助一些 Sass 变量来自定义表格 settings
  • PHP MySQL 数据库奇怪字符

    我正在尝试输出存储在 MySQL 数据库中的产品信息 但它写出了一些奇怪的字符 例如内部带有问号的菱形 我认为这可能是编码 UTF8问题 但我已经指定了我想要的编码 这是正确的吗 我应该检查什么 如果只有来自数据库的数据包含奇怪的字符 请使
  • 如何使 TinyMCE 在 UpdatePanel 中工作?

    我正在尝试做许多人似乎能够做到的事情 但我无法实施任何解决方案 这TinyMCE http tinymce moxiecode com 控件在 asp net 表单中工作得很好 直到您用 UpdatePanel 将其括起来 然后在回发后中断
  • 在 SceneKit 游戏中为 SCNNode 制作 SCNConstraint (LookAt) 动画以使过渡逐渐进行

    一般来说 当你想让游戏中的角色面对镜头时 可以使用 SCNLookAtConstraint 这实际上也对我很有帮助 Below 我的对象是我试图根据约束定向的节点 Enemy 指的是场景中的某个节点 pointOfView 是场景的视角 当
  • eclipse 找不到 android.support.v4.widget.SwipeRefreshLayout

    即使点击添加支持库并选择版本19后 eclipse仍然找不到android support v4 widget SwipeRefreshLayout 有谁知道如何让它发挥作用 我在用
  • 无法在 AWS Opsworks 上使用 Chef 12 找到 Chef 社区食谱

    问题 在 AWS OpsWorks 上运行自定义说明书时setup failed状态针对实例显示 并且故障日志中显示以下内容 2016 03 26T22 53 48 00 00 INFO Started chef zero at chefz
  • numpy 中的索引(与 max/argmax 相关)

    假设我有一个 N 维 numpy 数组x和一个 N 1 维索引数组m 例如 m x argmax axis 1 我想构造 N 1 维数组y这样y i 1 i N 1 x i 1 i N 1 m i 1 i N 1 为了argmax上面的例子
  • 具有高质量代码的开源 Objective-C 项目?

    我认为学习新编程语言的最佳方法之一是深入研究源代码并了解经验丰富的程序员如何编写 我在 Stack Overflow 上发现了针对其他语言的此类问题 但没有针对 Objective C 的问题 我发现的最接近的是这个关于好看的 Cocoa
  • 如何在Delphi中调试由另一个.exe启动的.exe

    我想调试App2 exe 它是由App1 exe启动的 如果 App2 exe 是一个 dll 我可以指定一个主机应用程序 但这似乎不适用于 exe 我现在使用 附加到进程 但如果 App2 exe 在我执行此操作之前崩溃 则这是无用的 有
  • 为什么无符号变量没有被更频繁地使用? [复制]

    这个问题在这里已经有答案了 似乎无符号整数对于方法参数和永远不应该为负数的类成员很有用 但我没有看到很多人以这种方式编写代码 我自己尝试了一下 发现需要从 int 转换为 uint 有点烦人 无论如何 你对此有何想法 复制 为什么数组长度是
  • 如何在 C# 中执行 cmd,然后在同一窗口中执行后面的另一个命令?

    我想要完成的是一个基本上一键设置活动分区的程序 节省了使用 cmd 提示符等的时间和技巧 我已经研究了 System Management 名称空间 但无法弄清楚如何使用它 所以我求助于使用 CMD 我有一个用 C 编写的模块应用程序 基本
  • WebSocket 连接建立时出错:net::ERR_CONNECTION_CLOSED

    当我尝试建立一个wss与我的服务器的连接 与 wss mydomain 3000 的 WebSocket 连接失败 错误 连接建立 net ERR CONNECTION CLOSED 我目前有一个 apache2 虚拟主机配置设置来侦听端口
  • Hyperledger Composer:尚未为此连接指定业务网络

    我已经在本地安装了 hyperledger 作曲家 但在本地主机上它给出错误 错误 尝试 ping 时出错 错误 没有业务网络 为此连接指定 我也无法添加模型和脚本文件 这是终端中显示的错误 error Hyperledger Compos
  • 开放数据库你好世界

    我正在尝试了解 openDatabase 并且我想我正在将其插入到 TABLE1 但我无法验证 SELECT FROM TABLE1 是否正常工作
  • 在清单中指定 Android Market RAM

    有些人继续在具有 100MB RAM 的手机上下载并安装我们的高清游戏 并给我们一个差评 有没有办法将应用程序下载限制为仅具有大量内存的智能手机 或者限制为新型号 CPU 我的最终解决方案来自 Raghav Sood 的提示 经过一番研究后
  • 使用 C# WebClient 伪造表单提交

    我需要调用 Web 并从我的 asp net mvc 应用程序中的模型检索结果数据 在网络上访问时 表单如下所示
  • 需要开发数据库逻辑方面的帮助

    这是我的一个小型项目 航空公司预订系统 让我们称这个航空公司为 FlyMi 我有一个数据库 尚未决定使用哪个数据库 我的朋友想要使用 MongoDB 无论如何 这是我的要求 我有一张表 其中包含航班详细信息 航班号 时刻表等 我将使用这张表
  • 将 Null 值分配给数据表中的整数列

    我有一个数据表 其中一个列名称为 CustomerID 数据类型为整数 我想动态地将行添加到数据表中 为此 我创建了一个 DataRow 对象 例如 DataTable dt new DataTable DataRow DR dt NewR
  • Terraform 配置程序无法 winrm 到 Azure 上新建的 Windows VM

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