diff --git a/README.md b/README.md index 95e916e..6d90212 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# ${REPO_NAME} +# terraform-cloudflare-dns-zone -${REPO_DESCRIPTION} +Gestion DNS pour CloudFlare # A propos de @@ -14,8 +14,8 @@ https://developer.hashicorp.com/terraform/install?product_intent=terraform # Démarrage manuel ~~~bash - git clone https://gitea.tips-of-mine.com${REPO_LINK}.git - cd ${TEMPLATE_NAME} + git clone https://gitea.tips-of-mine.com/tips-of-mine/terraform-cloudflare-dns-zone.git + cd terraform-cloudflare-dns-zone ~~~ # Utilisation du repository @@ -35,5 +35,10 @@ plan terraform plan ~~~ +apply +~~~bash + terraform plan +~~~ + # Buy me a coffe Buy Me a Coffee at ko-fi.com \ No newline at end of file diff --git a/main.tf b/main.tf index 6e96cae..e69de29 100644 --- a/main.tf +++ b/main.tf @@ -1,10 +0,0 @@ -#resource "cloudflare_zone_settings_override" "this" { -# name = "${var.cloudflare_zone}" - -# settings { -# always_use_https = "on" -# tls_1_3 = "on" -# ssl = "strict" -# min_tls_version = "1.2" -# } -#} \ No newline at end of file diff --git a/outputs.tf b/outputs.tf index fec7dbe..e69de29 100644 --- a/outputs.tf +++ b/outputs.tf @@ -1,8 +0,0 @@ -#output "record" { -# value = cloudflare_record.foobar.hostname -#} - -#output "metadata" { -# value = cloudflare_record.foobar.metadata -# sensitive = true -#} \ No newline at end of file diff --git a/provider.tf b/provider.tf index a8b0f6a..021c8af 100644 --- a/provider.tf +++ b/provider.tf @@ -2,14 +2,13 @@ terraform { required_providers { cloudflare = { source = "cloudflare/cloudflare" - version = "~> 4.46" + version = "~> 4.50" } } required_version = ">= 1.7.5" } provider "cloudflare" { -# email = var.cloudflare_email api_token = var.cloudflare_api_token -# zone = var.cloudflare_zone -} \ No newline at end of file +} + diff --git a/records_a.tf b/records_a.tf index 4e0e75f..2dcf2e0 100644 --- a/records_a.tf +++ b/records_a.tf @@ -1,17 +1,21 @@ -resource "cloudflare_record" "terraform" { - zone_id = var.cloudflare_zone - name = "terraform" - value = "82.66.77.254" - type = "A" +resource "cloudflare_record" "a-root" { + zone_id = var.cloudflare_zone_id + comment = "Domain verification record A" + content = var.main_server + name = "a-root.tips-of-mine.com" + proxied = false + tags = [] ttl = 1 - proxied = true + type = "A" } -resource "cloudflare_record" "a-root" { - zone_id = var.cloudflare_zone +resource "cloudflare_record" "b-root" { + zone_id = var.cloudflare_zone_id + comment = "Domain verification record B" + content = var.main_server name = "@" - value = var.main_server - type = "A" - ttl = 3600 proxied = false + tags = [] + ttl = 3600 + type = "A" } \ No newline at end of file diff --git a/records_cname.tf b/records_cname.tf index a406874..c030a4d 100644 --- a/records_cname.tf +++ b/records_cname.tf @@ -1,17 +1,21 @@ resource "cloudflare_record" "cname-www" { - zone_id = var.cloudflare_zone - name = "www" - value = "${cloudflare_record.a-root.hostname}" - type = "CNAME" - ttl = 3600 + zone_id = var.cloudflare_zone_id + comment = "Domain verification record C" + content = cloudflare_record.a-root.name + name = "site" proxied = false + tags = [] + ttl = 3600 + type = "CNAME" } resource "cloudflare_record" "cname-mail" { - zone_id = var.cloudflare_zone + zone_id = var.cloudflare_zone_id + comment = "Domain verification record D" + content = cloudflare_record.b-root.name name = "mail" - value = "ghs.googlehosted.com" - type = "CNAME" - ttl = 3600 proxied = false + tags = [] + ttl = 3600 + type = "CNAME" } \ No newline at end of file diff --git a/records_mx.tf b/records_mx.tf index 1d87fb3..385a529 100644 --- a/records_mx.tf +++ b/records_mx.tf @@ -1,39 +1,62 @@ resource "cloudflare_record" "mx-aspmx" { - zone_id = var.cloudflare_zone - name = "@" - value = "aspmx.l.google.com" - type = "MX" + zone_id = var.cloudflare_zone_id + comment = "Domain verification record H" + content = "aspmx.l.tips-of-mine.com" + name = "@" + proxied = false + tags = [] + ttl = 300 + type = "MX" priority = 10 } resource "cloudflare_record" "mx-alt1" { - zone_id = var.cloudflare_zone - name = "@" - value = "alt1.aspmx.l.google.com" - type = "MX" + zone_id = var.cloudflare_zone_id + comment = "Domain verification record I" + content = "alt1.aspmx.l.tips-of-mine.com" + name = "@" + proxied = false + tags = [] + ttl = 300 + type = "MX" priority = 20 } resource "cloudflare_record" "mx-alt2" { - zone_id = var.cloudflare_zone - name = "@" - value = "alt2.aspmx.l.google.com" - type = "MX" - priority = 20 + zone_id = var.cloudflare_zone_id + comment = "Domain verification record J" + content = "alt2.aspmx.l.tips-of-mine.com" + name = "@" + proxied = false + tags = [] + ttl = 300 + type = "MX" + priority = 30 } + resource "cloudflare_record" "mx-alt3" { - zone_id = var.cloudflare_zone - name = "@" - value = "alt3.aspmx.l.google.com" - type = "MX" - priority = 30 + zone_id = var.cloudflare_zone_id + comment = "Domain verification record K" + content = "alt3.aspmx.l.tips-of-mine.com" + name = "@" + proxied = false + tags = [] + ttl = 300 + type = "MX" + priority = 40 } + resource "cloudflare_record" "mx-alt4" { - zone_id = var.cloudflare_zone - name = "@" - value = "alt4.aspmx.l.google.com" - type = "MX" - priority = 30 + zone_id = var.cloudflare_zone_id + comment = "Domain verification record L" + content = "alt4.aspmx.l.tips-of-mine.com" + name = "@" + proxied = false + tags = [] + ttl = 300 + type = "MX" + priority = 40 } + diff --git a/records_srv.tf b/records_srv.tf index 79bd5d8..ebfe3b1 100644 --- a/records_srv.tf +++ b/records_srv.tf @@ -1,14 +1,19 @@ -#resource "cloudflare_record" "sip-tls-terraform-srv" { -# zone_id = "$var.cloudflare_zone}" -# name = "_sip._tls" -# type = "SRV" -# data = { -# service = "_sip" -# proto = "_tls" -# name = "terraform-srv" -# priority = 0 -# weight = 0 -# port = 443 -# target = "tips-of-mine.com" -# } -#} \ No newline at end of file +resource "cloudflare_record" "sip-tls-terraform-srv" { + zone_id = var.cloudflare_zone_id + comment = "Domain verification record M" + data { + service = "_sip" + proto = "_tls" + name = "terraform-srv" + priority = 0 + weight = 0 + port = 443 + target = "tips-of-mine.com" + } + name = "_sip._tls" + proxied = false + tags = [] + ttl = 300 + type = "SRV" + priority = 0 +} \ No newline at end of file diff --git a/records_txt.tf b/records_txt.tf index 4e6e954..781074f 100644 --- a/records_txt.tf +++ b/records_txt.tf @@ -1,23 +1,32 @@ resource "cloudflare_record" "txt-amazonses" { - zone_id = var.cloudflare_zone - name = "_amazonses" - value = "xxxxxxxx" - type = "TXT" - ttl = 300 + zone_id = var.cloudflare_zone_id + comment = "Domain verification record E" + content = "xxxxxxxx" + name = "_amazonses" + proxied = false + tags = [] + ttl = 300 + type = "TXT" } resource "cloudflare_record" "txt-dmarc" { - zone_id = var.cloudflare_zone - name = "_dmarc" - value = "v=DMARC1; p=none; pct=100; rua=mailto:dmarc@tips-of-mine.com; sp=none; aspf=r;" - type = "TXT" - ttl = 300 + zone_id = var.cloudflare_zone_id + comment = "Domain verification record F" + content = "v=DMARC1; p=none; pct=100; rua=mailto:dmarc@tips-of-mine.com; sp=none; aspf=r;" + name = "_dmarc" + proxied = false + tags = [] + ttl = 300 + type = "TXT" } resource "cloudflare_record" "txt-mandrill-domainkey" { - zone_id = var.cloudflare_zone - name = "mandrill._domainkey" - value = "v=DKIM1; k=rsa; p=xxxxxxxx;" - type = "TXT" - ttl = 300 -} + zone_id = var.cloudflare_zone_id + comment = "Domain verification record G" + content = "v=DKIM1; k=rsa; p=xxxxxxxx;" + name = "mandrill._domainkey" + proxied = false + tags = [] + ttl = 300 + type = "TXT" +} \ No newline at end of file diff --git a/variables.tf b/variables.tf index fa05872..3b1d231 100644 --- a/variables.tf +++ b/variables.tf @@ -1,23 +1,27 @@ variable "cloudflare_email" { description = "L'adresse électronique associée au compte." type = string + sensitive = true default = "thedjinhn@gmail.com" } variable "cloudflare_api_token" { description = "Le jeton de l'API Cloudflare." type = string - default = "EMVLdieKXA6X-ifx0tW0ELNQGde5XrJ3D8T-qcEY" + sensitive = true + default = "EiFZGvTTRwOgFB8-OiiNyuLGEPEZvqjM8ckpA-lA" } -variable "cloudflare_zone" { +variable "cloudflare_zone_id" { description = "La zone DNS à laquelle ajouter l'enregistrement." type = string - default = "tips-of-mine.com" + sensitive = true + default = "82345d1f868f476b080d5ad04d39bd0c" } variable "main_server" { description = "Le serveur principal" type = string - default = "82.66.77.254" + sensitive = true + default = "10.0.4.50" }