From f37c92c439bcb416231b5896e4a2a12b022df818 Mon Sep 17 00:00:00 2001 From: Felix Nehrke Date: Sat, 8 Mar 2025 20:36:22 +0100 Subject: [PATCH] Reduce number of terraform-file to the "normal" set of files and simplify dns-definition --- _provider.tf | 3 -- dns.tf | 78 --------------------------------------------------- main.tf | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++ versions.tf | 4 +++ 4 files changed, 83 insertions(+), 81 deletions(-) delete mode 100644 _provider.tf delete mode 100644 dns.tf create mode 100644 main.tf diff --git a/_provider.tf b/_provider.tf deleted file mode 100644 index 9e55d65..0000000 --- a/_provider.tf +++ /dev/null @@ -1,3 +0,0 @@ -provider "hetznerdns" { - apitoken = var.hetzner_apitoken -} diff --git a/dns.tf b/dns.tf deleted file mode 100644 index 670fa76..0000000 --- a/dns.tf +++ /dev/null @@ -1,78 +0,0 @@ -module "dns_goperte_de" { - source = "./modules/hetzner/dns" - zone = "goperte.de" - zone_ttl = 900 - records = [ - { name = "@", type = "A", value = "62.138.6.205" }, - { name = "*", type = "A", value = "62.138.6.205" }, - ] -} - -module "dns_nehrke_info" { - source = "./modules/hetzner/dns" - zone = "nehrke.info" - zone_ttl = 3600 - records = [ - { name = "@", ttl = 900, type = "A", value = "62.138.6.205" }, - { name = "*", ttl = 900, type = "A", value = "62.138.6.205" }, - { name = "@", type = "MX", value = "1 smtp.google.com." }, - { name = "@", type = "TXT", value = "v=spf1 include:_spf.google.com a mx ~all" }, - { name = "_dmarc", type = "TXT", value = "v=DMARC1; p=none;" }, - { name = "google._domainkey", type = "TXT", value = var.nehrke_info_dkim }, - ] -} - -module "dns_sozpaedil_net" { - source = "./modules/hetzner/dns" - zone = "sozpaedil.net" - zone_ttl = 3600 - records = [ - { name = "@", ttl = 900, type = "A", value = "62.138.6.205" }, - { name = "*", ttl = 900, type = "A", value = "62.138.6.205" }, - { name = "@", type = "MX", value = "1 smtp.google.com." }, - { name = "@", type = "TXT", value = "v=spf1 include:_spf.google.com a mx ~all" }, - { name = "_dmarc", type = "TXT", value = "v=DMARC1; p=none;" }, - { name = "google._domainkey", type = "TXT", value = var.sozpaedil_net_dkim }, - ] -} - -module "dns_tovot_de" { - source = "./modules/hetzner/dns" - zone = "tovot.de" - zone_ttl = 900 - records = [ - { name = "@", type = "A", value = "62.138.6.205" }, - { name = "*", type = "A", value = "62.138.6.205" }, - ] -} - -module "dns_tovot_net" { - source = "./modules/hetzner/dns" - zone = "tovot.net" - zone_ttl = 900 - records = [ - { name = "@", type = "A", value = "62.138.6.205" }, - { name = "*", type = "A", value = "62.138.6.205" }, - ] -} - -module "dns_tovot_org" { - source = "./modules/hetzner/dns" - zone = "tovot.org" - zone_ttl = 900 - records = [ - { name = "@", type = "A", value = "62.138.6.205" }, - { name = "*", type = "A", value = "62.138.6.205" }, - ] -} - -module "dns_xn--alleingnger-r8a_de" { - source = "./modules/hetzner/dns" - zone = "xn--alleingnger-r8a.de" - zone_ttl = 900 - records = [ - { name = "@", type = "A", value = "62.138.6.205" }, - { name = "*", type = "A", value = "62.138.6.205" }, - ] -} - diff --git a/main.tf b/main.tf new file mode 100644 index 0000000..718c55e --- /dev/null +++ b/main.tf @@ -0,0 +1,79 @@ +locals { + dns_zones = { + # costs-table: + # domain | amount | hetzner (einzel) | hetzner konsoleH (einzel) | tecspace (einzel) + # --------+--------+------------------+---------------------------+------------------- + # de | 3 | 30.00€ (10.00€) | 35.70€ (11.90€) | 15.85€ (5.95€) + # info | 1 | 26.00€ (26.00€) | 30.94€ (30.94€) | 21.95€ (21.95€) + # net | 2 | 28.00€ (14.00€) | 33.32€ (16.66€) | 35.90€ (17.95€) + # org | 1 | 15.00€ (15.00€) | 17.85€ (17.85€) | 21.95€ (21.95€) + # --------+--------+------------------+---------------------------+-------------------- + # sum | 7 | 99.00€ | 117.21€ | 97.65€ + "goperte.de" = { + zone_ttl = 900 + records = [ + { name = "@", type = "A", value = "62.138.6.205" }, + { name = "*", type = "A", value = "62.138.6.205" }, + ] + }, + "nehrke.info" = { + zone_ttl = 3600 + records = [ + { name = "@", ttl = 900, type = "A", value = "62.138.6.205" }, + { name = "*", ttl = 900, type = "A", value = "62.138.6.205" }, + { name = "@", type = "MX", value = "1 smtp.google.com." }, + { name = "@", type = "TXT", value = "v=spf1 include:_spf.google.com a mx ~all" }, + { name = "_dmarc", type = "TXT", value = "v=DMARC1; p=none;" }, + { name = "google._domainkey", type = "TXT", value = var.nehrke_info_dkim }, + ] + }, + "sozpaedil.net" = { + zone_ttl = 3600 + records = [ + { name = "@", ttl = 900, type = "A", value = "62.138.6.205" }, + { name = "*", ttl = 900, type = "A", value = "62.138.6.205" }, + { name = "@", type = "MX", value = "1 smtp.google.com." }, + { name = "@", type = "TXT", value = "v=spf1 include:_spf.google.com a mx ~all" }, + { name = "_dmarc", type = "TXT", value = "v=DMARC1; p=none;" }, + { name = "google._domainkey", type = "TXT", value = var.sozpaedil_net_dkim }, + ] + }, + "tovot.de" = { + zone_ttl = 900 + records = [ + { name = "@", type = "A", value = "62.138.6.205" }, + { name = "*", type = "A", value = "62.138.6.205" }, + ] + }, + "tovot.net" = { + zone_ttl = 900 + records = [ + { name = "@", type = "A", value = "62.138.6.205" }, + { name = "*", type = "A", value = "62.138.6.205" }, + ] + }, + "tovot.org" = { + zone_ttl = 900 + records = [ + { name = "@", type = "A", value = "62.138.6.205" }, + { name = "*", type = "A", value = "62.138.6.205" }, + ] + }, + "xn--alleingnger-r8a.de" = { + zone_ttl = 900 + records = [ + { name = "@", type = "A", value = "62.138.6.205" }, + { name = "*", type = "A", value = "62.138.6.205" }, + ] + }, + } +} + +module "dns" { + source = "./modules/hetzner/dns" + for_each = local.dns_zones + zone = each.key + zone_ttl = lookup(each.value, "zone_ttl") + records = lookup(each.value, "records") +} + diff --git a/versions.tf b/versions.tf index 06acbcf..0f13710 100644 --- a/versions.tf +++ b/versions.tf @@ -6,3 +6,7 @@ terraform { } } } + +provider "hetznerdns" { + apitoken = var.hetzner_dns_apitoken +}