【问题标题】:Terraform Import Massive recordsTerraform 导入海量记录
【发布时间】:2019-12-25 00:06:58
【问题描述】:

我正在改造一个以前从未在 Terraform 中使用过的基础设施。我有 300 条 Route53 记录。我使用terraform import 命令导入状态,直到我意识到对每条记录都这样做是不明智的,因为它们有很多。

我尝试了一个名为 terraforming 的工具,但看起来状态没有得到很好的更新。导入后,当我执行terraform plan 时,我会看到很多将被创建的东西。这是错误的。

我有这样的块:

resource "aws_route53_record" "examplerecord" {
   zone_id = "zone_id"
   name    = "name"
   type    = "NS"
   records = [""]
resource "aws_route53_zone" "examplezone" {
   name       = "name"
   comment    = "comment"
   tags {
   }
}

如何实现一次将所有记录导入Terraform状态?有任何想法吗?谢谢。

【问题讨论】:

    标签: terraform amazon-route53 terraform-provider-aws


    【解决方案1】:

    我不熟悉terraforming,但要使用原始terraform 做你想做的事已经很痛苦了,因为你需要在你的.tf 文件中创建空白资源条目。

    假设这是一次性的事情,我会编写一个简短的程序,使用 AWS API 获取所有相关记录,然后将它们重新格式化为 terraform 配置。类似的东西

    r = boto3.client('route53')
    for hz in r.list_hosted_zones()['HostedZones']
      # ... output an "aws_route53_zone" record
      for rrs in r.list_resource_record_sets(HostedZoneId=hz['HostedZoneId']):
        for rr in rrs['ResourceRecordSets']:
          # ... output an aws_route53_record" 
    

    你明白了。你可以说我以前做过这个:)

    【讨论】:

      【解决方案2】:

      看看terraformer。

      它可以将您所有的 r53 记录导入您的状态并同时生成 terraform 代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-19
        • 1970-01-01
        • 2015-12-24
        • 2011-12-30
        • 1970-01-01
        • 1970-01-01
        • 2022-10-13
        • 1970-01-01
        相关资源
        最近更新 更多