Терраформируйте, чтобы получить IP-адрес от имени хоста

#terraform

Вопрос:

Есть ли у Terraform простой способ получить IP-адрес с имени хоста?

Что-то вроде этого

 data "some_data" "fetch_ip" {
  url = "https://google.com"
}

resource "null_resource" "temp" {
  google_ip = data.some_data.fetch_ip.ip // ipv4: 123.123.123.123
}
 

Ответ №1:

dns Поставщик Terraform предоставляет источники данных для чтения записей DNS для данного хоста.

Если вы ищете IPv4-адреса, например google.com , тогда вам нужно будет использовать dns_a_record_set источник данных. Фактически, в документации источника данных приведен пример, который ищет запись A для google.com :

 data "dns_a_record_set" "google" {
  host = "google.com"
}

output "google_addrs" {
  value = "${join(",", data.dns_a_record_set.google.addrs)}"
}
 

или для синтаксиса HCL2/Terraform 0.12 :

 data "dns_a_record_set" "google" {
  host = "google.com"
}

output "google_addrs" {
  value = join(",", data.dns_a_record_set.google.addrs)
}