我正在构建从未有过的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状态?有任何想法吗?谢谢。
答案 0 :(得分: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"
您明白了。你可以告诉我我已经做过了:)
答案 1 :(得分:1)
看看terraformer。
它可以将所有r53记录导入到您的状态并同时生成Terraform代码。