Terraform DDNs - Reverse-Zone-Erstellung

Terraform DDNs - Reverse-Zone-Erstellung

Ich versuche, DNS mit Terraform unter Verwendung des DNS-Anbieters automatisch zu aktualisieren. Ich war mit der Vorwärtszone erfolgreich, aber nicht mit der Rückwärtszone. Meines Wissens sollte PTR der Host-Teil der IP-Adresse sein. Ich habe versucht, dies mithilfe des Folgenden (bereinigt) bereitzustellen:

# 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)}""
}

Ich erhalte eine Fehlermeldung: * dns_ptr_record.reverse.0: Fehler beim Erstellen des DNS-Eintrags: „ptr“ sollte ein FQDN sein

Ich versuche, die IP-Adresse für diese VM anhand des Zählwerts zu ermitteln, sie am Zeichen "." aufzuteilen und das dritte Element zu nehmen. Das Ausführen eines Plans zeigt, dass dies funktioniert hat, aber die Anwendung hat offensichtlich nicht funktioniert:

dns_ptr_record.reverse[0]: Creating...
  name: "" => "kubernetes-master1"
  ptr:  "" => "1"
  ttl:  "" => "3600"
  zone: "" => "0.11.10.in-addr.arpa."

Im Beispiel in der Terraform-Dokumentation für dns_ptr_record ist ptr ein Domänenname, was dazu führte, dass ich versuchte, Einträge in meiner Reverse-Zone zu erstellen wie:

example.com.0.11.10.in-addr.arpa

Kann mir bitte jemand sagen, wie das richtig geht?

Die Dokumentation ist sehr vage und ich kann nirgends Tutorials oder anständige Beispiele finden.

Antwort1

Vertauschen Sie die Variablen PTR und 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."
}

verwandte Informationen