Как создать зону route53 с предопределенным NS или обновить NS зарегистрированного домена? - PullRequest
1 голос
/ 10 мая 2019

У меня есть домен, зарегистрированный на маршруте 53. Этот домен указывает на некоторые серверы имен старого маршрута Route53.Сейчас я создаю свой скрипт Terraform для создания новой зоны Route53.Можно ли установить серверы имен при создании этого?Я попробовал следующее, но это не сработало:

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

  records = [
    "ns1.aws",
    "ns2.aws",
    "ns3.aws",
    "ns4.aws",
  ]
}

Я мог предположить, что это невозможно, поскольку кажется, что NS назначается случайным образом.Если это действительно так, есть ли команда Terraform, чтобы изменить NS моего зарегистрированного домена?Я нашел это сообщение на Github, поэтому я думаю, что для этого нет команды Terraform: https://github.com/terraform-providers/terraform-provider-aws/issues/88

Есть ли альтернативы?

Ответы [ 2 ]

1 голос
/ 13 мая 2019

В вашем случае вам лучше было бы импортировать существующую зону Route53 в ваш файл состояния, чтобы Terraform мог затем начать управлять ею вместо создания новой, использующей те же серверы имен.

Вы можете импортировать зону с помощью следующей команды:

terraform import aws_route53_zone.myzone Z1D633PJN98FT9

Где import aws_route53_zone.myzone относится к имени ресурса и Z1D633PJN98FT9 к идентификатору зоны.

0 голосов
/ 10 мая 2019

Вы можете избежать динамических записей ns через набор делегирования https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-concepts.html#route-53-concepts-reusable-delegation-set

По умолчанию, Маршрут 53 назначает случайный выбор серверов имен для каждой новой размещенной зоны.Чтобы упростить миграцию службы DNS на маршрут 53 для большого количества доменов, вы можете создать повторно используемый набор делегаций и затем связать повторно используемый набор делегаций с новыми размещенными зонами.

resource "aws_route53_delegation_set" "main" {
  reference_name = "DynDNS"
}

resource "aws_route53_zone" "primary" {
  name              = "hashicorp.com"
  delegation_set_id = "${aws_route53_delegation_set.main.id}"
}

resource "aws_route53_zone" "secondary" {
  name              = "terraform.io"
  delegation_set_id = "${aws_route53_delegation_set.main.id}"
}

Пример из https://www.terraform.io/docs/providers/aws/r/route53_delegation_set.html

...