2017-06-17 49 views
1

当terraform运行以下,这显然是采随机NS服务器:如何指定的DNS服务器时terrafrorm使用aws_route53_zone

resource "aws_route53_zone" "example.com" { 
    name = "example.com" 
} 

这样做的问题是,我在AWS注册的域名已有指定的NS服务器。有没有办法指定这个资源使用的NS服务器 - 或者可以将托管域的NS服务器更改为在创建区域时选择的内容?

+0

你是说你已经为你的域Route53区?如果是这种情况,只需使用'terraform import'将区域置于您的状态,以便Terraform可以管理它。 – ydaetskcoR

+0

不,我说我有一个AWS注册域名,我正在使用terraform来创建一个区域。 – TyMac

+0

域名没有名称服务器。如果您通过AWS购买域名,他们通常会提示您是否想同时创建一个区域。 – ydaetskcoR

回答

0

当您创建新区域时,AWS会为您生成名称服务器列表。使用Terraform中的这个例子。

resource "aws_route53_zone" "dev" { 
    name = "dev.example.com" 

    tags { 
    Environment = "dev" 
    } 
} 

resource "aws_route53_record" "dev-ns" { 
    zone_id = "${aws_route53_zone.main.zone_id}" 
    name = "dev.example.com" 
    type = "NS" 
    ttl  = "30" 

    records = [ 
    "${aws_route53_zone.dev.name_servers.0}", 
    "${aws_route53_zone.dev.name_servers.1}", 
    "${aws_route53_zone.dev.name_servers.2}", 
    "${aws_route53_zone.dev.name_servers.3}", 
    ] 
} 

https://www.terraform.io/docs/providers/aws/r/route53_zone.html

API调用创建区域后返回一个代表团集。

http://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateHostedZone.html#API_CreateHostedZone_ResponseSyntax

0

我已经能够指定DNS服务器,但我会想象AWS是基于可用性分配服务器,负载等等,所以你可能要认真思考在烘烤这些CONFIGS。

resource "aws_route53_record" "primary-ns" { 
    zone_id = "${aws_route53_zone.primary.zone_id}" 
    name = "www.bacon.rocks" 
    type = "NS" 
    ttl = "172800" 
    records = ["ns-869.awsdns-44.net","ns-1237.awsdns-26.org","ns-1846.awsdns-38.co.uk","ns-325.awsdns-40.com"] 
} 

或类似的规定