【问题标题】:Terraform - Update a newly create default route table for a VPCTerraform - 为 VPC 更新新创建的默认路由表
【发布时间】:2021-06-16 03:24:25
【问题描述】:

如何更新使用 Terraform 创建 VPC 时自动创建的默认路由表?

我想给它添加一些标签。

这就是我创建 VPC 的方式

module "aws_vpc" {
  source = "../../modules/Virtual Private Cloud"
  vpc_cidr = "10.0.0.0/16"
  vpc_instance_tenancy = "default"
  vpc_tags = {
    Name = "Web Application VPC"
    project = "Alpha"
    cost_center = "92736"
    developer = "J.Pean"
  }
}

模块如下所示:

resource "aws_vpc" "new" {
  cidr_block = var.vpc_cidr
  instance_tenancy = "default"
  tags = var.vpc_tags
}

【问题讨论】:

  • 您使用的是本地模块,因此这实际上取决于本地模块的定义方式。查看“Virtual Private Cloud”下的 variables.tf 以获取如何修改/创建可路由的线索。
  • 你不能只创建自己的 route_table 并通过registry.terraform.io/providers/hashicorp/aws/latest/docs/… 将 vpc 的主路由表设置为那个吗?
  • @luk2302 是的,我可以。但最好的做法是让一个路由表单独在那里? :-)
  • 最佳实践?可能不是。练习好吗?是的。
  • @Bob 如果你不想按照@luk2302 的建议创建一个单独的route_table,你可以使用null_resource 在资源上做你想做的事情,但是你必须退回到 CLI 命令甚至是 python 脚本。

标签: amazon-web-services terraform


【解决方案1】:
resource "null_resource" "tag_default_route_table" {
  triggers = {
    route_table_id = aws_vpc.new.default_route_table_id
  }

  provisioner "local-exec" {
      interpreter=["/bin/bash", "-c"]
      command = <<EOF
      set -euo pipefail
      aws ec2 create-tags --resources route_table_id --tags 'Key="somekey",Value=test'
      EOF
  }
}

使用null_resource

【讨论】:

    【解决方案2】:

    您可以通过资源管理新创建的路由表以及nacl和sg:

    • aws_default_network_acl
    • aws_default_route_table
    • aws_default_security_group

    Terraform documentation

    【讨论】:

      猜你喜欢
      • 2019-01-21
      • 2019-07-21
      • 2020-08-31
      • 2014-04-09
      • 2019-06-10
      • 1970-01-01
      • 1970-01-01
      • 2022-12-13
      • 2018-08-18
      相关资源
      最近更新 更多