
我正在嘗試使用 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."
}