Terraform-Azure Windows VM winrm连接问题
我想创建WindowsAzure虚拟机,复制一些文件,并使用terraform脚本在该虚拟机上运行一些简单的命令。 问题是:我能够创建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
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。