amazon-ec2 - 使用 private_key 时,Terraform 配置程序抛出未找到 key 错误

标签 amazon-ec2 terraform

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

...
      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 的“附加参数”部分,其中提到 file()private_key 一起使用的插值函数:
https://www.terraform.io/docs/provisioners/connection.html

关于amazon-ec2 - 使用 private_key 时,Terraform 配置程序抛出未找到 key 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43674538/

相关文章:

amazon-web-services - Terraform 是否支持 VPC 的辅助 CIDR?

terraform - 如何最好地处理使用通用 .tf 文件的多个 .tfvars 文件?

amazon-web-services - AWS ACM 证书未验证

python - 在Python中将S3数据并行/异步下载到EC2中?

mysql - 无法远程连接到 EC2 MySQL 安装

docker - 如何在运行 NGINX Docker 容器的 AWS EC2 上启用 HTTPS?

terraform - 如何让ECS服务做force redeploy?

linux - SSH 连接到 ec2 连接超时

r - 在 Amazon Linux EC2 实例上安装 R 包

azure - 如何使用 Terraform 扩展 Kubernetes 集群以避免停机?