connection {
type = "winrm"
user = "testadmin"
password = "Password1234!"
host = azurerm_public_ip.example.ip_address
}粮食供应者"remote-exec"{
script = "C:\Proj\Fali\vm\DC.ps1"
}
我已经打开了所有的端口
direction = "Inbound"
access = "Allow"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "*"
source_address_prefix = "*"
destination_address_prefix = "*"
运行PS脚本时的连接超时,上面提到的代码片段
解决上述问题的变通方法之一;
您可以在您的example.tf
文件中使用以下格式,通过配置文件名并为其提供超时值。
connection {
host = azurerm_public_ip.win_pubip.fqdn
type = "winrm"
port = 5985
https = false
timeout = "2m"
user = var.username
password = var.password
}
provisioner "file" {
source = "files/yourfile.ps1"
destination = "c:/terraform/yourfile.ps1"
}
provisioner "remote-exec" {
inline = [
"PowerShell.exe -ExecutionPolicy Bypass c:\terraform\yourfile.ps1",
]
有关如何配置和执行配置脚本的完整信息,请参阅
GitHub Sample code
更多信息请参考以下链接:-
- 所以线程|Terraform - Azure Windows VM winrm连接问题。
执行给定任务的另一种方法是使用OpenSSH而不是WinRM。但是,您需要在Windows服务器上安装OpenSSH Server并打开一个端口,不一定是端口22
您可以使用windows-capability安装OpenSSH服务器。
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0