使用private_key时,Terraform provisioner会抛出key not found错误

and*_*pfr 3 amazon-ec2 terraform

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

...
      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 
        }
      }
...
Run Code Online (Sandbox Code Playgroud)

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

gev*_*gev 6

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

   connection {
      . . .
      private_key = "${file("${path.module}/my-private-key")}"
      . . .
  }
Run Code Online (Sandbox Code Playgroud)

查看private_key的"附加参数"部分,其中提到file()了要使用的插值函数private_key:https: //www.terraform.io/docs/provisioners/connection.html