diff --git a/mailserver.tf b/mailserver.tf new file mode 100644 index 0000000..f453f6e --- /dev/null +++ b/mailserver.tf @@ -0,0 +1,75 @@ +resource "hcloud_floating_ip" "mail" { + type = "ipv4" + home_location = "fsn1" +} + +resource "hcloud_rdns" "floating_mail" { + floating_ip_id = hcloud_floating_ip.mail.id + ip_address = hcloud_floating_ip.mail.ip_address + dns_ptr = "mail.escapeangle.com" +} + +data "cloudflare_zone" "escapeangle" { + filter = { + name = "escapeangle.com" + } +} + +resource "cloudflare_dns_record" "mail-a" { + zone_id = data.cloudflare_zone.escapeangle.id + + name = "mail.escapeangle.com" + content = hcloud_floating_ip.mail.ip_address + type = "A" + ttl = "10800" +} + +resource "cloudflare_dns_record" "mail-mx" { + zone_id = data.cloudflare_zone.escapeangle.id + + name = "escapeangle.com" + content = "mail.escapeangle.com" + type = "MX" + priority = 10 + ttl = "10800" +} + +resource "cloudflare_dns_record" "mail-spf" { + zone_id = data.cloudflare_zone.escapeangle.id + + name = "escapeangle.com" + content = "v=spf1 a:mail.escapeangle.com -all" + type = "TXT" + ttl = "10800" +} + +resource "cloudflare_dns_record" "mail-dkim" { + zone_id = data.cloudflare_zone.escapeangle.id + + name = "mail._domainkey.escapeangle.com" + content = "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJEouqeGAu4u4+UJY6NfdiwIoRghb4nJksa3CEZKGgy5CHJrjZ68urRzeKJPkGau8bK/yW9vte4VJ4IlIStdmkwSNqwdnBB/klTW1WZijhpKgN7rTioitQz2B2gJzOt7m1fbt9+BCLiPCmz8V3HNm36DHr+N7a69py7K8YlzZnPQIDAQAB" + type = "TXT" + ttl = "10800" +} + +resource "cloudflare_dns_record" "mail-dmarc" { + zone_id = data.cloudflare_zone.escapeangle.id + + name = "_dmarc.escapeangle.com" + content = "v=DMARC1; p=none" + type = "TXT" + ttl = "10800" +} + +module "mailserver" { + source = "./modules/server" + + hostname = "mail-01" + dns_zone = "escapeangle.com" + location = "fsn1" +} + +resource "hcloud_floating_ip_assignment" "mail" { + floating_ip_id = hcloud_floating_ip.mail.id + server_id = module.mailserver.server_id +} diff --git a/modules/server/outputs.tf b/modules/server/outputs.tf index 1b979b7..60c13f9 100644 --- a/modules/server/outputs.tf +++ b/modules/server/outputs.tf @@ -5,3 +5,7 @@ output "ipv4_address" { output "ipv6_address" { value = hcloud_server.server.ipv6_address } + +output "server_id" { + value = hcloud_server.server.id +} diff --git a/modules/server/variables.tf b/modules/server/variables.tf index 910d2ba..3c5198b 100644 --- a/modules/server/variables.tf +++ b/modules/server/variables.tf @@ -6,7 +6,7 @@ variable "hostname" { variable "location" { type = string description = "The datacenter location for the server" - default = "nbg1" + default = "fsn1" } variable "type" { diff --git a/servers.tf b/servers.tf deleted file mode 100644 index 139597f..0000000 --- a/servers.tf +++ /dev/null @@ -1,2 +0,0 @@ - -