【问题标题】:terraform modules ec2 and vpc AWSterraform 模块 ec2 和 vpc AWS
【发布时间】:2020-12-17 13:19:45
【问题描述】:

我对如何在 terraform 中使用模块有疑问。 请看下面我的代码。

module "aws_vpc"{
  source = "../modules/vpc"
  vpc_cidr_block = "192.168.0.0/16"
  name_cidr = "ec2-eks"
  name_subnet = "ec2-eks-subnet"
  subnet_cidr = ["192.168.1.0/25"]
}
module "ec2-eks" {
  source = "../modules/ec2"
  ami_id = "ami-07c8bc5c1ce9598c3"
  subnet_id = module.aws_vpc.aws_subnet[0]
  count_server = 1
}
output "aws_vpc" {
  value = module.aws_vpc.aws_subnet[0]
}

我正在创建一个 vpc,并希望下一步通过我创建的子网附加 ec2。但默认通过 VPC 附加 terraform。 我需要做什么才能将 ec2 附加到我的 vpc(子网)? 谢谢你的回答

【问题讨论】:

  • 欢迎来到社区。为了提高您的问题得到回答的机会,请尝试让您的主题更具体一些,以反映您的问题,而不是过于笼统。例如,这个问题主题行“terraform modules ec2 and vpc AWS”并不表示您的问题。如果您说“如何在 Terraform 中将 AWS VPC 子网附加到 EKS”,可能会更好。有关一般指导,请参阅stackoverflow.com/help/how-to-ask
  • 此外,您的 Terraform 代码似乎不完整,您使用哪些模块来部署基础架构?

标签: amazon-web-services amazon-ec2 module terraform amazon-vpc


【解决方案1】:

我需要做什么才能将 ec2 附加到我的 vpc(子网)?

aws_instance 具有subnet_id 属性。因此,要将您的实例放置在给定的子网中,您必须设置 subnet_id

由于您使用模块来创建您的aws_vpc,因此该模块可能也会输出子网 ID。由于缺乏模块的详细信息,很难提供准确的答案,但在一般情况下,您会按照以下方式做一些事情(示例):

resource "aws_instance" "web" {
  ami           = data.aws_ami.ubuntu.id
  instance_type = "t3.micro"

  subnet_id = module.aws_vpc.subnet_id

  tags = {
    Name = "HelloWorld"
  }
}

显然,以上取决于你的模块的实现。

【讨论】:

    【解决方案2】:

    谢谢。 我在 AWS 中获得了成功资源。我忘记在ec2的模块中设置参数subnet_id

    【讨论】:

      猜你喜欢
      • 2020-08-02
      • 1970-01-01
      • 2023-01-08
      • 2017-08-08
      • 2021-05-09
      • 2022-01-25
      • 2019-07-15
      • 1970-01-01
      • 2017-09-21
      相关资源
      最近更新 更多