代码之家  ›  专栏  ›  技术社区  ›  Jaish Mathews

向azurerm vm提供文件期间的连接超时

  •  0
  • Jaish Mathews  · 技术社区  · 7 年前

    我在尝试将文件配置到azure RM VM时收到低于超时的消息。

    未知错误帖子 http://terraform.eastus.cloudapp.azure.com:3389/wsman :读取tcp 192.168.0.4:59745->52.224.162.240:3389:wsarecv:远程主机强制关闭了现有连接。

    我正在尝试提供文件,虚拟机已经存在,不需要创建它。我只需要使用下面的配置将文本文件复制到现有VM。

    provider "azurerm"
    {
    }
    resource "null_resource" "test"
    {
    
    provisioner "file" 
    {
            connection 
            {
                type = "winrm"
                user = ""
                password = ""
                host="terraform.eastus.cloudapp.azure.com"
                port="3389"
                timeout = "20m"
            }
        source = "D:\\jaish\\output.txt"
        destination = "D:\\output.txt"
    
    }
    }
    
    2 回复  |  直到 7 年前
        1
  •  2
  •   Shui shengbao    7 年前

    您可以在此处检查官方文档(Provisioner Connections) link .

    仅winrm连接类型支持的其他参数:

    https-设置为true以使用https而不是HTTP进行连接。

    现在,您使用的连接类型是 winrm ,所以您需要在VM的防火墙和Azure NSG上打开端口5986。您还需要创建一个自签名证书。你可以看看这个 blog 这样做。


    另一种解决方案,您可以使用 Azure Custom Script 这样做。您可以创建一个脚本来从Azure存储帐户或github下载文件。

    使用terraform进行此操作,您可以检查此 answer .

        2
  •  2
  •   phydeauxman    7 年前

    我以前没有尝试过这种方法,但引起我注意的第一件事是,您使用的是一种端口为3389的winrm类型。3389用于RDP,默认winrm端口为5985(HTTP)和5986(HTTPS)。