Преобразование DNS-записи Openstack v2 для получения полного доменного имени с помощью Terraform - PullRequest
0 голосов
/ 16 апреля 2019

В Terraform, использующей поставщика openstack_v2, обработка записей DNS действительно сложна, поскольку записи DNS имеют конечную точку, и нет способа легко обработать эти случаи с помощью Terraform (0.11).

Смотрите первый комментарий. Сначала я не указывал, что fqdn можно использовать с конечной точкой почти везде: браузер, терминал, ansible ... Этот случай использования - когда конечная точка вызывает проблемы. Например, в системе, которая плохо обрабатывает fqdn ...

Вот пример dns-записи:

module.runners.openstack_dns_recordset_v2.dns-record.0:
  id = b84346ec-240b-4517-8da5-0715ed196bc2/234acad2-909a-490c-8aec-b9655fa4bc41
  description = 
  name = runner-1.dns-zone.domain.net.
  records.# = 1
  records.0 = 192.168.0.57
  region = RegionOne
  ttl = 3000
  type = A
  zone_id = b84346ec-240b-4517-8da5-0715ed196bc2

Terraform не предоставляет никакого способа для преобразования строк в списке. Как я могу это сделать?

1 Ответ

0 голосов
/ 16 апреля 2019

Решение состоит в том, чтобы использовать data_null_source, который может иметь значение счетчика. Переменная count является единственным способом применить строковое преобразование к значениям списка.

Вот пример кода для обработки этого варианта использования. Он удалит последний символ для каждого имени записи DNS, что позволит нам использовать полное доменное имя без конечной точки позже.

data "null_data_source" "fqdns" {
  count = "${var.instance_count}"
  inputs = {
    dns = "${substr(element(openstack_dns_recordset_v2.dns-record.*.name, count.index),0,length(element(openstack_dns_recordset_v2.dns-record.*.name, count.index))-1)}"
  }
}

output "fqdns" {
  value = ["${data.null_data_source.fqdns.*.outputs.dns}"]
}

Теперь мы можем использовать объект fqdns. Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...