如何在Terraform中运行Powershell脚本?

时间:2019-02-07 11:47:35

标签: terraform

我正在尝试在PowerShell脚本中运行terraform脚本。我尝试使用local-exec函数,但会引发以下错误。

  

错误:未知的根级密钥:供应商

我已经在下面添加了脚本。

如果有人能为我提供解决方案,我会很高兴。

provisioner "local-exec" {
  inline = ["powershell.exe -File C:\\Users\\Boopathi Kumar\\Downloads\\poscript1.ps1"]
}

1 个答案:

答案 0 :(得分:1)

Provisioners必须作为资源而不是顶级资源的一部分运行。

通常,这将针对实例执行,例如上面链接文档中给出的示例:

resource "aws_instance" "web" {
  # ...

  provisioner "local-exec" {
    command = "echo ${self.private_ip} > file.txt"
  }
}

将实例的IP地址写入到Terraform运行所在位置的本地文件中。

如果您根本没有任何指向资源的链接(您只是希望发生某些事情,而不管资源如何变化),则可以使用为此目的而设计的null_resource

local-exec docs中所述,您可以像这样使用它:

resource "null_resource" "example2" {
  provisioner "local-exec" {
    command = "Get-Date > completed.txt"
    interpreter = ["PowerShell", "-Command"]
  }
}