commit 40acf53cfacb72a697f73d960176968467702377 Author: gregory hendrickson Date: Thu Mar 30 03:51:24 2023 -0700 Init repo diff --git a/main.tf b/main.tf new file mode 100644 index 0000000..fe820c9 --- /dev/null +++ b/main.tf @@ -0,0 +1,29 @@ +provider "google" { + credentials = file(var.credentials_file) + project = var.project_id + region = var.region + zone = var.zone +} + +module "compute_engine_template" { + source = "./modules/compute_engine_template" + project_id = var.project_id + region = var.region + image_name = var.image_name + instance_type = var.instance_type + startup_script = file("${path.module}/scripts/startup.sh") +} + +module "compute_engine_instance_group" { + source = "./modules/compute_engine_instance_group" + project_id = var.project_id + region = var.region + template_self_link = module.compute_engine_template.self_link +} + +module "load_balancer" { + source = "./modules/load_balancer" + project_id = var.project_id + region = var.region + backend_instance_group_self_link = module.compute_engine_instance_group.self_link +} diff --git a/modules/compute_engine_instance_group/main.tf b/modules/compute_engine_instance_group/main.tf new file mode 100644 index 0000000..e69de29 diff --git a/modules/compute_engine_instance_group/outputs.tf b/modules/compute_engine_instance_group/outputs.tf new file mode 100644 index 0000000..e69de29 diff --git a/modules/compute_engine_instance_group/variables.tf b/modules/compute_engine_instance_group/variables.tf new file mode 100644 index 0000000..e69de29 diff --git a/modules/compute_engine_template/main.tf b/modules/compute_engine_template/main.tf new file mode 100644 index 0000000..e69de29 diff --git a/modules/compute_engine_template/outputs.tf b/modules/compute_engine_template/outputs.tf new file mode 100644 index 0000000..ac6e162 --- /dev/null +++ b/modules/compute_engine_template/outputs.tf @@ -0,0 +1,3 @@ +output "self_link" { + value = google_compute_instance_template.template.self_link +} diff --git a/modules/compute_engine_template/variables.tf b/modules/compute_engine_template/variables.tf new file mode 100644 index 0000000..e69de29 diff --git a/modules/load_balancer/main.tf b/modules/load_balancer/main.tf new file mode 100644 index 0000000..e69de29 diff --git a/modules/load_balancer/outputs.tf b/modules/load_balancer/outputs.tf new file mode 100644 index 0000000..dc7148d --- /dev/null +++ b/modules/load_balancer/outputs.tf @@ -0,0 +1,3 @@ +output "ip_address" { + value = google_compute_global_address.lb_address.address +} \ No newline at end of file diff --git a/modules/load_balancer/variables.tf b/modules/load_balancer/variables.tf new file mode 100644 index 0000000..9f145f1 --- /dev/null +++ b/modules/load_balancer/variables.tf @@ -0,0 +1,3 @@ +variable "project_id" {} +variable "region" {} +variable "backend_instance_group_self_link" {} diff --git a/outputs.tf b/outputs.tf new file mode 100644 index 0000000..bd2f4e8 --- /dev/null +++ b/outputs.tf @@ -0,0 +1,7 @@ +output "instance_group_url" { + value = module.compute_engine_instance_group.self_link +} + +output "load_balancer_ip" { + value = module.load_balancer.ip_address +} diff --git a/scripts/startup.sh b/scripts/startup.sh new file mode 100644 index 0000000..13d2afc --- /dev/null +++ b/scripts/startup.sh @@ -0,0 +1,3 @@ +#!/bin/bash +sudo apt-get update +sudo apt-get install -y nginx diff --git a/terraform.tfvars b/terraform.tfvars new file mode 100644 index 0000000..df4cc7a --- /dev/null +++ b/terraform.tfvars @@ -0,0 +1,6 @@ +credentials_file = "path/to/credentials.json" +project_id = "terraform-demo-382210" +region = "us-central1" +zone = "us-central1-a" +image_name = "debian-cloud/debian-11" +instance_type = "n1-standard-1" diff --git a/variables.tf b/variables.tf new file mode 100644 index 0000000..3d905bf --- /dev/null +++ b/variables.tf @@ -0,0 +1,6 @@ +variable "credentials_file" {} +variable "project_id" {} +variable "region" {} +variable "zone" {} +variable "image_name" {} +variable "instance_type" {}