我正在尝试使用 dns 提供程序通过 terraform 自动更新 DNS。我已成功使用正向区域,但未成功使用反向区域。我的理解是 PTR 应该是 IP 地址的主机部分。我尝试使用以下内容(已清理)提供此信息:
# Configure Kubernetes DNS
provider "dns" {
update {
server = "<DNS IP ADDRESS>"
key_name = "nsadmin."
key_algorithm = "hmac-md5"
key_secret = "<SECRET>"
}
}
# Kubernetes master servers
resource "dns_a_record_set" "forward" {
count = 2
zone = "k8s.mydomain.example."
name = "kubernetes-master${count.index + 1}"
addresses = [
"${lookup(var.ipv4_addresses_int1, count.index)}",
]
}
resource "dns_ptr_record" "reverse" {
count = 2
zone = "0.11.10.in-addr.arpa."
name = "kubernetes-master${count.index + 1}"
ptr = "${element(split(".",lookup(var.ipv4_addresses_int1, count.index)),3)}""
}
我收到一个错误:* dns_ptr_record.reverse.0:创建 DNS 记录时出错:“ptr”应该是 FQDN
我试图根据计数值查找该虚拟机的 IP 地址,按“。”字符拆分它并取第三个元素。运行计划表明这有效,但应用它显然没有效果:
dns_ptr_record.reverse[0]: Creating...
name: "" => "kubernetes-master1"
ptr: "" => "1"
ttl: "" => "3600"
zone: "" => "0.11.10.in-addr.arpa."
在 terraform 文档中,dns_ptr_record ptr 的示例中是一个域名,这导致我尝试在反向区域中创建条目,例如:
example.com.0.11.10.in-addr.arpa
有人可以告知正确的方法吗?
文档非常模糊,我找不到任何教程或合适的示例。
答案1
切换 PTR 和 NAME 变量。
resource "dns_ptr_record" "reverse" {
count = 2
zone = "0.11.10.in-addr.arpa."
name = "${element(split(".",lookup(var.ipv4_addresses_int1, count.index)),3)}"
ptr = "kubernetes-master${count.index + 1}.k8s.example.com."
}