尝试将文件配置到azure RM VM后,我收到低于超时消息。
未知错误发布http://terraform.eastus.cloudapp.azure.com:3389/wsman:read 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"
}
}
您可以查看此link中的官方文档(Provisioner Connections)。
仅winrm连接类型支持的其他参数:
https - 设置为true以使用HTTPS而不是HTTP进行连接。
现在,您使用的连接类型是winrm
,因此您需要在VM的防火墙和Azure NSG上打开端口5986。您还需要创建自签名证书。你可以检查这个blog来做到这一点。
另一个解决方案,你可以使用Azure Custom Script来做到这一点。您可以创建一个脚本以从Azure存储帐户或github下载文件。
使用terraform执行此操作,您可以检查此answer。
我之前没有尝试过这种方法,但引起我注意的第一件事就是你使用了一种端口为3389的winrm.3389用于RDP,默认的winrm端口是5985(HTTP)和5986(HTTPS) 。