0

尝试将文件配置到 azure RM VM 时,我收到超时消息。

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

我正在尝试文件配置,并且 VM 已经存在,无需创建它。我只需要使用以下配置将文本文件复制到现有 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"

}
}
4

2 回答 2

2

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

于 2018-02-20T14:57:16.687 回答
2

您可以在此链接中查看官方文档(Provisioner Connections)。

仅由 winrm 连接类型支持的附加参数:

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

现在,您使用连接类型 is winrm,因此您需要在 VM 的防火墙和 Azure NSG 上打开端口 5986。您还需要创建一个自签名证书。你可以查看这个博客来做到这一点。


另一种解决方案,您可以使用Azure 自定义脚本来执行此操作。您可以创建一个脚本来从 Azure 存储帐户或 github 下载文件。

使用 terraform 来执行此操作,您可以检查此答案

于 2018-02-26T05:03:13.820 回答