【发布时间】:2019-08-20 11:09:20
【问题描述】:
我有一个问题,在本地 exec 中添加 sudo 会继续运行。
简而言之,没有 local-exec 块。我能够创建和访问我的 EC2 实例。使用 ssh -vi path/to/key.pem ec2-user@ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com。
但是现在只要我添加下面的块;并运行apply 它在密码提示后一直显示“仍在创建”。
provisioner "local-exec" {
command = <<EOH
sudo yum -y update
sudo yum install -y python36u python36u-libs python36u-devel python36u-pip
EOH
}
那么,我的问题是这里的 sudo 用户是哪个用户?是 ec2-user 还是我最初创建的用于设置我的 AWS 的用户(仅包括访问密钥 ID 和秘密访问密钥)?
我该如何设置,有什么文档可以参考吗?
下面是我的 main.tf
provider "aws" {
region = "us-east-2"
version = "~> 1.2.0"
}
resource "aws_instance" "hello-world" {
ami = "ami-ef92b08a"
instance_type = "t2.micro"
provisioner "local-exec" {
command = <<EOH
sudo yum -y update
sudo yum install -y python36u python36u-libs python36u-devel python36u-pip
EOH
}
tags {
Name = "my-aws-terraform-hello-world"
}
}
resource "aws_security_group" "allow-tcp" {
name = "my-aws-terraform-hello-world"
ingress {
from_port = 8080
to_port = 8080
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
}
【问题讨论】:
-
Local-exec 在本地运行,即在您的机器上运行,而不是在您刚刚创建的实例上运行。改用 remote-exec 连接到您的 EC2 实例(或者更好的是使用用户数据,甚至更好的是尽可能多地烘焙到 AMI 中然后部署它)。
标签: python amazon-web-services terraform