From 524d36b239a296ed43dced62475e46786ff19b28 Mon Sep 17 00:00:00 2001 From: Greg Hendrickson Date: Fri, 17 Nov 2023 12:56:07 -0800 Subject: [PATCH] TODO: fix efs later. s3 backend created --- .gitignore | 8 ++++ aws/aws_simple/main.tf | 25 +++++++++-- aws/aws_simple/modules/efs/main.tf | 60 +++++++++++++++++++++++++ aws/aws_simple/modules/efs/outputs.tf | 0 aws/aws_simple/modules/efs/variables.tf | 31 +++++++++++++ aws/backend/main.tf | 9 ++++ aws/s3/main.tf | 24 ++++++++++ 7 files changed, 154 insertions(+), 3 deletions(-) create mode 100644 aws/aws_simple/modules/efs/outputs.tf create mode 100644 aws/aws_simple/modules/efs/variables.tf create mode 100644 aws/backend/main.tf create mode 100644 aws/s3/main.tf diff --git a/.gitignore b/.gitignore index 7f01bc4..92d672e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,11 @@ aws/aws_simple/terraform.tfstate.backup aws/aws_simple/terraform.tfstate aws/aws_simple/.terraform/providers/registry.terraform.io/hashicorp/aws/5.25.0/linux_amd64/terraform-provider-aws_v5.25.0_x5 aws/aws_simple/.terraform.tfstate.lock.info +aws/backend/terraform.tfstate +aws/s3/.terraform.lock.hcl +aws/s3/terraform.tfstate +aws/s3/terraform.tfstate.backup +aws/s3/.terraform/providers/registry.terraform.io/hashicorp/aws/5.26.0/linux_amd64/terraform-provider-aws_v5.26.0_x5 +aws/aws_simple/.terraform/providers/registry.terraform.io/hashicorp/template/2.2.0/linux_amd64/terraform-provider-template_v2.2.0_x4 +aws/aws_simple/.terraform/providers/registry.terraform.io/hashicorp/aws/5.26.0/linux_amd64/terraform-provider-aws_v5.26.0_x5 +aws/aws_simple/.terraform/terraform.tfstate diff --git a/aws/aws_simple/main.tf b/aws/aws_simple/main.tf index 99a90d7..dd174f2 100644 --- a/aws/aws_simple/main.tf +++ b/aws/aws_simple/main.tf @@ -1,3 +1,10 @@ +terraform { + backend "s3" { + bucket = "my-tf-bucket-ghndrx" + key = "terraform.tfstate" + region = "us-west-2" + } +} # Define provider provider "aws" { region = var.aws_region @@ -31,9 +38,11 @@ module "subnets_us_east" { vpc_id_east_1 = module.vpc-east.vpc_id_east_1 } -module "ec2" { +module "ec2-east" { source = "./modules/ec2/ec2-east" - + + min_size = "4" + max_size = "10" us_east_subnet_1_id = module.subnets_us_east.us_east_subnet_1_id us_east_subnet_2_id = module.subnets_us_east.us_east_subnet_2_id us_east_subnet_3_id = module.subnets_us_east.us_east_subnet_3_id @@ -43,7 +52,9 @@ module "ec2" { module "ec2-west" { source = "./modules/ec2/ec2-west" - + + min_size = "4" + max_size = "10" us_west_subnet_1_id = module.subnets_us_west.us_west_subnet_1_id us_west_subnet_2_id = module.subnets_us_west.us_west_subnet_2_id us_west_subnet_3_id = module.subnets_us_west.us_west_subnet_3_id @@ -58,4 +69,12 @@ module "elb" { module "efs" { source = "./modules/efs" + + us_east_subnet_1_id = module.subnets_us_east.us_east_subnet_1_id + us_east_subnet_2_id = module.subnets_us_east.us_east_subnet_2_id + us_east_subnet_3_id = module.subnets_us_east.us_east_subnet_3_id + us_west_subnet_1_id = module.subnets_us_west.us_west_subnet_1_id + us_west_subnet_2_id = module.subnets_us_west.us_west_subnet_2_id + us_west_subnet_3_id = module.subnets_us_west.us_west_subnet_3_id + } diff --git a/aws/aws_simple/modules/efs/main.tf b/aws/aws_simple/modules/efs/main.tf index e69de29..951a747 100644 --- a/aws/aws_simple/modules/efs/main.tf +++ b/aws/aws_simple/modules/efs/main.tf @@ -0,0 +1,60 @@ +resource "aws_efs_file_system" "efs" { + creation_token = "efs-asg-west-east" + encrypted = true + performance_mode = "generalPurpose" + throughput_mode = "bursting" +} + + + +resource "aws_efs_mount_target" "us_west_subnet_1" { + file_system_id = aws_efs_file_system.efs.id + subnet_id = var.us_west_subnet_1_id + depends_on = [var.us_west_subnet_1_id] +} + +resource "aws_efs_mount_target" "us_west_subnet_2" { + file_system_id = aws_efs_file_system.efs.id + subnet_id = var.us_west_subnet_2_id + depends_on = [var.us_west_subnet_2_id] +} + +resource "aws_efs_mount_target" "us_west_subnet_3" { + file_system_id = aws_efs_file_system.efs.id + subnet_id = var.us_west_subnet_3_id + depends_on = [var.us_west_subnet_3_id] +} + +data "template_file" "mount_script" { + template = <> /etc/fstab +mount -a -t efs,nfs4 defaults +EOF +} + +provider "aws" { + region = "us-east-1" + + +} + +resource "aws_efs_mount_target" "us_east_subnet_1" { + file_system_id = aws_efs_file_system.efs.id + subnet_id = var.us_east_subnet_1_id + depends_on = [var.us_east_subnet_1_id] +} + +resource "aws_efs_mount_target" "us_east_subnet_2" { + file_system_id = aws_efs_file_system.efs.id + subnet_id = var.us_east_subnet_2_id + depends_on = [var.us_east_subnet_2_id] +} + +resource "aws_efs_mount_target" "us_east_subnet_3" { + file_system_id = aws_efs_file_system.efs.id + subnet_id = var.us_east_subnet_3_id + depends_on = [var.us_east_subnet_3_id] +} \ No newline at end of file diff --git a/aws/aws_simple/modules/efs/outputs.tf b/aws/aws_simple/modules/efs/outputs.tf new file mode 100644 index 0000000..e69de29 diff --git a/aws/aws_simple/modules/efs/variables.tf b/aws/aws_simple/modules/efs/variables.tf new file mode 100644 index 0000000..ad01200 --- /dev/null +++ b/aws/aws_simple/modules/efs/variables.tf @@ -0,0 +1,31 @@ +variable "us_east_subnet_1_id" { + description = "The ID of the first US East subnet" + type = string +} + +variable "us_east_subnet_2_id" { + description = "The ID of the second US East subnet" + type = string +} + +variable "us_east_subnet_3_id" { + description = "The ID of the third US East subnet" + type = string +} + +variable "us_west_subnet_1_id" { + description = "The ID of the first US East subnet" + type = string +} + +variable "us_west_subnet_2_id" { + description = "The ID of the second US East subnet" + type = string +} + +variable "us_west_subnet_3_id" { + description = "The ID of the third US East subnet" + type = string +} + + \ No newline at end of file diff --git a/aws/backend/main.tf b/aws/backend/main.tf new file mode 100644 index 0000000..e89474e --- /dev/null +++ b/aws/backend/main.tf @@ -0,0 +1,9 @@ +terraform { + backend "s3" { + bucket = "my-tf-bucket-ghndrx" + key = "terraform.tfstate" + region = "us-west-2" + } +} + +# Rest of your Terraform configuration goes here... diff --git a/aws/s3/main.tf b/aws/s3/main.tf new file mode 100644 index 0000000..a0735a5 --- /dev/null +++ b/aws/s3/main.tf @@ -0,0 +1,24 @@ +# Provider configuration +provider "aws" { + region = "us-west-2" + # Add your AWS access and secret keys here + +} + +resource "aws_s3_bucket" "my-tf-bucket-ghndrx" { + bucket = "my-tf-bucket-ghndrx" + + tags = { + Name = "tf-backend" + Environment = "production" + } +} + +# Output the bucket name +output "my-tf-bucket-ghndrx" { + value = aws_s3_bucket.my-tf-bucket-ghndrx.bucket +} + + + +