diff --git a/terraform/.gitignore b/terraform/.gitignore new file mode 100644 index 0000000..22128ee --- /dev/null +++ b/terraform/.gitignore @@ -0,0 +1,2 @@ +.terraform + diff --git a/terraform/misc/get_consumer_key.py b/terraform/misc/get_consumer_key.py new file mode 100755 index 0000000..ec4c18f --- /dev/null +++ b/terraform/misc/get_consumer_key.py @@ -0,0 +1,26 @@ +# -*- encoding: utf-8 -*- +### +try: + input = raw_input +except NameError: + pass + +import ovh +import json + +# create a client using configuration from ovh.conf file +client = ovh.Client() + +# Request RO, /me API access +ck = client.new_consumer_key_request() +ck.add_recursive_rules(ovh.API_READ_ONLY, "/") + +# Request token +validation = ck.request() + +print("Please visit %s to authenticate" % validation['validationUrl']) +input("and press Enter to continue...") + +# Print nice welcome message +print("Welcome", client.get('/me')['firstname']) +print("Btw, your 'consumerKey' is '%s'" % validation['consumerKey']) diff --git a/terraform/misc/get_domain.py b/terraform/misc/get_domain.py new file mode 100644 index 0000000..c644eed --- /dev/null +++ b/terraform/misc/get_domain.py @@ -0,0 +1,46 @@ +# -*- encoding: utf-8 -*- +''' +List all domain relevant information to add them to Terraform +''' +import json +import ovh +import sys + +# Instanciate an OVH Client. +# You can generate new credentials with full access to your account on +# the token creation page +client = ovh.Client( + endpoint='ovh-eu', # Endpoint of API OVH Europe (List of available endpoints) + application_key='pSnvZrS8R4LPCLEh', # Application Key + application_secret='CKUHMo5ZXDm8JLA6ZWWUzAolglQmvylv', # Application Secret + consumer_key='EVBu0meA2OYvEvVWUbR0qwU2lD7uXKiM', # Consumer Key +) + +all_domains = client.get('/domain') + +# Pretty print +print("All domains: "+json.dumps(all_domains, indent=4)) + +for domain in all_domains : + print("Looking at domain: " +domain) + try: + if(domain in ["moritzgraf.de"]): + all_resources = client.get('/domain/zone/'+str(domain)+"/record") + print("All resources:"+json.dumps(all_resources,indent=4)) + for resource in all_resources: + try: + record_details = client.get('/domain/zone/'+str(domain)+"/record/"+str(resource)) + if(record_details["subDomain"] and record_details["subDomain"] in ["git","auth","prometheus","alertmanager", + "chat","mqtt", "cloud","monitoring","smtp","pop3","imap","jaeger","ldap","code","hub","grafana", + "tt-rss","phpmyadmin","phppgadmin","www","terraformtest","rstudio","code" ]): + #print("Domain"+str(record_details["zone"])+"Subdomain:"+str(record_details["subDomain"])) + print("terraform import 'ovh_domain_zone_record.moritzgraf_subdomains[\""+record_details["subDomain"]+"\"]' "+ str(record_details["id"])+"."+str(record_details["zone"])) + except Exception as e: + print("Somthing did not work for domain:"+str(record_details)) + print(e) + # print("###details###"+str(record_details)) + else: + print("Domain "+str(domain)+" not on whitelist, ignoring") + except Exception as e: + print("Somthing did not work for domain:"+domain) + print(e) \ No newline at end of file diff --git a/terraform/misc/ovh.conf b/terraform/misc/ovh.conf new file mode 100644 index 0000000..a061200 --- /dev/null +++ b/terraform/misc/ovh.conf @@ -0,0 +1,13 @@ +; THIS FILE IS FOR MANUALLY CHECKING THE API +; TO BE USED WITH ovh_dev.py +[default] +; general configuration: default endpoint +endpoint=ovh-eu + +[ovh-eu] +; configuration specific to 'ovh-eu' endpoint +application_key=pSnvZrS8R4LPCLEh +application_secret=CKUHMo5ZXDm8JLA6ZWWUzAolglQmvylv +; uncomment following line when writing a script application +; with a single consumer key. +;consumer_key=eNrAf7toCYw6u8vIyRcHNFp4KqyYW0Tp \ No newline at end of file diff --git a/terraform/ovh.tf b/terraform/ovh.tf new file mode 100644 index 0000000..ac41b0f --- /dev/null +++ b/terraform/ovh.tf @@ -0,0 +1,95 @@ +provider "ovh" { + endpoint = "ovh-eu" + application_key = "grBXP8S9ugOfjfpj" + application_secret = "6mMRIUxMWaXff631ulc2jj5HybGg4ESx" + consumer_key = "m3D43OxSD03iyfKenn1fQ1AVl3eXodKn" +} + +locals { + ttl = "60" +} + +variable "subdomains_moritzgraf" { + default = ["git","auth","prometheus","alertmanager","chat","mqtt", "cloud", + "monitoring","smtp","pop3","imap","jaeger","ldap","code","hub", + "grafana","tt-rss","phpmyadmin","phppgadmin","www","rstudio","code" ] +} + +resource "ovh_domain_zone_record" "moritzgraf_subdomains" { + for_each = toset( var.subdomains_moritzgraf ) + zone = "moritzgraf.de" + subdomain = each.key + fieldtype = "CNAME" + ttl = local.ttl + target = "moritzgraf.de." +} + +# ## graf.me -> problems with domain +variable "domains" { + default = [ "moritzgraf.de","haumdaucher.de","ameliegraf.de" + ,"graf-fam.de","iptize.it","ianaa.art" + ,"krassescheisse.de"] +} + +resource "ovh_domain_zone_record" "haumdaucher_domain" { + zone = "haumdaucher.de" + subdomain = "" + fieldtype = "A" + ttl = local.ttl + target = "91.121.64.43" +} + + +resource "ovh_domain_zone_record" "mail_moritzgraf" { + zone = "moritzgraf.de" + subdomain = "mail" + fieldtype = "A" + ttl = local.ttl + target = "91.121.64.43" +} + + +resource "ovh_domain_zone_record" "mx_records" { + for_each = toset(var.domains) + zone = each.key + fieldtype = "MX" + ttl = local.ttl + target = "10 mail.moritzgraf.de." +} + +## SPF +resource "ovh_domain_zone_record" "spf_record_txt" { + for_each = toset(var.domains) + zone = each.key + fieldtype = "TXT" + ttl = local.ttl + target = "v=spf1 mx a:mail.moritzgraf.de -all" +} +resource "ovh_domain_zone_record" "spf_record_spf" { + for_each = toset(var.domains) + zone = each.key + fieldtype = "SPF" + ttl = 600 + target = "\"v=spf1 mx a:mail.moritzgraf.de -all\"" +} + +## DKIM +resource "ovh_domain_zone_record" "dkim_record" { + for_each = toset(var.domains) + zone = each.key + fieldtype = "TXT" + ttl = local.ttl + subdomain = "dkim._domainkey" + target = "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhnjYV76s63M4zVRTjVf5Z/fTO6Rq3o4DXg62FCgAxQOYB9ANXeBvUPokT+p5SgjGC8HwBYIzzwCTCS6sqHsy8NfnHU1xFH5NcY4LqTopVX//eYpPF+bTwarDVu/lcCxiX4cN84U1yL8lqf0sOJ7ubGlSeZ/SfM/Ppj7Wkh/kBOQIDAQAB" +} + +# ## DMARC +resource "ovh_domain_zone_record" "dmarc_record" { + for_each = toset(var.domains) + zone = each.key + fieldtype = "TXT" + ttl = local.ttl + subdomain = "_dmarc" + #target = "v=DMARC1; p=reject; rua=mailto:admin@moritzgraf.de; ruf=mailto:admin@moritzgraf.de; adkim=s; aspf=s" + target = "v=DMARC1; p=reject; rua=none; ruf=mailto:admin@moritzgraf.de; adkim=s; aspf=s" +} \ No newline at end of file diff --git a/terraform/terraform.tfstate b/terraform/terraform.tfstate new file mode 100644 index 0000000..1f4bde2 --- /dev/null +++ b/terraform/terraform.tfstate @@ -0,0 +1,831 @@ +{ + "version": 4, + "terraform_version": "0.12.20", + "serial": 61, + "lineage": "8aff5d23-05f6-10eb-0ae6-1084c787677e", + "outputs": {}, + "resources": [ + { + "mode": "managed", + "type": "ovh_domain_zone_record", + "name": "dkim_record", + "each": "map", + "provider": "provider.ovh", + "instances": [ + { + "index_key": "ameliegraf.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871408", + "subdomain": "dkim._domainkey", + "target": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhnjYV76s63M4zVRTjVf5Z/fTO6Rq3o4DXg62FCgAxQOYB9ANXeBvUPokT+p5SgjGC8HwBYIzzwCTCS6sqHsy8NfnHU1xFH5NcY4LqTopVX//eYpPF+bTwarDVu/lcCxiX4cN84U1yL8lqf0sOJ7ubGlSeZ/SfM/Ppj7Wkh/kBOQIDAQAB", + "ttl": 60, + "zone": "ameliegraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "graf-fam.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871416", + "subdomain": "dkim._domainkey", + "target": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhnjYV76s63M4zVRTjVf5Z/fTO6Rq3o4DXg62FCgAxQOYB9ANXeBvUPokT+p5SgjGC8HwBYIzzwCTCS6sqHsy8NfnHU1xFH5NcY4LqTopVX//eYpPF+bTwarDVu/lcCxiX4cN84U1yL8lqf0sOJ7ubGlSeZ/SfM/Ppj7Wkh/kBOQIDAQAB", + "ttl": 60, + "zone": "graf-fam.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "haumdaucher.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871404", + "subdomain": "dkim._domainkey", + "target": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhnjYV76s63M4zVRTjVf5Z/fTO6Rq3o4DXg62FCgAxQOYB9ANXeBvUPokT+p5SgjGC8HwBYIzzwCTCS6sqHsy8NfnHU1xFH5NcY4LqTopVX//eYpPF+bTwarDVu/lcCxiX4cN84U1yL8lqf0sOJ7ubGlSeZ/SfM/Ppj7Wkh/kBOQIDAQAB", + "ttl": 60, + "zone": "haumdaucher.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "ianaa.art", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871406", + "subdomain": "dkim._domainkey", + "target": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhnjYV76s63M4zVRTjVf5Z/fTO6Rq3o4DXg62FCgAxQOYB9ANXeBvUPokT+p5SgjGC8HwBYIzzwCTCS6sqHsy8NfnHU1xFH5NcY4LqTopVX//eYpPF+bTwarDVu/lcCxiX4cN84U1yL8lqf0sOJ7ubGlSeZ/SfM/Ppj7Wkh/kBOQIDAQAB", + "ttl": 60, + "zone": "ianaa.art" + }, + "private": "bnVsbA==" + }, + { + "index_key": "iptize.it", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871419", + "subdomain": "dkim._domainkey", + "target": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhnjYV76s63M4zVRTjVf5Z/fTO6Rq3o4DXg62FCgAxQOYB9ANXeBvUPokT+p5SgjGC8HwBYIzzwCTCS6sqHsy8NfnHU1xFH5NcY4LqTopVX//eYpPF+bTwarDVu/lcCxiX4cN84U1yL8lqf0sOJ7ubGlSeZ/SfM/Ppj7Wkh/kBOQIDAQAB", + "ttl": 60, + "zone": "iptize.it" + }, + "private": "bnVsbA==" + }, + { + "index_key": "krassescheisse.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871427", + "subdomain": "dkim._domainkey", + "target": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhnjYV76s63M4zVRTjVf5Z/fTO6Rq3o4DXg62FCgAxQOYB9ANXeBvUPokT+p5SgjGC8HwBYIzzwCTCS6sqHsy8NfnHU1xFH5NcY4LqTopVX//eYpPF+bTwarDVu/lcCxiX4cN84U1yL8lqf0sOJ7ubGlSeZ/SfM/Ppj7Wkh/kBOQIDAQAB", + "ttl": 60, + "zone": "krassescheisse.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "moritzgraf.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871412", + "subdomain": "dkim._domainkey", + "target": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhnjYV76s63M4zVRTjVf5Z/fTO6Rq3o4DXg62FCgAxQOYB9ANXeBvUPokT+p5SgjGC8HwBYIzzwCTCS6sqHsy8NfnHU1xFH5NcY4LqTopVX//eYpPF+bTwarDVu/lcCxiX4cN84U1yL8lqf0sOJ7ubGlSeZ/SfM/Ppj7Wkh/kBOQIDAQAB", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "ovh_domain_zone_record", + "name": "dmarc_record", + "each": "map", + "provider": "provider.ovh", + "instances": [ + { + "index_key": "ameliegraf.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871405", + "subdomain": "_dmarc", + "target": "v=DMARC1; p=reject; rua=none; ruf=mailto:admin@moritzgraf.de; adkim=s; aspf=s", + "ttl": 60, + "zone": "ameliegraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "graf-fam.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871403", + "subdomain": "_dmarc", + "target": "v=DMARC1; p=reject; rua=none; ruf=mailto:admin@moritzgraf.de; adkim=s; aspf=s", + "ttl": 60, + "zone": "graf-fam.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "haumdaucher.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871417", + "subdomain": "_dmarc", + "target": "v=DMARC1; p=reject; rua=none; ruf=mailto:admin@moritzgraf.de; adkim=s; aspf=s", + "ttl": 60, + "zone": "haumdaucher.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "ianaa.art", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871411", + "subdomain": "_dmarc", + "target": "v=DMARC1; p=reject; rua=none; ruf=mailto:admin@moritzgraf.de; adkim=s; aspf=s", + "ttl": 60, + "zone": "ianaa.art" + }, + "private": "bnVsbA==" + }, + { + "index_key": "iptize.it", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871413", + "subdomain": "_dmarc", + "target": "v=DMARC1; p=reject; rua=none; ruf=mailto:admin@moritzgraf.de; adkim=s; aspf=s", + "ttl": 60, + "zone": "iptize.it" + }, + "private": "bnVsbA==" + }, + { + "index_key": "krassescheisse.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871409", + "subdomain": "_dmarc", + "target": "v=DMARC1; p=reject; rua=none; ruf=mailto:admin@moritzgraf.de; adkim=s; aspf=s", + "ttl": 60, + "zone": "krassescheisse.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "moritzgraf.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871410", + "subdomain": "_dmarc", + "target": "v=DMARC1; p=reject; rua=none; ruf=mailto:admin@moritzgraf.de; adkim=s; aspf=s", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "ovh_domain_zone_record", + "name": "haumdaucher_domain", + "provider": "provider.ovh", + "instances": [ + { + "schema_version": 0, + "attributes": { + "fieldtype": "A", + "id": "5106871420", + "subdomain": "", + "target": "91.121.64.43", + "ttl": 60, + "zone": "haumdaucher.de" + }, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "ovh_domain_zone_record", + "name": "mail_moritzgraf", + "provider": "provider.ovh", + "instances": [ + { + "schema_version": 0, + "attributes": { + "fieldtype": "A", + "id": "5106870709", + "subdomain": "mail", + "target": "91.121.64.43", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "ovh_domain_zone_record", + "name": "moritzgraf_subdomains", + "each": "map", + "provider": "provider.ovh", + "instances": [ + { + "index_key": "alertmanager", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870451", + "subdomain": "alertmanager", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "auth", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870439", + "subdomain": "auth", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "chat", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870446", + "subdomain": "chat", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "cloud", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870454", + "subdomain": "cloud", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "code", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870455", + "subdomain": "code", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "git", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870436", + "subdomain": "git", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "grafana", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870443", + "subdomain": "grafana", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "hub", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870438", + "subdomain": "hub", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "imap", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870448", + "subdomain": "imap", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "jaeger", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870437", + "subdomain": "jaeger", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "ldap", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870449", + "subdomain": "ldap", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "monitoring", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870447", + "subdomain": "monitoring", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "mqtt", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870444", + "subdomain": "mqtt", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "phpmyadmin", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870440", + "subdomain": "phpmyadmin", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "phppgadmin", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870452", + "subdomain": "phppgadmin", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "pop3", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870453", + "subdomain": "pop3", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "prometheus", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870456", + "subdomain": "prometheus", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "rstudio", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870442", + "subdomain": "rstudio", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "smtp", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870450", + "subdomain": "smtp", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "tt-rss", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870441", + "subdomain": "tt-rss", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "www", + "schema_version": 0, + "attributes": { + "fieldtype": "CNAME", + "id": "5106870435", + "subdomain": "www", + "target": "moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "ovh_domain_zone_record", + "name": "mx_records", + "each": "map", + "provider": "provider.ovh", + "instances": [ + { + "index_key": "ameliegraf.de", + "schema_version": 0, + "attributes": { + "fieldtype": "MX", + "id": "5106871399", + "subdomain": "", + "target": "10 mail.moritzgraf.de.", + "ttl": 60, + "zone": "ameliegraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "graf-fam.de", + "schema_version": 0, + "attributes": { + "fieldtype": "MX", + "id": "5106871407", + "subdomain": "", + "target": "10 mail.moritzgraf.de.", + "ttl": 60, + "zone": "graf-fam.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "haumdaucher.de", + "schema_version": 0, + "attributes": { + "fieldtype": "MX", + "id": "5106871400", + "subdomain": "", + "target": "10 mail.moritzgraf.de.", + "ttl": 60, + "zone": "haumdaucher.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "ianaa.art", + "schema_version": 0, + "attributes": { + "fieldtype": "MX", + "id": "5106871401", + "subdomain": "", + "target": "10 mail.moritzgraf.de.", + "ttl": 60, + "zone": "ianaa.art" + }, + "private": "bnVsbA==" + }, + { + "index_key": "iptize.it", + "schema_version": 0, + "attributes": { + "fieldtype": "MX", + "id": "5106871414", + "subdomain": "", + "target": "10 mail.moritzgraf.de.", + "ttl": 60, + "zone": "iptize.it" + }, + "private": "bnVsbA==" + }, + { + "index_key": "krassescheisse.de", + "schema_version": 0, + "attributes": { + "fieldtype": "MX", + "id": "5106871418", + "subdomain": "", + "target": "10 mail.moritzgraf.de.", + "ttl": 60, + "zone": "krassescheisse.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "moritzgraf.de", + "schema_version": 0, + "attributes": { + "fieldtype": "MX", + "id": "5106871402", + "subdomain": "", + "target": "10 mail.moritzgraf.de.", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "ovh_domain_zone_record", + "name": "spf_record_spf", + "each": "map", + "provider": "provider.ovh", + "instances": [ + { + "index_key": "ameliegraf.de", + "schema_version": 0, + "attributes": { + "fieldtype": "SPF", + "id": "5106871423", + "subdomain": "", + "target": "\"v=spf1 mx a:mail.moritzgraf.de -all\"", + "ttl": 600, + "zone": "ameliegraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "graf-fam.de", + "schema_version": 0, + "attributes": { + "fieldtype": "SPF", + "id": "5106871422", + "subdomain": "", + "target": "\"v=spf1 mx a:mail.moritzgraf.de -all\"", + "ttl": 600, + "zone": "graf-fam.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "haumdaucher.de", + "schema_version": 0, + "attributes": { + "fieldtype": "SPF", + "id": "5106871426", + "subdomain": "", + "target": "\"v=spf1 mx a:mail.moritzgraf.de -all\"", + "ttl": 600, + "zone": "haumdaucher.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "ianaa.art", + "schema_version": 0, + "attributes": { + "fieldtype": "SPF", + "id": "5106871425", + "subdomain": "", + "target": "\"v=spf1 mx a:mail.moritzgraf.de -all\"", + "ttl": 600, + "zone": "ianaa.art" + }, + "private": "bnVsbA==" + }, + { + "index_key": "iptize.it", + "schema_version": 0, + "attributes": { + "fieldtype": "SPF", + "id": "5106871415", + "subdomain": "", + "target": "\"v=spf1 mx a:mail.moritzgraf.de -all\"", + "ttl": 600, + "zone": "iptize.it" + }, + "private": "bnVsbA==" + }, + { + "index_key": "krassescheisse.de", + "schema_version": 0, + "attributes": { + "fieldtype": "SPF", + "id": "5106871424", + "subdomain": "", + "target": "\"v=spf1 mx a:mail.moritzgraf.de -all\"", + "ttl": 600, + "zone": "krassescheisse.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "moritzgraf.de", + "schema_version": 0, + "attributes": { + "fieldtype": "SPF", + "id": "5106871421", + "subdomain": "", + "target": "\"v=spf1 mx a:mail.moritzgraf.de -all\"", + "ttl": 600, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "ovh_domain_zone_record", + "name": "spf_record_txt", + "each": "map", + "provider": "provider.ovh", + "instances": [ + { + "index_key": "ameliegraf.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871434", + "subdomain": "", + "target": "v=spf1 mx a:mail.moritzgraf.de -all", + "ttl": 60, + "zone": "ameliegraf.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "graf-fam.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871432", + "subdomain": "", + "target": "v=spf1 mx a:mail.moritzgraf.de -all", + "ttl": 60, + "zone": "graf-fam.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "haumdaucher.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871428", + "subdomain": "", + "target": "v=spf1 mx a:mail.moritzgraf.de -all", + "ttl": 60, + "zone": "haumdaucher.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "ianaa.art", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871431", + "subdomain": "", + "target": "v=spf1 mx a:mail.moritzgraf.de -all", + "ttl": 60, + "zone": "ianaa.art" + }, + "private": "bnVsbA==" + }, + { + "index_key": "iptize.it", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871430", + "subdomain": "", + "target": "v=spf1 mx a:mail.moritzgraf.de -all", + "ttl": 60, + "zone": "iptize.it" + }, + "private": "bnVsbA==" + }, + { + "index_key": "krassescheisse.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871429", + "subdomain": "", + "target": "v=spf1 mx a:mail.moritzgraf.de -all", + "ttl": 60, + "zone": "krassescheisse.de" + }, + "private": "bnVsbA==" + }, + { + "index_key": "moritzgraf.de", + "schema_version": 0, + "attributes": { + "fieldtype": "TXT", + "id": "5106871433", + "subdomain": "", + "target": "v=spf1 mx a:mail.moritzgraf.de -all", + "ttl": 60, + "zone": "moritzgraf.de" + }, + "private": "bnVsbA==" + } + ] + } + ] +}