From d4303bb5f11b0ee4178294222cc4973c6998ac94 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 31 Dec 2023 18:13:52 +0200 Subject: adding more tags --- org-buetow-nextcloud.DELETEME/data.tf | 10 +++++ org-buetow-nextcloud.DELETEME/id_rsa.pub | 1 + org-buetow-nextcloud.DELETEME/lb.tf | 58 +++++++++++++++++++++++++++ org-buetow-nextcloud.DELETEME/main.tf | 52 ++++++++++++++++++++++++ org-buetow-nextcloud.DELETEME/remotestates.tf | 17 ++++++++ org-buetow-nextcloud.DELETEME/user_data.tpl | 33 +++++++++++++++ org-buetow-nextcloud/data.tf | 10 ----- org-buetow-nextcloud/id_rsa.pub | 1 - org-buetow-nextcloud/lb.tf | 58 --------------------------- org-buetow-nextcloud/main.tf | 52 ------------------------ org-buetow-nextcloud/remotestates.tf | 17 -------- org-buetow-nextcloud/user_data.tpl | 33 --------------- 12 files changed, 171 insertions(+), 171 deletions(-) create mode 100644 org-buetow-nextcloud.DELETEME/data.tf create mode 100644 org-buetow-nextcloud.DELETEME/id_rsa.pub create mode 100644 org-buetow-nextcloud.DELETEME/lb.tf create mode 100644 org-buetow-nextcloud.DELETEME/main.tf create mode 100644 org-buetow-nextcloud.DELETEME/remotestates.tf create mode 100644 org-buetow-nextcloud.DELETEME/user_data.tpl delete mode 100644 org-buetow-nextcloud/data.tf delete mode 100644 org-buetow-nextcloud/id_rsa.pub delete mode 100644 org-buetow-nextcloud/lb.tf delete mode 100644 org-buetow-nextcloud/main.tf delete mode 100644 org-buetow-nextcloud/remotestates.tf delete mode 100644 org-buetow-nextcloud/user_data.tpl diff --git a/org-buetow-nextcloud.DELETEME/data.tf b/org-buetow-nextcloud.DELETEME/data.tf new file mode 100644 index 0000000..a2d9ecd --- /dev/null +++ b/org-buetow-nextcloud.DELETEME/data.tf @@ -0,0 +1,10 @@ +data "aws_region" "current" {} + +data "template_file" "user_data" { + template = file("${path.module}/user_data.tpl") + + vars = { + region = data.aws_region.current.name + efs_id = data.terraform_remote_state.base.outputs.self_hosted_services_efs_id + } +} diff --git a/org-buetow-nextcloud.DELETEME/id_rsa.pub b/org-buetow-nextcloud.DELETEME/id_rsa.pub new file mode 100644 index 0000000..0185c3c --- /dev/null +++ b/org-buetow-nextcloud.DELETEME/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDNjjJiqpf7+tb7Ejy2wsTHrOzakG6kJN+zopASjRUrFrGWZXw3xyqMlGR0QhyXEleOEjMlV3SyFEmg4PvDiEnri1MLLVZ/mt24T99C7Hq3UsXXqqwjB1HbUMv6wfNwV3DabiJtdfhlN0F2k2GlYsC/N6Xi3Yt+LF1gW70wCaYB05hGOjiZhlkQbAVX29UqSxIJIa9G9+ZDv7pwB0J9qbKAgwr6kkGoqmiGI01qBixEO0FYs3h+l9R+XWQln4Uw5er/RlvLiqCKcLMzv1Q/pqlKL1wdDTR3ANvf2z7m7Z6GcQmfOuvrHHotEH9uoVOiB+RdeFU86U1mQuzo+hZUBstxC03s44VCYZ075wQe85i7CVDoaSVxyefPaAOOiWZbbyYMk/s+ewP21tIEiMERTm58WTmsouO2zbrwt5rWWWEA0b0hYM8QLEn7l05Lg+2Au052E++NUckqDGyrwPyTY3J7fOVkR+ddIYHZ7WW3djc67HOYbgIAm1cWuTQQttoaOp0= paul@computer diff --git a/org-buetow-nextcloud.DELETEME/lb.tf b/org-buetow-nextcloud.DELETEME/lb.tf new file mode 100644 index 0000000..ef5bf96 --- /dev/null +++ b/org-buetow-nextcloud.DELETEME/lb.tf @@ -0,0 +1,58 @@ +resource "aws_route53_record" "a_record" { + zone_id = data.terraform_remote_state.base.outputs.buetow_cloud_zone_id + name = "next.buetow.cloud." + type = "A" + + alias { + name = data.terraform_remote_state.elb.outputs.alb_dns_name + zone_id = data.terraform_remote_state.elb.outputs.alb_zone_id + evaluate_target_health = true + } +} + +resource "aws_route53_record" "aaaa_record" { + zone_id = data.terraform_remote_state.base.outputs.buetow_cloud_zone_id + name = "next.buetow.cloud." + type = "AAAA" + + alias { + name = data.terraform_remote_state.elb.outputs.alb_dns_name + zone_id = data.terraform_remote_state.elb.outputs.alb_zone_id + evaluate_target_health = true + } +} + +resource "aws_lb_target_group" "nextcloud_tg" { + name = "nextcloud-tg" + port = 80 + protocol = "HTTP" + vpc_id = data.terraform_remote_state.base.outputs.vpc_id + target_type = "ip" + + health_check { + enabled = true + healthy_threshold = 2 + unhealthy_threshold = 2 + interval = 30 + path = "/" + protocol = "HTTP" + timeout = 3 + matcher = "200-299" + } +} + +resource "aws_lb_listener_rule" "nextcloud_https_listener_rule" { + listener_arn = data.terraform_remote_state.elb.outputs.alb_https_listener_arn + priority = 200 + + action { + type = "forward" + target_group_arn = aws_lb_target_group.nextcloud_tg.arn + } + + condition { + host_header { + values = ["nextcloud.buetow.cloud"] + } + } +} diff --git a/org-buetow-nextcloud.DELETEME/main.tf b/org-buetow-nextcloud.DELETEME/main.tf new file mode 100644 index 0000000..ed604ea --- /dev/null +++ b/org-buetow-nextcloud.DELETEME/main.tf @@ -0,0 +1,52 @@ +terraform { + backend "s3" { + bucket = "org-buetow-tfstate" + key = "org-buetow-nextcloud/terraform.tfstate" + region = "eu-central-1" + encrypt = true + } +} + +provider "aws" { + region = "eu-central-1" # or your preferred AWS region +} + +resource "aws_key_pair" "id_rsa_pub" { + key_name = "nextcloud-id-rsa-pub" + public_key = file("${path.module}/id_rsa.pub") +} + +resource "aws_instance" "nextcloud" { + ami = "ami-024f768332f080c5e" # Amazon Linux 2023 + + instance_type = "t2.medium" + key_name = aws_key_pair.id_rsa_pub.key_name + subnet_id = data.terraform_remote_state.base.outputs.public_subnet_a_id + + vpc_security_group_ids = [ + data.terraform_remote_state.base.outputs.allow_ssh_sg_id, + data.terraform_remote_state.base.outputs.allow_web_sg_id, + data.terraform_remote_state.base.outputs.allow_outbound_sg_id, + ] + user_data = data.template_file.user_data.rendered + + tags = { + Name = "nextcloud" # Replace with your desired name + } +} + +resource "aws_route53_record" "nextcloud_a_record" { + zone_id = data.terraform_remote_state.base.outputs.buetow_cloud_zone_id + name = "nextcloud.buetow.cloud" + type = "A" + ttl = "300" + records = [aws_instance.nextcloud.public_ip] +} + +resource "aws_route53_record" "nextcloud_aaaa_record" { + zone_id = data.terraform_remote_state.base.outputs.buetow_cloud_zone_id + name = "nextcloud.buetow.cloud" + type = "AAAA" + ttl = "300" + records = aws_instance.nextcloud.ipv6_addresses +} diff --git a/org-buetow-nextcloud.DELETEME/remotestates.tf b/org-buetow-nextcloud.DELETEME/remotestates.tf new file mode 100644 index 0000000..db9b321 --- /dev/null +++ b/org-buetow-nextcloud.DELETEME/remotestates.tf @@ -0,0 +1,17 @@ +data "terraform_remote_state" "base" { + backend = "s3" + config = { + bucket = "org-buetow-tfstate" + key = "org-buetow-base/terraform.tfstate" + region = "eu-central-1" + } +} + +data "terraform_remote_state" "elb" { + backend = "s3" + config = { + bucket = "org-buetow-tfstate" + key = "org-buetow-elb/terraform.tfstate" + region = "eu-central-1" + } +} diff --git a/org-buetow-nextcloud.DELETEME/user_data.tpl b/org-buetow-nextcloud.DELETEME/user_data.tpl new file mode 100644 index 0000000..fb902e9 --- /dev/null +++ b/org-buetow-nextcloud.DELETEME/user_data.tpl @@ -0,0 +1,33 @@ +#!/bin/bash + +# Docker +sudo yum update -y +sudo yum install docker -y +sudo systemctl enable docker +sudo systemctl start docker +sudo usermod -a -G docker ec2-user + +# EFS +yum install -y amazon-efs-utils +mkdir /mnt/efs +echo '${efs_id}.efs.${region}.amazonaws.com:/ec2/nextcloud /mnt/efs nfs4 defaults,vers=4.1 0 0' >> /etc/fstab +while ! mountpoint /mnt/efs; do + echo 'Retrying to mount file systems after 10s...' + mount -a + sleep 10 +done + +# Nextcloud +sudo docker run \ + --init \ + -d \ + --sig-proxy=false \ + --name nextcloud-aio-mastercontainer \ + --restart always \ + --publish 8080:8080 \ + --env APACHE_PORT=80 \ + --env APACHE_IP_BINDING=0.0.0.0 \ + --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \ + --volume /var/run/docker.sock:/var/run/docker.sock:ro \ + --env NEXTCLOUD_DATADIR="/mnt/efs/ec2/nextcloud/ncdata" \ + nextcloud/all-in-one:latest diff --git a/org-buetow-nextcloud/data.tf b/org-buetow-nextcloud/data.tf deleted file mode 100644 index a2d9ecd..0000000 --- a/org-buetow-nextcloud/data.tf +++ /dev/null @@ -1,10 +0,0 @@ -data "aws_region" "current" {} - -data "template_file" "user_data" { - template = file("${path.module}/user_data.tpl") - - vars = { - region = data.aws_region.current.name - efs_id = data.terraform_remote_state.base.outputs.self_hosted_services_efs_id - } -} diff --git a/org-buetow-nextcloud/id_rsa.pub b/org-buetow-nextcloud/id_rsa.pub deleted file mode 100644 index 0185c3c..0000000 --- a/org-buetow-nextcloud/id_rsa.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDNjjJiqpf7+tb7Ejy2wsTHrOzakG6kJN+zopASjRUrFrGWZXw3xyqMlGR0QhyXEleOEjMlV3SyFEmg4PvDiEnri1MLLVZ/mt24T99C7Hq3UsXXqqwjB1HbUMv6wfNwV3DabiJtdfhlN0F2k2GlYsC/N6Xi3Yt+LF1gW70wCaYB05hGOjiZhlkQbAVX29UqSxIJIa9G9+ZDv7pwB0J9qbKAgwr6kkGoqmiGI01qBixEO0FYs3h+l9R+XWQln4Uw5er/RlvLiqCKcLMzv1Q/pqlKL1wdDTR3ANvf2z7m7Z6GcQmfOuvrHHotEH9uoVOiB+RdeFU86U1mQuzo+hZUBstxC03s44VCYZ075wQe85i7CVDoaSVxyefPaAOOiWZbbyYMk/s+ewP21tIEiMERTm58WTmsouO2zbrwt5rWWWEA0b0hYM8QLEn7l05Lg+2Au052E++NUckqDGyrwPyTY3J7fOVkR+ddIYHZ7WW3djc67HOYbgIAm1cWuTQQttoaOp0= paul@computer diff --git a/org-buetow-nextcloud/lb.tf b/org-buetow-nextcloud/lb.tf deleted file mode 100644 index ef5bf96..0000000 --- a/org-buetow-nextcloud/lb.tf +++ /dev/null @@ -1,58 +0,0 @@ -resource "aws_route53_record" "a_record" { - zone_id = data.terraform_remote_state.base.outputs.buetow_cloud_zone_id - name = "next.buetow.cloud." - type = "A" - - alias { - name = data.terraform_remote_state.elb.outputs.alb_dns_name - zone_id = data.terraform_remote_state.elb.outputs.alb_zone_id - evaluate_target_health = true - } -} - -resource "aws_route53_record" "aaaa_record" { - zone_id = data.terraform_remote_state.base.outputs.buetow_cloud_zone_id - name = "next.buetow.cloud." - type = "AAAA" - - alias { - name = data.terraform_remote_state.elb.outputs.alb_dns_name - zone_id = data.terraform_remote_state.elb.outputs.alb_zone_id - evaluate_target_health = true - } -} - -resource "aws_lb_target_group" "nextcloud_tg" { - name = "nextcloud-tg" - port = 80 - protocol = "HTTP" - vpc_id = data.terraform_remote_state.base.outputs.vpc_id - target_type = "ip" - - health_check { - enabled = true - healthy_threshold = 2 - unhealthy_threshold = 2 - interval = 30 - path = "/" - protocol = "HTTP" - timeout = 3 - matcher = "200-299" - } -} - -resource "aws_lb_listener_rule" "nextcloud_https_listener_rule" { - listener_arn = data.terraform_remote_state.elb.outputs.alb_https_listener_arn - priority = 200 - - action { - type = "forward" - target_group_arn = aws_lb_target_group.nextcloud_tg.arn - } - - condition { - host_header { - values = ["nextcloud.buetow.cloud"] - } - } -} diff --git a/org-buetow-nextcloud/main.tf b/org-buetow-nextcloud/main.tf deleted file mode 100644 index ed604ea..0000000 --- a/org-buetow-nextcloud/main.tf +++ /dev/null @@ -1,52 +0,0 @@ -terraform { - backend "s3" { - bucket = "org-buetow-tfstate" - key = "org-buetow-nextcloud/terraform.tfstate" - region = "eu-central-1" - encrypt = true - } -} - -provider "aws" { - region = "eu-central-1" # or your preferred AWS region -} - -resource "aws_key_pair" "id_rsa_pub" { - key_name = "nextcloud-id-rsa-pub" - public_key = file("${path.module}/id_rsa.pub") -} - -resource "aws_instance" "nextcloud" { - ami = "ami-024f768332f080c5e" # Amazon Linux 2023 - - instance_type = "t2.medium" - key_name = aws_key_pair.id_rsa_pub.key_name - subnet_id = data.terraform_remote_state.base.outputs.public_subnet_a_id - - vpc_security_group_ids = [ - data.terraform_remote_state.base.outputs.allow_ssh_sg_id, - data.terraform_remote_state.base.outputs.allow_web_sg_id, - data.terraform_remote_state.base.outputs.allow_outbound_sg_id, - ] - user_data = data.template_file.user_data.rendered - - tags = { - Name = "nextcloud" # Replace with your desired name - } -} - -resource "aws_route53_record" "nextcloud_a_record" { - zone_id = data.terraform_remote_state.base.outputs.buetow_cloud_zone_id - name = "nextcloud.buetow.cloud" - type = "A" - ttl = "300" - records = [aws_instance.nextcloud.public_ip] -} - -resource "aws_route53_record" "nextcloud_aaaa_record" { - zone_id = data.terraform_remote_state.base.outputs.buetow_cloud_zone_id - name = "nextcloud.buetow.cloud" - type = "AAAA" - ttl = "300" - records = aws_instance.nextcloud.ipv6_addresses -} diff --git a/org-buetow-nextcloud/remotestates.tf b/org-buetow-nextcloud/remotestates.tf deleted file mode 100644 index db9b321..0000000 --- a/org-buetow-nextcloud/remotestates.tf +++ /dev/null @@ -1,17 +0,0 @@ -data "terraform_remote_state" "base" { - backend = "s3" - config = { - bucket = "org-buetow-tfstate" - key = "org-buetow-base/terraform.tfstate" - region = "eu-central-1" - } -} - -data "terraform_remote_state" "elb" { - backend = "s3" - config = { - bucket = "org-buetow-tfstate" - key = "org-buetow-elb/terraform.tfstate" - region = "eu-central-1" - } -} diff --git a/org-buetow-nextcloud/user_data.tpl b/org-buetow-nextcloud/user_data.tpl deleted file mode 100644 index fb902e9..0000000 --- a/org-buetow-nextcloud/user_data.tpl +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -# Docker -sudo yum update -y -sudo yum install docker -y -sudo systemctl enable docker -sudo systemctl start docker -sudo usermod -a -G docker ec2-user - -# EFS -yum install -y amazon-efs-utils -mkdir /mnt/efs -echo '${efs_id}.efs.${region}.amazonaws.com:/ec2/nextcloud /mnt/efs nfs4 defaults,vers=4.1 0 0' >> /etc/fstab -while ! mountpoint /mnt/efs; do - echo 'Retrying to mount file systems after 10s...' - mount -a - sleep 10 -done - -# Nextcloud -sudo docker run \ - --init \ - -d \ - --sig-proxy=false \ - --name nextcloud-aio-mastercontainer \ - --restart always \ - --publish 8080:8080 \ - --env APACHE_PORT=80 \ - --env APACHE_IP_BINDING=0.0.0.0 \ - --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \ - --volume /var/run/docker.sock:/var/run/docker.sock:ro \ - --env NEXTCLOUD_DATADIR="/mnt/efs/ec2/nextcloud/ncdata" \ - nextcloud/all-in-one:latest -- cgit v1.2.3