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

向azurerm vm提供文件期间的连接超时,azure,azure-virtual-machine,terraform,terraform-provider-azure,Azure,Azure Virtual Machine,Terraform,Terraform Provider Azure,我在尝试将文件配置到azure RM VM时收到超时消息 未知错误帖子 :读取tcp 192.168.0.4:59745->52.224.162.240:3389:wsarecv:远程主机强制关闭了现有连接 我正在尝试提供文件,虚拟机已经存在,不需要创建它。我只需要使用下面的配置将文本文件复制到现有VM provider "azurerm" { } resource "null_resource" "test" { provisioner "file" { connectio

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

未知错误帖子 :读取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"

}
}

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

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

您可以在此处检查正式文档(Provisioner Connections)

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

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

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


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


您可以使用terraform进行检查。

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

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

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

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


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


使用terraform进行此操作,您可以对此进行检查。

这里似乎有一点。Terraform确实支持SSH和WinRM,但没有提到RDP。让我尝试在VM中启用SSH/WinRM,并将在此处更新。这似乎是一个要点。Terraform确实支持SSH和WinRM,但没有提到RDP。让我尝试在VM中启用SSH/WinRM,并将在此处更新。谢谢…我将在周末尝试,因为现在涉及到一些其他内容。我肯定会在这里更新。@JaishMathews好的,如果你对此有任何疑问,请在这里更新。酷。我可以使用terraform远程运行PS1脚本。我唯一手动做的事情是在虚拟机创建之后,在其中安装了Azure虚拟机代理。现在我有以下两个关于terraform的问题。1.我们是否可以在.tf文件中引用Azure VM代理,以便在创建VM时安装它?2.另一个是现有的查询,
1。我们是否可以在.tf文件中引用Azure VM代理,以便在创建VM时安装它?
。对不起,我不太明白。如果您想使用terraform在VM内执行脚本,则可以使用Azure自定义脚本扩展。如果要使用
winrm
,它将出现问题。默认情况下,Windows防火墙上不允许使用5986。您的意思是要通过terraform安装Azure VM代理吗?事实上,这是不可能的。默认情况下,代理位于VM for marketplace image上。如果你使用自定义图像,你需要先安装它。谢谢…我将在周末尝试,因为现在涉及到一些其他的东西。我肯定会在这里更新。@JaishMathews好的,如果你对此有任何疑问,请在这里更新。酷。我可以使用terraform远程运行PS1脚本。我唯一手动做的事情是在虚拟机创建之后,在其中安装了Azure虚拟机代理。现在我有以下两个关于terraform的问题。1.我们是否可以在.tf文件中引用Azure VM代理,以便在创建VM时安装它?2.另一个是现有的查询,
1。我们是否可以在.tf文件中引用Azure VM代理,以便在创建VM时安装它?
。对不起,我不太明白。如果您想使用terraform在VM内执行脚本,则可以使用Azure自定义脚本扩展。如果要使用
winrm
,它将出现问题。默认情况下,Windows防火墙上不允许使用5986。您的意思是要通过terraform安装Azure VM代理吗?事实上,这是不可能的。默认情况下,代理位于VM for marketplace image上。如果您使用自定义映像,则需要先安装它。