Terraform provisioner 在使用 private_key 时抛出找不到密钥的错误

Terraform provisioner throws key not found error when using private_key

我在部署 AWS 机器后使用 terraform 的配置器执行命令时遇到问题。使用以下配置时,我看到未找到密钥异常:

...
      provisioner "remote-exec" {
        inline = [
          "wget http://www.eu.apache.org/dist/jmeter/binaries/apache-jmeter-3.2.tgz",
          "tar -xzf apache-jmeter-3.2.tgz",
        ]    
        connection {
                user = "ec2-user"
                private_key = "${path.module}/my-private-key" 
                agent = false 
        }
      }
...

如何在 terraform 中使用我的私钥在机器创建后执行我的命令?

你必须使用 file() 插值函数和 private_key

   connection {
      . . .
      private_key = "${file("${path.module}/my-private-key")}"
      . . .
  }

查看 private_key 的 "Additional arguments" 部分,其中提到要与 private_key 一起使用的 file() 插值函数: https://www.terraform.io/docs/provisioners/connection.html