Terraform-Azure Windows VM winrm连接问题

Terraform-Azure Windows VM winrm连接问题,windows,virtual-machine,winrm,terraform-provider-azure,Windows,Virtual Machine,Winrm,Terraform Provider Azure,我想创建WindowsAzure虚拟机,复制一些文件,并使用terraform脚本在该虚拟机上运行一些简单的命令。 问题是:我能够创建VM,但无法通过winrm连接 provider "azurerm" { subscription_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" tenant_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } re

我想创建WindowsAzure虚拟机,复制一些文件,并使用terraform脚本在该虚拟机上运行一些简单的命令。 问题是:我能够创建VM,但无法通过winrm连接

provider "azurerm" {

  subscription_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  tenant_id       = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}    
resource "azurerm_virtual_network" "vnet" {
  name                = "cmTFVnet"
  address_space       = ["10.0.0.0/16"]
  location            = "South India"
  resource_group_name = "cservice"
}    
resource "azurerm_subnet" "subnet" {
  name                 = "cmTFSubnet"
  resource_group_name  = "cservice"
    virtual_network_name = "${azurerm_virtual_network.vnet.name}"
  address_prefix       = "10.0.2.0/24"
}    
resource "azurerm_public_ip" "publicip" {

    name                         = "cmTFPublicIP"
    location                     = "South India"
    resource_group_name          = "cservice"
    public_ip_address_allocation = "dynamic"
 }    
resource "azurerm_network_security_group" "nsg" {
    name                = "cmTFNSG"
    location            = "South India"
    resource_group_name = "cservice"

    security_rule {
        name                       = "SSH"
        priority                   = 340
        direction                  = "Inbound"
        access                     = "Allow"
        protocol                   = "Tcp"
        source_port_range          = "*"
        destination_port_range     = "22"
        source_address_prefix      = "*"
        destination_address_prefix = "*"
    }
    security_rule {  
    name                       = "winrm"  
    priority                   = 1010  
    direction                  = "Inbound"  
    access                     = "Allow"  
    protocol                   = "Tcp"  
    source_port_range          = "*"  
    destination_port_range     = "5985"  
    source_address_prefix      = "*"  
    destination_address_prefix = "*"  
  }  
  security_rule {   
    name                       = "winrm-out"  
    priority                   = 100  
    direction                  = "Outbound"  
    access                     = "Allow"  
    protocol                   = "*"  
    source_port_range          = "*"  
    destination_port_range     = "5985"  
    source_address_prefix      = "*"  
    destination_address_prefix = "*"  
  }         
}    
resource "azurerm_network_interface" "nic" {
  name                = "cmNIC"
  location            = "South India"
  resource_group_name = "cservice"
 network_security_group_id = "${azurerm_network_security_group.nsg.id}"
  ip_configuration {
    name                          = "compilerNICConfg"
    subnet_id                     = "${azurerm_subnet.subnet.id}"
    private_ip_address_allocation = "dynamic"
   public_ip_address_id          = "${azurerm_public_ip.publicip.id}"
  }
}
 resource "azurerm_virtual_machine" "vm" {
  name                  = "cmTFVM"
  location              = "South India"
  resource_group_name   = "cservice"
 network_interface_ids = ["${azurerm_network_interface.nic.id}"]
 vm_size            = "Standard_D2s_v3"

   storage_image_reference 
  {
    id =  "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
    storage_os_disk {
    name          = "cmOsDisk"
    managed_disk_type = "Premium_LRS"
    create_option = "FromImage"

  }

  os_profile {
    computer_name  = "hostname"
    admin_username = "test"
    admin_password = "test@123"
  }
   os_profile_windows_config {
        enable_automatic_upgrades = "true"
        provision_vm_agent ="true"
        winrm = {  
                  protocol = "http"  
        }
   }
    provisioner "remote-exec" {
     connection   = {
     type        = "winrm"
     user        = "test"
     password    = "test@123"
     agent       = "false"
     https    = false
     insecure = true
    } 
    inline = [
      "cd..",
      "cd..",
      "cd docker",
      "mkdir test"
    ]
  }
 }
VM已成功创建,但无法通过WINRM连接 但我在“远程执行”中遇到以下错误:

azurerm_virtual_machine.vm:超时-上次错误:未知错误发布 :拨号tcp:5985:connectex:连接尝试 失败,因为关联方在发生错误后没有正确响应 一段时间,或由于已连接而建立的连接失败 主机无法响应。 或http响应错误:401-内容类型无效


创建Windows Azure VM时,默认情况下不会配置WINRM。因此,如果希望通过WINRM连接VM,则应在VM创建时间之后或在创建时间内配置WINRM


您可以按照中的步骤操作。您还可以在创建时对其进行配置。有一个例子显示,通过Azure模板。它也会提供一些帮助。请参阅。

我们需要更多信息以帮助。。。例如代码示例、错误消息、您正在关注的文档、您尝试过的内容您可以提供您所做的事情、您关注的文档以及您想知道的最重要的事情是什么?只需提供更多细节。还有更新吗?直到得到相同的问题。是否有其他方法可以使用terraform脚本将文件复制到VM。基本上,这是部署脚本,我们不希望用户交互弹出,直到得到相同的问题。是否有其他方法可以使用terraform脚本将文件复制到VM。基本上,它是部署脚本,我们不希望在其中弹出用户交互。@ShrutiSijaria是的,您可以使用与PowerShell脚本一起执行,建议这样做。看。在PowerShell脚本中,可以根据需要使用AzCopy或scp。