Terraform 从主机名获取 IP

Kom*_*osh 2 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
}
Run Code Online (Sandbox Code Playgroud)

yda*_*coR 7

Terraform 的dns提供商提供用于读取给定主机的 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)}"
}
Run Code Online (Sandbox Code Playgroud)

或对于 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)
}
Run Code Online (Sandbox Code Playgroud)