From e26693651fe1c158d4a35f8cc6456ddb45420344 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Tue, 5 Oct 2021 19:13:32 +0200 Subject: [PATCH 01/25] First Demo --- .../terraform-manifests/.terraform.lock.hcl | 20 +++++++++++++++++++ .../terraform-manifests/ec2-instance.tf | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 02-Terraform-Basics/02-02-Terraform-Command-Basics/terraform-manifests/.terraform.lock.hcl diff --git a/02-Terraform-Basics/02-02-Terraform-Command-Basics/terraform-manifests/.terraform.lock.hcl b/02-Terraform-Basics/02-02-Terraform-Command-Basics/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..ff0e4396 --- /dev/null +++ b/02-Terraform-Basics/02-02-Terraform-Command-Basics/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,20 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.61.0" + hashes = [ + "h1:YZaozdn4J1Ax01NkubRAdv809vlpJOXRBC4KsqBzpvA=", + "zh:0483ca802ddb0ae4f73144b4357ba72242c6e2641aeb460b1aa9a6f6965464b0", + "zh:274712214ebeb0c1269cbc468e5705bb5741dc45b05c05e9793ca97f22a1baa1", + "zh:3c6bd97a2ca809469ae38f6893348386c476cb3065b120b785353c1507401adf", + "zh:53dd41a9aed9860adbbeeb71a23e4f8195c656fd15a02c90fa2d302a5f577d8c", + "zh:65c639c547b97bc880fd83e65511c0f4bbfc91b63cada3b8c0d5776444221700", + "zh:a2769e19137ff480c1dd3e4f248e832df90fb6930a22c66264d9793895161714", + "zh:a5897a99332cc0071e46a71359b86a8e53ab09c1453e94cd7cf45a0b577ff590", + "zh:bdc2353642d16d8e2437a9015cd4216a1772be9736645cc17d1a197480e2b5b7", + "zh:cbeace1deae938f6c0aca3734e6088f3633ca09611aff701c15cb6d42f2b918a", + "zh:d33ca19012aabd98cc03fdeccd0bd5ce56e28f61a1dfbb2eea88e89487de7fb3", + "zh:d548b29a864b0687e85e8a993f208e25e3ecc40fcc5b671e1985754b32fdd658", + ] +} diff --git a/02-Terraform-Basics/02-02-Terraform-Command-Basics/terraform-manifests/ec2-instance.tf b/02-Terraform-Basics/02-02-Terraform-Command-Basics/terraform-manifests/ec2-instance.tf index 8b007c8c..fda513fa 100644 --- a/02-Terraform-Basics/02-02-Terraform-Command-Basics/terraform-manifests/ec2-instance.tf +++ b/02-Terraform-Basics/02-02-Terraform-Command-Basics/terraform-manifests/ec2-instance.tf @@ -11,11 +11,11 @@ terraform { # Provider Block provider "aws" { profile = "default" # AWS Credentials Profile configured on your local desktop terminal $HOME/.aws/credentials - region = "us-east-1" + region = "eu-west-1" } # Resource Block resource "aws_instance" "ec2demo" { - ami = "ami-0be2609ba883822ec" # Amazon Linux in us-east-1, update as per your region + ami = "ami-0d1bf5b68307103c2" # Amazon Linux in us-east-1, update as per your region instance_type = "t2.micro" } From 6cb1e0582db9117fc17f2e01caf555967b03acdf Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Wed, 6 Oct 2021 16:21:51 +0200 Subject: [PATCH 02/25] Demmo2 --- .../terraform-manifests/.terraform.lock.hcl | 40 +++++++++++++++++++ .../terraform-manifests/terraform-block.tf | 13 +++--- 2 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/.terraform.lock.hcl diff --git a/03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/.terraform.lock.hcl b/03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..32ddaf71 --- /dev/null +++ b/03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,40 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.61.0" + constraints = "~> 3.0" + hashes = [ + "h1:YZaozdn4J1Ax01NkubRAdv809vlpJOXRBC4KsqBzpvA=", + "zh:0483ca802ddb0ae4f73144b4357ba72242c6e2641aeb460b1aa9a6f6965464b0", + "zh:274712214ebeb0c1269cbc468e5705bb5741dc45b05c05e9793ca97f22a1baa1", + "zh:3c6bd97a2ca809469ae38f6893348386c476cb3065b120b785353c1507401adf", + "zh:53dd41a9aed9860adbbeeb71a23e4f8195c656fd15a02c90fa2d302a5f577d8c", + "zh:65c639c547b97bc880fd83e65511c0f4bbfc91b63cada3b8c0d5776444221700", + "zh:a2769e19137ff480c1dd3e4f248e832df90fb6930a22c66264d9793895161714", + "zh:a5897a99332cc0071e46a71359b86a8e53ab09c1453e94cd7cf45a0b577ff590", + "zh:bdc2353642d16d8e2437a9015cd4216a1772be9736645cc17d1a197480e2b5b7", + "zh:cbeace1deae938f6c0aca3734e6088f3633ca09611aff701c15cb6d42f2b918a", + "zh:d33ca19012aabd98cc03fdeccd0bd5ce56e28f61a1dfbb2eea88e89487de7fb3", + "zh:d548b29a864b0687e85e8a993f208e25e3ecc40fcc5b671e1985754b32fdd658", + ] +} + +provider "registry.terraform.io/hashicorp/random" { + version = "3.1.0" + constraints = "~> 3.0" + hashes = [ + "h1:EPIax4Ftp2SNdB9pUfoSjxoueDoLc/Ck3EUoeX0Dvsg=", + "zh:2bbb3339f0643b5daa07480ef4397bd23a79963cc364cdfbb4e86354cb7725bc", + "zh:3cd456047805bf639fbf2c761b1848880ea703a054f76db51852008b11008626", + "zh:4f251b0eda5bb5e3dc26ea4400dba200018213654b69b4a5f96abee815b4f5ff", + "zh:7011332745ea061e517fe1319bd6c75054a314155cb2c1199a5b01fe1889a7e2", + "zh:738ed82858317ccc246691c8b85995bc125ac3b4143043219bd0437adc56c992", + "zh:7dbe52fac7bb21227acd7529b487511c91f4107db9cc4414f50d04ffc3cab427", + "zh:a3a9251fb15f93e4cfc1789800fc2d7414bbc18944ad4c5c98f466e6477c42bc", + "zh:a543ec1a3a8c20635cf374110bd2f87c07374cf2c50617eee2c669b3ceeeaa9f", + "zh:d9ab41d556a48bd7059f0810cf020500635bfc696c9fc3adab5ea8915c1d886b", + "zh:d9e13427a7d011dbd654e591b0337e6074eef8c3b9bb11b2e39eaaf257044fd7", + "zh:f7605bd1437752114baf601bdf6931debe6dc6bfe3006eb7e9bb9080931dca8a", + ] +} diff --git a/03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/terraform-block.tf b/03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/terraform-block.tf index ec9b5055..cf85f2b6 100644 --- a/03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/terraform-block.tf +++ b/03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/terraform-block.tf @@ -1,15 +1,16 @@ # Terraform Block terraform { - required_version = "~> 0.14.3" + required_version = "~> 1.0.0" required_providers { aws = { - source = "hashicorp/aws" + source = "hashicorp/aws" version = "~> 3.0" - } + } + random = { - source = "hashicorp/random" - version = "3.0.1" - } + source = "hashicorp/random" + version = "~> 3.0" + } } } From 4352fa239b5d423eba76fd560fc0a86fffb53343 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Wed, 6 Oct 2021 16:34:05 +0200 Subject: [PATCH 03/25] Demoo --- .../terraform-manifests/terraform-block.tf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/terraform-block.tf b/03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/terraform-block.tf index cf85f2b6..85611233 100644 --- a/03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/terraform-block.tf +++ b/03-Terraform-Fundamental-Blocks/03-01-Terraform-Block/terraform-manifests/terraform-block.tf @@ -14,6 +14,11 @@ terraform { } } +provider "aws" { + region = "eu-west-1" + profile = "default" +} + /* Play with Terraform Version required_version = "~> 0.14.3" From 2da7ad2568667a2ca26a45dfbf466155f33851a6 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Wed, 6 Oct 2021 17:06:16 +0200 Subject: [PATCH 04/25] Demo --- .../terraform-manifests/.terraform.lock.hcl | 21 +++++++++++++++++++ .../terraform-manifests/c1-versions.tf | 7 ++++--- .../terraform-manifests/c2-vpc.tf | 2 ++ 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/.terraform.lock.hcl diff --git a/03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/.terraform.lock.hcl b/03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..4546d899 --- /dev/null +++ b/03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.61.0" + constraints = "~> 3.0" + hashes = [ + "h1:YZaozdn4J1Ax01NkubRAdv809vlpJOXRBC4KsqBzpvA=", + "zh:0483ca802ddb0ae4f73144b4357ba72242c6e2641aeb460b1aa9a6f6965464b0", + "zh:274712214ebeb0c1269cbc468e5705bb5741dc45b05c05e9793ca97f22a1baa1", + "zh:3c6bd97a2ca809469ae38f6893348386c476cb3065b120b785353c1507401adf", + "zh:53dd41a9aed9860adbbeeb71a23e4f8195c656fd15a02c90fa2d302a5f577d8c", + "zh:65c639c547b97bc880fd83e65511c0f4bbfc91b63cada3b8c0d5776444221700", + "zh:a2769e19137ff480c1dd3e4f248e832df90fb6930a22c66264d9793895161714", + "zh:a5897a99332cc0071e46a71359b86a8e53ab09c1453e94cd7cf45a0b577ff590", + "zh:bdc2353642d16d8e2437a9015cd4216a1772be9736645cc17d1a197480e2b5b7", + "zh:cbeace1deae938f6c0aca3734e6088f3633ca09611aff701c15cb6d42f2b918a", + "zh:d33ca19012aabd98cc03fdeccd0bd5ce56e28f61a1dfbb2eea88e89487de7fb3", + "zh:d548b29a864b0687e85e8a993f208e25e3ecc40fcc5b671e1985754b32fdd658", + ] +} diff --git a/03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/c1-versions.tf b/03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/c1-versions.tf index 35c6c2bf..3a16372c 100644 --- a/03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/c1-versions.tf +++ b/03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/c1-versions.tf @@ -1,17 +1,18 @@ # Terraform Block terraform { - required_version = "~> 0.14.6" + required_version = "~> 1.0.0" + required_providers { aws = { source = "hashicorp/aws" version = "~> 3.0" - } + } } } # Provider Block provider "aws" { - region = "us-east-1" + region = "eu-west-1" profile = "default" } diff --git a/03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/c2-vpc.tf b/03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/c2-vpc.tf index b45c274d..4192ad30 100644 --- a/03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/c2-vpc.tf +++ b/03-Terraform-Fundamental-Blocks/03-02-Provider-Block/terraform-manifests/c2-vpc.tf @@ -2,7 +2,9 @@ # Resource-1: Create VPC resource "aws_vpc" "myvpc" { cidr_block = "10.0.0.0/16" + tags = { "Name" = "myvpc" + "Created_by" = "Terraform" } } From 65767adbaabb674d5b4422bdd14a11d0c824be66 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Wed, 6 Oct 2021 18:11:52 +0200 Subject: [PATCH 05/25] added --- .../terraform-manifests/.terraform.lock.hcl | 21 +++++++++++++ .../terraform-manifests/c1-versions.tf | 8 ++--- .../terraform-manifests/c2-vpc-us-east-1.tf | 5 ++-- .../terraform-manifests/c3-vpc-us-west-1.tf | 6 ++-- .../terraform-manifests/.terraform.lock.hcl | 30 +++++++++---------- .../terraform-manifests/c1-versions.tf | 6 ++-- .../terraform-manifests/c2-s3bucket.tf | 2 +- 7 files changed, 50 insertions(+), 28 deletions(-) create mode 100644 03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/.terraform.lock.hcl diff --git a/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/.terraform.lock.hcl b/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..4546d899 --- /dev/null +++ b/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.61.0" + constraints = "~> 3.0" + hashes = [ + "h1:YZaozdn4J1Ax01NkubRAdv809vlpJOXRBC4KsqBzpvA=", + "zh:0483ca802ddb0ae4f73144b4357ba72242c6e2641aeb460b1aa9a6f6965464b0", + "zh:274712214ebeb0c1269cbc468e5705bb5741dc45b05c05e9793ca97f22a1baa1", + "zh:3c6bd97a2ca809469ae38f6893348386c476cb3065b120b785353c1507401adf", + "zh:53dd41a9aed9860adbbeeb71a23e4f8195c656fd15a02c90fa2d302a5f577d8c", + "zh:65c639c547b97bc880fd83e65511c0f4bbfc91b63cada3b8c0d5776444221700", + "zh:a2769e19137ff480c1dd3e4f248e832df90fb6930a22c66264d9793895161714", + "zh:a5897a99332cc0071e46a71359b86a8e53ab09c1453e94cd7cf45a0b577ff590", + "zh:bdc2353642d16d8e2437a9015cd4216a1772be9736645cc17d1a197480e2b5b7", + "zh:cbeace1deae938f6c0aca3734e6088f3633ca09611aff701c15cb6d42f2b918a", + "zh:d33ca19012aabd98cc03fdeccd0bd5ce56e28f61a1dfbb2eea88e89487de7fb3", + "zh:d548b29a864b0687e85e8a993f208e25e3ecc40fcc5b671e1985754b32fdd658", + ] +} diff --git a/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c1-versions.tf b/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c1-versions.tf index c53c441c..b76b25be 100644 --- a/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c1-versions.tf +++ b/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14.6" + required_version = "~> 1.0.0" required_providers { aws = { source = "hashicorp/aws" @@ -11,15 +11,15 @@ terraform { # Provider-1 for us-east-1 (Default Provider) provider "aws" { - region = "us-east-1" + region = "eu-west-1" profile = "default" } # Provider-2 for us-west-1 provider "aws" { - region = "us-west-1" + region = "eu-west-2" profile = "default" - alias = "aws-west-1" + alias = "aws-eu-west-2" } diff --git a/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c2-vpc-us-east-1.tf b/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c2-vpc-us-east-1.tf index eea9958c..d4f7a2bb 100644 --- a/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c2-vpc-us-east-1.tf +++ b/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c2-vpc-us-east-1.tf @@ -1,7 +1,8 @@ # Resource Block to Create VPC in us-east-1 which uses default provider -resource "aws_vpc" "vpc-us-east-1" { +resource "aws_vpc" "vpc-eu-west-1" { cidr_block = "10.1.0.0/16" + tags = { - "Name" = "vpc-us-east-1" + "Name" = "vpc-eu-west-1" } } diff --git a/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c3-vpc-us-west-1.tf b/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c3-vpc-us-west-1.tf index 8974f5a2..aa9cbf03 100644 --- a/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c3-vpc-us-west-1.tf +++ b/03-Terraform-Fundamental-Blocks/03-03-Multiple-Provider-Configurations/terraform-manifests/c3-vpc-us-west-1.tf @@ -1,9 +1,9 @@ # Resource Block to Create VPC in us-west-1 -resource "aws_vpc" "vpc-us-west-1" { +resource "aws_vpc" "vpc-eu-west-2" { cidr_block = "10.1.0.0/16" - provider = aws.aws-west-1 + provider = aws.aws-eu-west-2 tags = { - "Name" = "vpc-us-west-1" + "Name" = "vpc-eu-west-2" } } diff --git a/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/.terraform.lock.hcl b/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/.terraform.lock.hcl index 33acaed2..0a5b8186 100644 --- a/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/.terraform.lock.hcl +++ b/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/.terraform.lock.hcl @@ -2,22 +2,21 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/hashicorp/aws" { - version = "2.50.0" - constraints = ">= 2.0.0" + version = "3.61.0" + constraints = ">= 2.1.0" hashes = [ - "h1:aKw4NLrMEAflsl1OXCCz6Ewo4ay9dpgSpkNHujRXXO8=", - "zh:05be40c2d4ec798d6a64bdc9fa9de4c994cf8fe47997368bc0ce40120985b7a0", - "zh:14752329e73c68b63b68f971caaaf5248ceea9f2cdc166b3897d46ce96f25548", - "zh:291121fd0153945f5e21411ee5625b6ec688344af2afef193d1243a0762b3064", - "zh:49488c0d0fd6412f8e877c5b8839da13371dac87491c3bfae484ce9d7be67007", - "zh:5a8f55012dc61cb98ac116b09f2b1fe68a96174ba892ee1bae90e3137b779a5d", - "zh:77b68e5401c4977de5f172005f00dcfa724eb8ca938bd109bc74024c9550cb65", - "zh:8f0b3af9db522f92cdb93eec28c340c00b0679357b715eee70fc3f3777c26747", - "zh:9170bd7ef9a37bc960233bd9957ef46e1495b56bd329be4b0b578bfc744d5f0e", - "zh:a66344e70ad954529c395e2b58fe491d5cc27991654852a66c9a3572a4d48c6f", - "zh:b63e986afec187d6f708a37b64845d8e908c597902efe4eae7148ef07fa8aff5", - "zh:fcc6e9a1f8df9b8cde3d8bcb917294dd9b9283b6bb8db6435ad02fb9ff1fe410", - "zh:fdeaf059f86d0ab59cf68ece2e8cec522b506c47e2cfca7ba6125b1cd06b8680", + "h1:YZaozdn4J1Ax01NkubRAdv809vlpJOXRBC4KsqBzpvA=", + "zh:0483ca802ddb0ae4f73144b4357ba72242c6e2641aeb460b1aa9a6f6965464b0", + "zh:274712214ebeb0c1269cbc468e5705bb5741dc45b05c05e9793ca97f22a1baa1", + "zh:3c6bd97a2ca809469ae38f6893348386c476cb3065b120b785353c1507401adf", + "zh:53dd41a9aed9860adbbeeb71a23e4f8195c656fd15a02c90fa2d302a5f577d8c", + "zh:65c639c547b97bc880fd83e65511c0f4bbfc91b63cada3b8c0d5776444221700", + "zh:a2769e19137ff480c1dd3e4f248e832df90fb6930a22c66264d9793895161714", + "zh:a5897a99332cc0071e46a71359b86a8e53ab09c1453e94cd7cf45a0b577ff590", + "zh:bdc2353642d16d8e2437a9015cd4216a1772be9736645cc17d1a197480e2b5b7", + "zh:cbeace1deae938f6c0aca3734e6088f3633ca09611aff701c15cb6d42f2b918a", + "zh:d33ca19012aabd98cc03fdeccd0bd5ce56e28f61a1dfbb2eea88e89487de7fb3", + "zh:d548b29a864b0687e85e8a993f208e25e3ecc40fcc5b671e1985754b32fdd658", ] } @@ -25,6 +24,7 @@ provider "registry.terraform.io/hashicorp/random" { version = "3.0.0" constraints = "3.0.0" hashes = [ + "h1:+JUEdzBH7Od9JKdMMAIJlX9v6P8jfbMR7V4/FKXLAgY=", "h1:yhHJpb4IfQQfuio7qjUXuUFTU/s+ensuEpm23A+VWz0=", "zh:0fcb00ff8b87dcac1b0ee10831e47e0203a6c46aafd76cb140ba2bab81f02c6b", "zh:123c984c0e04bad910c421028d18aa2ca4af25a153264aef747521f4e7c36a17", diff --git a/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/c1-versions.tf b/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/c1-versions.tf index afd55097..ff8ca08d 100644 --- a/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/c1-versions.tf +++ b/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/c1-versions.tf @@ -1,12 +1,12 @@ # Terraform Settings Block terraform { # Terraform Version - required_version = "~> 0.14.6" + required_version = "~> 1.0.0" required_providers { # AWS Provider aws = { source = "hashicorp/aws" - version = ">= 2.0.0" + version = ">= 2.1.0" } # Random Provider random = { @@ -18,6 +18,6 @@ terraform { # Provider Block provider "aws" { - region = "us-east-1" + region = "eu-west-1" profile = "default" # Defining it for default profile is Optional } \ No newline at end of file diff --git a/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/c2-s3bucket.tf b/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/c2-s3bucket.tf index 83e740ba..eafd693a 100644 --- a/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/c2-s3bucket.tf +++ b/03-Terraform-Fundamental-Blocks/03-04-Providers-Dependency-Lock-File/terraform-manifests/c2-s3bucket.tf @@ -8,5 +8,5 @@ resource "random_pet" "petname" { resource "aws_s3_bucket" "sample" { bucket = random_pet.petname.id acl = "public-read" - region = "us-east-1" # Comment this if we are going to use AWS Provider v3.x version + #region = "eu-west-1" # Comment this if we are going to use AWS Provider v3.x version } From 2883f360bb2e44e7018ae0404c8e37aa01e18652 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Thu, 7 Oct 2021 22:29:47 +0200 Subject: [PATCH 06/25] added --- .../terraform-manifests/.terraform.lock.hcl | 21 +++++++++++++++++++ .../terraform-manifests/c1-versions.tf | 4 ++-- .../terraform-manifests/c2-ec2-instance.tf | 13 ++++++------ 3 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/.terraform.lock.hcl diff --git a/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/.terraform.lock.hcl b/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..4546d899 --- /dev/null +++ b/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.61.0" + constraints = "~> 3.0" + hashes = [ + "h1:YZaozdn4J1Ax01NkubRAdv809vlpJOXRBC4KsqBzpvA=", + "zh:0483ca802ddb0ae4f73144b4357ba72242c6e2641aeb460b1aa9a6f6965464b0", + "zh:274712214ebeb0c1269cbc468e5705bb5741dc45b05c05e9793ca97f22a1baa1", + "zh:3c6bd97a2ca809469ae38f6893348386c476cb3065b120b785353c1507401adf", + "zh:53dd41a9aed9860adbbeeb71a23e4f8195c656fd15a02c90fa2d302a5f577d8c", + "zh:65c639c547b97bc880fd83e65511c0f4bbfc91b63cada3b8c0d5776444221700", + "zh:a2769e19137ff480c1dd3e4f248e832df90fb6930a22c66264d9793895161714", + "zh:a5897a99332cc0071e46a71359b86a8e53ab09c1453e94cd7cf45a0b577ff590", + "zh:bdc2353642d16d8e2437a9015cd4216a1772be9736645cc17d1a197480e2b5b7", + "zh:cbeace1deae938f6c0aca3734e6088f3633ca09611aff701c15cb6d42f2b918a", + "zh:d33ca19012aabd98cc03fdeccd0bd5ce56e28f61a1dfbb2eea88e89487de7fb3", + "zh:d548b29a864b0687e85e8a993f208e25e3ecc40fcc5b671e1985754b32fdd658", + ] +} diff --git a/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c1-versions.tf b/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c1-versions.tf index e9cfb257..4246da4d 100644 --- a/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c1-versions.tf +++ b/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14" + required_version = "~> 1.0.0" required_providers { aws = { source = "hashicorp/aws" @@ -11,5 +11,5 @@ terraform { # Provider Block provider "aws" { - region = "us-east-1" + region = "eu-west-1" } diff --git a/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c2-ec2-instance.tf b/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c2-ec2-instance.tf index 3a0b2a5c..2fc555ed 100644 --- a/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c2-ec2-instance.tf +++ b/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c2-ec2-instance.tf @@ -1,14 +1,13 @@ # Create EC2 Instance # https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance -resource "aws_instance" "my-ec2-vm" { - ami = "ami-047a51fa27710816e" +resource "aws_instance" "my_resource_1" { + ami = "ami-0d1bf5b68307103c2" instance_type = "t2.micro" - availability_zone = "us-east-1a" - #availability_zone = "us-east-1b" + availability_zone = "eu-west-1b" + tags = { - "Name" = "web" - #"tag1" = "Update-test-1" + Name = "HelloWorld" } -} +} \ No newline at end of file From 7c12ab67bf454cef4ffe2b1e703494d3b9bb5564 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Sat, 9 Oct 2021 16:16:05 +0200 Subject: [PATCH 07/25] added --- .../terraform-manifests/c2-ec2-instance.tf | 3 +- .../Practice/.terraform.lock.hcl | 21 ++++++ .../Practice/c1-versions.tf | 14 ++++ .../Practice/c2-vpc.tf | 75 +++++++++++++++++++ .../Practice/c3-ec2-instance.tf | 18 +++++ .../Practice/c4-aws-eip.tf | 7 ++ .../terraform-manifests/c1-versions.tf | 4 +- .../terraform-manifests/c3-ec2-instance.tf | 2 +- 8 files changed, 140 insertions(+), 4 deletions(-) create mode 100644 04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/.terraform.lock.hcl create mode 100644 04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c1-versions.tf create mode 100644 04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c2-vpc.tf create mode 100644 04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c3-ec2-instance.tf create mode 100644 04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c4-aws-eip.tf diff --git a/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c2-ec2-instance.tf b/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c2-ec2-instance.tf index 2fc555ed..6ec9c1d0 100644 --- a/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c2-ec2-instance.tf +++ b/04-Terraform-Resources/04-01-Resource-Syntax-and-Behavior/terraform-manifests/c2-ec2-instance.tf @@ -4,10 +4,11 @@ resource "aws_instance" "my_resource_1" { ami = "ami-0d1bf5b68307103c2" instance_type = "t2.micro" - availability_zone = "eu-west-1b" + availability_zone = "eu-west-1a" tags = { Name = "HelloWorld" + From = "Terraform Training" } } \ No newline at end of file diff --git a/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/.terraform.lock.hcl b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/.terraform.lock.hcl new file mode 100644 index 00000000..af6a3745 --- /dev/null +++ b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.62.0" + constraints = "~> 3.0" + hashes = [ + "h1:eXmZtLWeH/OdYSjzFQ2rO/3TNskq4h+0xAaxRmBrSwg=", + "zh:08a94019e17304f5927d7c85b8f5dade6b9ffebeb7b06ec0643aaa1130c4c85d", + "zh:0e3709f6c1fed8c5119a5653bec7e3069258ddf91f62d851f8deeede10487fb8", + "zh:0ed32886abce5fee49f1ae49b84472558224366c31a638e51c63061c3126e7c2", + "zh:0f1ecbeddfa61d87701a3f3b463e508773171981bf6dad8b1313a9eafaffd5e1", + "zh:724cde4f27253b547714a606288ede17f5df67f430438478feed113d7acb5ac7", + "zh:81e6e751a168eab1a054230d4441b43c68693bfb6e0545536f2ea6dbb39fe9af", + "zh:84deaf1c6661ba0dbc07ac159109fb6746772476646d39854c755c8dfb7a8ac4", + "zh:909dcefc6c986c926ad856662ab5d38a3988b1906569387b5b58e7ddd89a155c", + "zh:d03886705e9f25d4bebeae115bb07e36adb14e778859cedb2bf3c3bed39f4d2b", + "zh:de9fc80c5a5d3be7535856242c823a92516eb7d5c16ae509fa10b92cd6b3fa9b", + "zh:e91dcd9eec8b779a9b089f2f8d45f1047f890cb7b9241490451da52c04cef63d", + ] +} diff --git a/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c1-versions.tf b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c1-versions.tf new file mode 100644 index 00000000..f2fa0bb3 --- /dev/null +++ b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c1-versions.tf @@ -0,0 +1,14 @@ +terraform { + required_version = "~> 1.0.0" # which means >= 0.14.6 and < 0.15 + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + } +} + +provider "aws" { + region = "eu-west-1" + profile = "default" +} \ No newline at end of file diff --git a/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c2-vpc.tf b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c2-vpc.tf new file mode 100644 index 00000000..6cae9237 --- /dev/null +++ b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c2-vpc.tf @@ -0,0 +1,75 @@ +resource "aws_vpc" "my-test-vpc" { + cidr_block = "10.0.0.0/16" + tags = { + Name = "my-test-vpc" + } +} + +#Add subnet +resource "aws_subnet" "my-test-subnet" { + vpc_id = aws_vpc.my-test-vpc.id + cidr_block = "10.0.1.0/24" + availability_zone = "eu-west-1b" + map_public_ip_on_launch = true + + tags = { + Name = "my-test-subnet" + } +} + +resource "aws_internet_gateway" "my-test-internet-gw" { + vpc_id = aws_vpc.my-test-vpc.id + + tags = { + Name = "my-test-internet-gw" + } +} + +resource "aws_route_table" "my-test-route-table" { + vpc_id = aws_vpc.my-test-vpc.id + + tags = { + Name = "my-test-route-table" + } +} + +resource "aws_route" "my-test-route" { + route_table_id = aws_route_table.my-test-route-table.id + destination_cidr_block = "0.0.0.0/16" + gateway_id = aws_internet_gateway.my-test-internet-gw.id +} + +resource "aws_route_table_association" "my-test-route-association" { + subnet_id = aws_subnet.my-test-subnet.id + route_table_id = aws_route_table.my-test-route-table.id +} + +resource "aws_security_group" "my-test-security-group" { + name = "dev-vpc-default-sg" + description = "Dev VPC Default Security Group" + vpc_id = aws_vpc.my-test-vpc.id + + ingress { + description = "Allow Port 22" + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + description = "Allow Port 80" + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + egress { + description = "Allow all IP and Ports Outbound" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } +} \ No newline at end of file diff --git a/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c3-ec2-instance.tf b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c3-ec2-instance.tf new file mode 100644 index 00000000..4b936dae --- /dev/null +++ b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c3-ec2-instance.tf @@ -0,0 +1,18 @@ +resource "aws_instance" "my-test-instance" { + ami = "ami-0d1bf5b68307103c2" + instance_type = "t2.micro" + key_name = "AWSS3_Instance_MayurAWS1" + subnet_id = aws_subnet.my-test-subnet.id + vpc_security_group_ids = [aws_security_group.my-test-security-group.id] + user_data = <<-EOF + #!/bin/bash + sudo yum update -y + sudo yum install httpd -y + sudo systemctl enable httpd + sudo systemctl start httpd + echo "

Welcome to StackSimplify ! AWS Infra created using Terraform in us-east-1 Region

" > /var/www/html/index.html + EOF + tags = { + "Name" = "myec2vm" + } +} \ No newline at end of file diff --git a/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c4-aws-eip.tf b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c4-aws-eip.tf new file mode 100644 index 00000000..48ac174b --- /dev/null +++ b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/Practice/c4-aws-eip.tf @@ -0,0 +1,7 @@ +resource "aws_eip" "my-test-elastic-ip" { + instance = aws_instance.my-test-instance.id + vpc = true + depends_on = [ + aws_internet_gateway.my-test-internet-gw + ] +} \ No newline at end of file diff --git a/04-Terraform-Resources/04-02-Meta-Argument-depends_on/terraform-manifests/c1-versions.tf b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/terraform-manifests/c1-versions.tf index c337f26e..2b10eacd 100644 --- a/04-Terraform-Resources/04-02-Meta-Argument-depends_on/terraform-manifests/c1-versions.tf +++ b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/terraform-manifests/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14.6" # which means >= 0.14.6 and < 0.15 + required_version = "~> 1.0.0" # which means >= 0.14.6 and < 0.15 required_providers { aws = { source = "hashicorp/aws" @@ -11,7 +11,7 @@ terraform { # Provider Block provider "aws" { - region = "us-east-1" + region = "eu-west-1" profile = "default" } /* diff --git a/04-Terraform-Resources/04-02-Meta-Argument-depends_on/terraform-manifests/c3-ec2-instance.tf b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/terraform-manifests/c3-ec2-instance.tf index c504b90b..bfddbd68 100644 --- a/04-Terraform-Resources/04-02-Meta-Argument-depends_on/terraform-manifests/c3-ec2-instance.tf +++ b/04-Terraform-Resources/04-02-Meta-Argument-depends_on/terraform-manifests/c3-ec2-instance.tf @@ -2,7 +2,7 @@ resource "aws_instance" "my-ec2-vm" { ami = "ami-047a51fa27710816e" # Amazon Linux instance_type = "t2.micro" - key_name = "terraform-key" + key_name = "AWSS3_Instance_MayurAWS1" subnet_id = aws_subnet.vpc-dev-public-subnet-1.id vpc_security_group_ids = [aws_security_group.dev-vpc-sg.id] #user_data = file("apache-install.sh") From 0a3161e84a49c076a2ba303b1a7bc73f5b98865e Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Sat, 9 Oct 2021 16:26:34 +0200 Subject: [PATCH 08/25] added --- .../Practice/.terraform.lock.hcl | 21 +++++++++++++++++++ .../Practice/c1-versions.tf | 14 +++++++++++++ .../Practice/c2-ec2-vm.tf | 8 +++++++ 3 files changed, 43 insertions(+) create mode 100644 04-Terraform-Resources/04-03-Meta-Argument-count/Practice/.terraform.lock.hcl create mode 100644 04-Terraform-Resources/04-03-Meta-Argument-count/Practice/c1-versions.tf create mode 100644 04-Terraform-Resources/04-03-Meta-Argument-count/Practice/c2-ec2-vm.tf diff --git a/04-Terraform-Resources/04-03-Meta-Argument-count/Practice/.terraform.lock.hcl b/04-Terraform-Resources/04-03-Meta-Argument-count/Practice/.terraform.lock.hcl new file mode 100644 index 00000000..af6a3745 --- /dev/null +++ b/04-Terraform-Resources/04-03-Meta-Argument-count/Practice/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.62.0" + constraints = "~> 3.0" + hashes = [ + "h1:eXmZtLWeH/OdYSjzFQ2rO/3TNskq4h+0xAaxRmBrSwg=", + "zh:08a94019e17304f5927d7c85b8f5dade6b9ffebeb7b06ec0643aaa1130c4c85d", + "zh:0e3709f6c1fed8c5119a5653bec7e3069258ddf91f62d851f8deeede10487fb8", + "zh:0ed32886abce5fee49f1ae49b84472558224366c31a638e51c63061c3126e7c2", + "zh:0f1ecbeddfa61d87701a3f3b463e508773171981bf6dad8b1313a9eafaffd5e1", + "zh:724cde4f27253b547714a606288ede17f5df67f430438478feed113d7acb5ac7", + "zh:81e6e751a168eab1a054230d4441b43c68693bfb6e0545536f2ea6dbb39fe9af", + "zh:84deaf1c6661ba0dbc07ac159109fb6746772476646d39854c755c8dfb7a8ac4", + "zh:909dcefc6c986c926ad856662ab5d38a3988b1906569387b5b58e7ddd89a155c", + "zh:d03886705e9f25d4bebeae115bb07e36adb14e778859cedb2bf3c3bed39f4d2b", + "zh:de9fc80c5a5d3be7535856242c823a92516eb7d5c16ae509fa10b92cd6b3fa9b", + "zh:e91dcd9eec8b779a9b089f2f8d45f1047f890cb7b9241490451da52c04cef63d", + ] +} diff --git a/04-Terraform-Resources/04-03-Meta-Argument-count/Practice/c1-versions.tf b/04-Terraform-Resources/04-03-Meta-Argument-count/Practice/c1-versions.tf new file mode 100644 index 00000000..f2fa0bb3 --- /dev/null +++ b/04-Terraform-Resources/04-03-Meta-Argument-count/Practice/c1-versions.tf @@ -0,0 +1,14 @@ +terraform { + required_version = "~> 1.0.0" # which means >= 0.14.6 and < 0.15 + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + } +} + +provider "aws" { + region = "eu-west-1" + profile = "default" +} \ No newline at end of file diff --git a/04-Terraform-Resources/04-03-Meta-Argument-count/Practice/c2-ec2-vm.tf b/04-Terraform-Resources/04-03-Meta-Argument-count/Practice/c2-ec2-vm.tf new file mode 100644 index 00000000..581c2d6a --- /dev/null +++ b/04-Terraform-Resources/04-03-Meta-Argument-count/Practice/c2-ec2-vm.tf @@ -0,0 +1,8 @@ +resource "aws_instance" "my-test-instance" { + ami = "ami-0d1bf5b68307103c2" + instance_type = "t2.micro" + count = 5 + tags = { + name = "ec2-Instance-${count.index}" + } +} \ No newline at end of file From fe0bb6e8b42bce7105969f9a09b37009a2291908 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Sun, 10 Oct 2021 14:04:03 +0200 Subject: [PATCH 09/25] added --- .../Practice/.terraform.lock.hcl | 21 ++++++++++++ .../Practice/c1-versions.tf | 14 ++++++++ .../Practice/c2-s3-bucket.tf | 34 +++++++++++++++++++ .../v1-for_each-maps/.terraform.lock.hcl | 21 ++++++++++++ .../v1-for_each-maps/c1-versions.tf | 12 ++----- .../v1-for_each-maps/c2-s3bucket.tf | 4 +-- 6 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/.terraform.lock.hcl create mode 100644 04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/c1-versions.tf create mode 100644 04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/c2-s3-bucket.tf create mode 100644 04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/.terraform.lock.hcl diff --git a/04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/.terraform.lock.hcl b/04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/.terraform.lock.hcl new file mode 100644 index 00000000..af6a3745 --- /dev/null +++ b/04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.62.0" + constraints = "~> 3.0" + hashes = [ + "h1:eXmZtLWeH/OdYSjzFQ2rO/3TNskq4h+0xAaxRmBrSwg=", + "zh:08a94019e17304f5927d7c85b8f5dade6b9ffebeb7b06ec0643aaa1130c4c85d", + "zh:0e3709f6c1fed8c5119a5653bec7e3069258ddf91f62d851f8deeede10487fb8", + "zh:0ed32886abce5fee49f1ae49b84472558224366c31a638e51c63061c3126e7c2", + "zh:0f1ecbeddfa61d87701a3f3b463e508773171981bf6dad8b1313a9eafaffd5e1", + "zh:724cde4f27253b547714a606288ede17f5df67f430438478feed113d7acb5ac7", + "zh:81e6e751a168eab1a054230d4441b43c68693bfb6e0545536f2ea6dbb39fe9af", + "zh:84deaf1c6661ba0dbc07ac159109fb6746772476646d39854c755c8dfb7a8ac4", + "zh:909dcefc6c986c926ad856662ab5d38a3988b1906569387b5b58e7ddd89a155c", + "zh:d03886705e9f25d4bebeae115bb07e36adb14e778859cedb2bf3c3bed39f4d2b", + "zh:de9fc80c5a5d3be7535856242c823a92516eb7d5c16ae509fa10b92cd6b3fa9b", + "zh:e91dcd9eec8b779a9b089f2f8d45f1047f890cb7b9241490451da52c04cef63d", + ] +} diff --git a/04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/c1-versions.tf b/04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/c1-versions.tf new file mode 100644 index 00000000..f2fa0bb3 --- /dev/null +++ b/04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/c1-versions.tf @@ -0,0 +1,14 @@ +terraform { + required_version = "~> 1.0.0" # which means >= 0.14.6 and < 0.15 + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + } +} + +provider "aws" { + region = "eu-west-1" + profile = "default" +} \ No newline at end of file diff --git a/04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/c2-s3-bucket.tf b/04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/c2-s3-bucket.tf new file mode 100644 index 00000000..84059975 --- /dev/null +++ b/04-Terraform-Resources/04-04-Meta-Argument-for_each/Practice/c2-s3-bucket.tf @@ -0,0 +1,34 @@ +resource "aws_s3_bucket" "my-resource-bucket" { + for_each = { + dev = "my-dapp-bucket" + test = "my-tapp-bucket" + prod = "my-papp-bucket" + } + + + + bucket = "mayurhastak-${each.value}" + acl = "private" + + tags = { + Name = "mayurhastak-${each.value}" + Environment = "${each.key}" + } + +} + +resource "aws_iam_user" "iam-user" { + for_each = toset(["TMayur", "TSnehal"]) + + + name = "user-${each.key}" + tags = { + tag-key = "user-${each.key}" + } + + depends_on = [ + aws_s3_bucket.my-resource-bucket + ] + + +} \ No newline at end of file diff --git a/04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/.terraform.lock.hcl b/04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/.terraform.lock.hcl new file mode 100644 index 00000000..af6a3745 --- /dev/null +++ b/04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.62.0" + constraints = "~> 3.0" + hashes = [ + "h1:eXmZtLWeH/OdYSjzFQ2rO/3TNskq4h+0xAaxRmBrSwg=", + "zh:08a94019e17304f5927d7c85b8f5dade6b9ffebeb7b06ec0643aaa1130c4c85d", + "zh:0e3709f6c1fed8c5119a5653bec7e3069258ddf91f62d851f8deeede10487fb8", + "zh:0ed32886abce5fee49f1ae49b84472558224366c31a638e51c63061c3126e7c2", + "zh:0f1ecbeddfa61d87701a3f3b463e508773171981bf6dad8b1313a9eafaffd5e1", + "zh:724cde4f27253b547714a606288ede17f5df67f430438478feed113d7acb5ac7", + "zh:81e6e751a168eab1a054230d4441b43c68693bfb6e0545536f2ea6dbb39fe9af", + "zh:84deaf1c6661ba0dbc07ac159109fb6746772476646d39854c755c8dfb7a8ac4", + "zh:909dcefc6c986c926ad856662ab5d38a3988b1906569387b5b58e7ddd89a155c", + "zh:d03886705e9f25d4bebeae115bb07e36adb14e778859cedb2bf3c3bed39f4d2b", + "zh:de9fc80c5a5d3be7535856242c823a92516eb7d5c16ae509fa10b92cd6b3fa9b", + "zh:e91dcd9eec8b779a9b089f2f8d45f1047f890cb7b9241490451da52c04cef63d", + ] +} diff --git a/04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/c1-versions.tf b/04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/c1-versions.tf index c99fa143..f2fa0bb3 100644 --- a/04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/c1-versions.tf +++ b/04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/c1-versions.tf @@ -1,6 +1,5 @@ -# Terraform Block terraform { - required_version = "~> 0.14" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_version = "~> 1.0.0" # which means >= 0.14.6 and < 0.15 required_providers { aws = { source = "hashicorp/aws" @@ -9,12 +8,7 @@ terraform { } } -# Provider Block provider "aws" { - region = "us-east-1" + region = "eu-west-1" profile = "default" -} -/* -Note-1: AWS Credentials Profile (profile = "default") configured on your local desktop terminal -$HOME/.aws/credentials -*/ +} \ No newline at end of file diff --git a/04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/c2-s3bucket.tf b/04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/c2-s3bucket.tf index 5b898f95..b82e9094 100644 --- a/04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/c2-s3bucket.tf +++ b/04-Terraform-Resources/04-04-Meta-Argument-for_each/v1-for_each-maps/c2-s3bucket.tf @@ -11,12 +11,12 @@ resource "aws_s3_bucket" "mys3bucket" { prod = "my-papp-bucket" } - bucket = "${each.key}-${each.value}" + bucket = "mayurhastak-${each.key}-${each.value}" acl = "private" tags = { Environment = each.key - bucketname = "${each.key}-${each.value}" + bucketname = "mayurhastak-${each.key}-${each.value}" eachvalue = each.value } } From b92bfa0bf181755e11e321063f6fef6692ff7ddd Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Mon, 11 Oct 2021 19:25:13 +0200 Subject: [PATCH 10/25] added --- .../Practice/.terraform.lock.hcl | 21 ++++++++ .../Practice/c1-versions.tf | 14 ++++++ .../Practice/c2-ec2-instance.tf | 17 +++++++ .../Practice/.terraform.lock.hcl | 21 ++++++++ .../Practice/c1-versions.tf | 14 ++++++ .../Practice/c2-variables.tf | 23 +++++++++ .../Practice/c3-security-group.tf | 48 +++++++++++++++++++ .../Practice/c4-ec2-instance.tf | 19 ++++++++ .../Practice/terraform.tfvars | 2 + .../Practice/web.tfvars | 5 ++ 10 files changed, 184 insertions(+) create mode 100644 04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/.terraform.lock.hcl create mode 100644 04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/c1-versions.tf create mode 100644 04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/c2-ec2-instance.tf create mode 100644 05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/.terraform.lock.hcl create mode 100644 05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c1-versions.tf create mode 100644 05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf create mode 100644 05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c3-security-group.tf create mode 100644 05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c4-ec2-instance.tf create mode 100644 05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/terraform.tfvars create mode 100644 05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.tfvars diff --git a/04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/.terraform.lock.hcl b/04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/.terraform.lock.hcl new file mode 100644 index 00000000..af6a3745 --- /dev/null +++ b/04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.62.0" + constraints = "~> 3.0" + hashes = [ + "h1:eXmZtLWeH/OdYSjzFQ2rO/3TNskq4h+0xAaxRmBrSwg=", + "zh:08a94019e17304f5927d7c85b8f5dade6b9ffebeb7b06ec0643aaa1130c4c85d", + "zh:0e3709f6c1fed8c5119a5653bec7e3069258ddf91f62d851f8deeede10487fb8", + "zh:0ed32886abce5fee49f1ae49b84472558224366c31a638e51c63061c3126e7c2", + "zh:0f1ecbeddfa61d87701a3f3b463e508773171981bf6dad8b1313a9eafaffd5e1", + "zh:724cde4f27253b547714a606288ede17f5df67f430438478feed113d7acb5ac7", + "zh:81e6e751a168eab1a054230d4441b43c68693bfb6e0545536f2ea6dbb39fe9af", + "zh:84deaf1c6661ba0dbc07ac159109fb6746772476646d39854c755c8dfb7a8ac4", + "zh:909dcefc6c986c926ad856662ab5d38a3988b1906569387b5b58e7ddd89a155c", + "zh:d03886705e9f25d4bebeae115bb07e36adb14e778859cedb2bf3c3bed39f4d2b", + "zh:de9fc80c5a5d3be7535856242c823a92516eb7d5c16ae509fa10b92cd6b3fa9b", + "zh:e91dcd9eec8b779a9b089f2f8d45f1047f890cb7b9241490451da52c04cef63d", + ] +} diff --git a/04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/c1-versions.tf b/04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/c1-versions.tf new file mode 100644 index 00000000..f2fa0bb3 --- /dev/null +++ b/04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/c1-versions.tf @@ -0,0 +1,14 @@ +terraform { + required_version = "~> 1.0.0" # which means >= 0.14.6 and < 0.15 + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + } +} + +provider "aws" { + region = "eu-west-1" + profile = "default" +} \ No newline at end of file diff --git a/04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/c2-ec2-instance.tf b/04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/c2-ec2-instance.tf new file mode 100644 index 00000000..de6001e2 --- /dev/null +++ b/04-Terraform-Resources/04-05-Meta-Argument-lifecycle/Practice/c2-ec2-instance.tf @@ -0,0 +1,17 @@ +resource "aws_instance" "my-test-instance" { + ami = "ami-0d1bf5b68307103c2" + instance_type = var.ec2-instance-type + key_name = "AWSS3_Instance_MayurAWS1" + availability_zone = "eu-west-1a" + tags = { + "Name" = "myec2vm" + } + + lifecycle { + #create_before_destroy = true + #prevent_destroy = true + ignore_changes = [tags + + ] + } +} \ No newline at end of file diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/.terraform.lock.hcl b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/.terraform.lock.hcl new file mode 100644 index 00000000..af6a3745 --- /dev/null +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.62.0" + constraints = "~> 3.0" + hashes = [ + "h1:eXmZtLWeH/OdYSjzFQ2rO/3TNskq4h+0xAaxRmBrSwg=", + "zh:08a94019e17304f5927d7c85b8f5dade6b9ffebeb7b06ec0643aaa1130c4c85d", + "zh:0e3709f6c1fed8c5119a5653bec7e3069258ddf91f62d851f8deeede10487fb8", + "zh:0ed32886abce5fee49f1ae49b84472558224366c31a638e51c63061c3126e7c2", + "zh:0f1ecbeddfa61d87701a3f3b463e508773171981bf6dad8b1313a9eafaffd5e1", + "zh:724cde4f27253b547714a606288ede17f5df67f430438478feed113d7acb5ac7", + "zh:81e6e751a168eab1a054230d4441b43c68693bfb6e0545536f2ea6dbb39fe9af", + "zh:84deaf1c6661ba0dbc07ac159109fb6746772476646d39854c755c8dfb7a8ac4", + "zh:909dcefc6c986c926ad856662ab5d38a3988b1906569387b5b58e7ddd89a155c", + "zh:d03886705e9f25d4bebeae115bb07e36adb14e778859cedb2bf3c3bed39f4d2b", + "zh:de9fc80c5a5d3be7535856242c823a92516eb7d5c16ae509fa10b92cd6b3fa9b", + "zh:e91dcd9eec8b779a9b089f2f8d45f1047f890cb7b9241490451da52c04cef63d", + ] +} diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c1-versions.tf b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c1-versions.tf new file mode 100644 index 00000000..e01782aa --- /dev/null +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c1-versions.tf @@ -0,0 +1,14 @@ +terraform { + required_version = "~> 1.0.0" # which means >= 0.14.6 and < 0.15 + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + } +} + +provider "aws" { + region = var.aws_region + profile = "default" +} \ No newline at end of file diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf new file mode 100644 index 00000000..554483f3 --- /dev/null +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf @@ -0,0 +1,23 @@ +variable "aws_region" { + description = "AWS Region" + default = "eu-west-1" + type = string +} + +variable "ec2-ami_id" { + description = "EC2-Ami-ID" + default = "ami-0d1bf5b68307103c2" + type = string +} + +variable "ec2-instance-count" { + default = 1 + type = number + description = "ec2-instance-count" +} + +variable "ec2-instance-type" { + description = "EC2 Instance Type" + type = string + default = "t2.micro" +} \ No newline at end of file diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c3-security-group.tf b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c3-security-group.tf new file mode 100644 index 00000000..43b6b032 --- /dev/null +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c3-security-group.tf @@ -0,0 +1,48 @@ +resource "aws_security_group" "vpc-ssh" { + name = "vpc-ssh" + description = "Dev VPC SSH" + ingress { + description = "Allow Port 22" + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + egress { + description = "Allow all IP and Ports outbound" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } +} + +# Create Security Group - Web Traffic +resource "aws_security_group" "vpc-web" { + name = "vpc-web" + description = "Dev VPC Web" + + ingress { + description = "Allow Port 80" + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + description = "Allow Port 443" + from_port = 443 + to_port = 443 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + egress { + description = "Allow all IP and Ports outbound" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } +} \ No newline at end of file diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c4-ec2-instance.tf b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c4-ec2-instance.tf new file mode 100644 index 00000000..e537359b --- /dev/null +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c4-ec2-instance.tf @@ -0,0 +1,19 @@ +# Create EC2 Instance +resource "aws_instance" "my-ec2-vm" { + ami = var.ec2-ami_id + instance_type = var.ec2-instance-type + key_name = "AWSS3_Instance_MayurAWS1" + count = var.ec2-instance-count + user_data = <<-EOF + #!/bin/bash + sudo yum update -y + sudo yum install httpd -y + sudo systemctl enable httpd + sudo systemctl start httpd + echo "

Welcome to StackSimplify ! AWS Infra created using Terraform in us-east-1 Region

" > /var/www/html/index.html + EOF + vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] + tags = { + "Name" = "myec2vm" + } +} diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/terraform.tfvars b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/terraform.tfvars new file mode 100644 index 00000000..5ceb21db --- /dev/null +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/terraform.tfvars @@ -0,0 +1,2 @@ +ec2-instance-count = 2 +ec2-instance-type = "t2.small" \ No newline at end of file diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.tfvars b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.tfvars new file mode 100644 index 00000000..7a4f75cc --- /dev/null +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.tfvars @@ -0,0 +1,5 @@ +ec2-instance-count = 3 +ec2-instance-type = "t2.micro" + +# To use this file +#terraform plan -var-file="web.tfvars" From 0e92799c9bb0e3f2271badcc0fc27ef7722bb76b Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Mon, 11 Oct 2021 19:45:41 +0200 Subject: [PATCH 11/25] added --- .../Practice/c2-variables.tf | 27 +++++++++++++++++++ .../Practice/c4-ec2-instance.tf | 6 ++--- .../Practice/terraform.tfvars | 1 - .../Practice/web.auto.tfvars | 1 + .../Practice/web.tfvars | 2 +- 5 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.auto.tfvars diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf index 554483f3..5dcf7753 100644 --- a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf @@ -20,4 +20,31 @@ variable "ec2-instance-type" { description = "EC2 Instance Type" type = string default = "t2.micro" +} + +variable "ec2-instance-type-list" { + description = "EC2 Instance Type list" + type = list(any) + default = ["t2.micro", "t2.small", "t2.large"] +} + +variable "ec2-instance-tags-map" { + description = "EC2 Instance Tags" + type = map(string) + default = { + "Name" = "Ec2-Web" + "Tier" = "Web Tier" + } + +} + +variable "ec2-instance-type-map" { + description = "EC2 Instance Type map" + type = map(string) + default = { + "small-apps" = "t3.micro" + "medium-apps" = "t3.small" + "large-apps" = "t3.large" + } + } \ No newline at end of file diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c4-ec2-instance.tf b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c4-ec2-instance.tf index e537359b..adacaec2 100644 --- a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c4-ec2-instance.tf +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c4-ec2-instance.tf @@ -1,7 +1,7 @@ # Create EC2 Instance resource "aws_instance" "my-ec2-vm" { ami = var.ec2-ami_id - instance_type = var.ec2-instance-type + instance_type = var.ec2-instance-type-map["small-apps"] key_name = "AWSS3_Instance_MayurAWS1" count = var.ec2-instance-count user_data = <<-EOF @@ -13,7 +13,5 @@ resource "aws_instance" "my-ec2-vm" { echo "

Welcome to StackSimplify ! AWS Infra created using Terraform in us-east-1 Region

" > /var/www/html/index.html EOF vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] - tags = { - "Name" = "myec2vm" - } + tags = var.ec2-instance-tags-map } diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/terraform.tfvars b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/terraform.tfvars index 5ceb21db..83a905fc 100644 --- a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/terraform.tfvars +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/terraform.tfvars @@ -1,2 +1 @@ ec2-instance-count = 2 -ec2-instance-type = "t2.small" \ No newline at end of file diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.auto.tfvars b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.auto.tfvars new file mode 100644 index 00000000..82afe9d3 --- /dev/null +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.auto.tfvars @@ -0,0 +1 @@ +ec2-instance-count = 3 diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.tfvars b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.tfvars index 7a4f75cc..161c2fbf 100644 --- a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.tfvars +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/web.tfvars @@ -1,5 +1,5 @@ ec2-instance-count = 3 -ec2-instance-type = "t2.micro" +ec2-instance-type = "t2.micro" # To use this file #terraform plan -var-file="web.tfvars" From 69440117fb51eec2eb73536b080f404003b0d647 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Mon, 11 Oct 2021 20:52:17 +0200 Subject: [PATCH 12/25] added --- .gitignore | 1 + .../Practice/c2-variables.tf | 16 ++++++++++++++++ .../Practice/c5-rds-db.tf | 11 +++++++++++ 3 files changed, 28 insertions(+) create mode 100644 05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c5-rds-db.tf diff --git a/.gitignore b/.gitignore index 861fb3f4..c08c456e 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ *.tfstate.backup #.terraform.lock.hcl #*.tfvars +secrets.tfvars # Ignore .pem files #*.pem diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf index 5dcf7753..599767cf 100644 --- a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c2-variables.tf @@ -8,6 +8,10 @@ variable "ec2-ami_id" { description = "EC2-Ami-ID" default = "ami-0d1bf5b68307103c2" type = string + validation { + condition = length(var.ec2-ami_id) > 4 && substr(var.ec2-ami_id, 0, 4) == "ami-" + error_message = "The length should be greater than 4 and should start with ami-." + } } variable "ec2-instance-count" { @@ -47,4 +51,16 @@ variable "ec2-instance-type-map" { "large-apps" = "t3.large" } +} + +variable "db_username" { + description = "AWS RDS Database admin username" + type = string + sensitive = true +} + +variable "db_password" { + description = "AWS RDS Database admin password" + type = string + sensitive = true } \ No newline at end of file diff --git a/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c5-rds-db.tf b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c5-rds-db.tf new file mode 100644 index 00000000..e3289631 --- /dev/null +++ b/05-Terraform-Variables/05-01-Terraform-Input-Variables/Practice/c5-rds-db.tf @@ -0,0 +1,11 @@ +resource "aws_db_instance" "db1" { + allocated_storage = 5 + engine = "mysql" + engine_version = "5.7" + instance_class = "db.t2.micro" + name = "mydb1" + username = var.db_username + password = var.db_password + parameter_group_name = "default.mysql5.7" + skip_final_snapshot = true +} \ No newline at end of file From a1e940bb396d2f4ef96c25071bef17058e0769a7 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Mon, 11 Oct 2021 21:15:11 +0200 Subject: [PATCH 13/25] added --- .../Practice/.terraform.lock.hcl | 21 ++++++ .../Practice/c1-versions.tf | 14 ++++ .../Practice/c2-variables.tf | 68 +++++++++++++++++++ .../Practice/c3-security-group.tf | 48 +++++++++++++ .../Practice/c4-ec2-instance.tf | 17 +++++ .../Practice/c5-outputs.tf | 20 ++++++ .../Practice/terraform.tfvars | 1 + .../Practice/web.auto.tfvars | 1 + .../Practice/web.tfvars | 5 ++ 9 files changed, 195 insertions(+) create mode 100644 05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/.terraform.lock.hcl create mode 100644 05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c1-versions.tf create mode 100644 05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c2-variables.tf create mode 100644 05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c3-security-group.tf create mode 100644 05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c4-ec2-instance.tf create mode 100644 05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c5-outputs.tf create mode 100644 05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/terraform.tfvars create mode 100644 05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.auto.tfvars create mode 100644 05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.tfvars diff --git a/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/.terraform.lock.hcl b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/.terraform.lock.hcl new file mode 100644 index 00000000..af6a3745 --- /dev/null +++ b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.62.0" + constraints = "~> 3.0" + hashes = [ + "h1:eXmZtLWeH/OdYSjzFQ2rO/3TNskq4h+0xAaxRmBrSwg=", + "zh:08a94019e17304f5927d7c85b8f5dade6b9ffebeb7b06ec0643aaa1130c4c85d", + "zh:0e3709f6c1fed8c5119a5653bec7e3069258ddf91f62d851f8deeede10487fb8", + "zh:0ed32886abce5fee49f1ae49b84472558224366c31a638e51c63061c3126e7c2", + "zh:0f1ecbeddfa61d87701a3f3b463e508773171981bf6dad8b1313a9eafaffd5e1", + "zh:724cde4f27253b547714a606288ede17f5df67f430438478feed113d7acb5ac7", + "zh:81e6e751a168eab1a054230d4441b43c68693bfb6e0545536f2ea6dbb39fe9af", + "zh:84deaf1c6661ba0dbc07ac159109fb6746772476646d39854c755c8dfb7a8ac4", + "zh:909dcefc6c986c926ad856662ab5d38a3988b1906569387b5b58e7ddd89a155c", + "zh:d03886705e9f25d4bebeae115bb07e36adb14e778859cedb2bf3c3bed39f4d2b", + "zh:de9fc80c5a5d3be7535856242c823a92516eb7d5c16ae509fa10b92cd6b3fa9b", + "zh:e91dcd9eec8b779a9b089f2f8d45f1047f890cb7b9241490451da52c04cef63d", + ] +} diff --git a/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c1-versions.tf b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c1-versions.tf new file mode 100644 index 00000000..e01782aa --- /dev/null +++ b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c1-versions.tf @@ -0,0 +1,14 @@ +terraform { + required_version = "~> 1.0.0" # which means >= 0.14.6 and < 0.15 + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + } +} + +provider "aws" { + region = var.aws_region + profile = "default" +} \ No newline at end of file diff --git a/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c2-variables.tf b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c2-variables.tf new file mode 100644 index 00000000..f1c8841c --- /dev/null +++ b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c2-variables.tf @@ -0,0 +1,68 @@ +variable "aws_region" { + description = "AWS Region" + default = "eu-west-1" + type = string +} + +variable "ec2-ami_id" { + description = "EC2-Ami-ID" + default = "ami-0d1bf5b68307103c2" + type = string + validation { + condition = length(var.ec2-ami_id) > 4 && substr(var.ec2-ami_id, 0, 4) == "ami-" + error_message = "The length should be greater than 4 and should start with ami-." + } +} + +variable "ec2-instance-count" { + default = 1 + type = number + description = "ec2-instance-count" +} + +variable "ec2-instance-type" { + description = "EC2 Instance Type" + type = string + default = "t2.micro" +} + +variable "ec2-instance-type-list" { + description = "EC2 Instance Type list" + type = list(any) + default = ["t2.micro", "t2.small", "t2.large"] +} + +variable "ec2-instance-tags-map" { + description = "EC2 Instance Tags" + type = map(string) + default = { + "Name" = "Ec2-Web" + "Tier" = "Web Tier" + } + +} + +variable "ec2-instance-type-map" { + description = "EC2 Instance Type map" + type = map(string) + default = { + "small-apps" = "t3.micro" + "medium-apps" = "t3.small" + "large-apps" = "t3.large" + } + +} + +/* +variable "db_username" { + description = "AWS RDS Database admin username" + type = string + sensitive = true +} + +variable "db_password" { + description = "AWS RDS Database admin password" + type = string + sensitive = true +} +*/ \ No newline at end of file diff --git a/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c3-security-group.tf b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c3-security-group.tf new file mode 100644 index 00000000..43b6b032 --- /dev/null +++ b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c3-security-group.tf @@ -0,0 +1,48 @@ +resource "aws_security_group" "vpc-ssh" { + name = "vpc-ssh" + description = "Dev VPC SSH" + ingress { + description = "Allow Port 22" + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + egress { + description = "Allow all IP and Ports outbound" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } +} + +# Create Security Group - Web Traffic +resource "aws_security_group" "vpc-web" { + name = "vpc-web" + description = "Dev VPC Web" + + ingress { + description = "Allow Port 80" + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + description = "Allow Port 443" + from_port = 443 + to_port = 443 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + egress { + description = "Allow all IP and Ports outbound" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } +} \ No newline at end of file diff --git a/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c4-ec2-instance.tf b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c4-ec2-instance.tf new file mode 100644 index 00000000..c293431b --- /dev/null +++ b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c4-ec2-instance.tf @@ -0,0 +1,17 @@ +# Create EC2 Instance +resource "aws_instance" "my-ec2-vm" { + ami = var.ec2-ami_id + instance_type = var.ec2-instance-type-map["small-apps"] + key_name = "AWSS3_Instance_MayurAWS1" + #count = var.ec2-instance-count + user_data = <<-EOF + #!/bin/bash + sudo yum update -y + sudo yum install httpd -y + sudo systemctl enable httpd + sudo systemctl start httpd + echo "

Welcome to StackSimplify ! AWS Infra created using Terraform in us-east-1 Region

" > /var/www/html/index.html + EOF + vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] + tags = var.ec2-instance-tags-map +} diff --git a/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c5-outputs.tf b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c5-outputs.tf new file mode 100644 index 00000000..2e4938e5 --- /dev/null +++ b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/c5-outputs.tf @@ -0,0 +1,20 @@ +output "EC2-Instance-Public-IP" { + description = "EC2 Instacne Public IP" + value = aws_instance.my-ec2-vm.public_ip +} + +output "EC2-Intance-Private-IP" { + description = "EC2 Instance Private IP" + value = aws_instance.my-ec2-vm.private_ip +} + +output "EC2-Instance-Security-Groups" { + description = "EC2 Instance Security Groups" + value = aws_instance.my-ec2-vm.security_groups +} + +output "EC2-Public-DNS" { + description = "Public DNS URL of EC2 Instance" + value = "https://${aws_instance.my-ec2-vm.public_dns}" + +} \ No newline at end of file diff --git a/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/terraform.tfvars b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/terraform.tfvars new file mode 100644 index 00000000..ae404890 --- /dev/null +++ b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/terraform.tfvars @@ -0,0 +1 @@ +ec2-instance-count = 1 diff --git a/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.auto.tfvars b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.auto.tfvars new file mode 100644 index 00000000..72437c1c --- /dev/null +++ b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.auto.tfvars @@ -0,0 +1 @@ +ec2-instance-count = 1 \ No newline at end of file diff --git a/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.tfvars b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.tfvars new file mode 100644 index 00000000..161c2fbf --- /dev/null +++ b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.tfvars @@ -0,0 +1,5 @@ +ec2-instance-count = 3 +ec2-instance-type = "t2.micro" + +# To use this file +#terraform plan -var-file="web.tfvars" From 4bfeda7d02c7d800b1aa155709fc32d03cbd11dc Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Mon, 11 Oct 2021 21:15:48 +0200 Subject: [PATCH 14/25] added --- .../05-02-Terraform-Output-Values/Practice/web.tfvars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.tfvars b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.tfvars index 161c2fbf..c1587740 100644 --- a/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.tfvars +++ b/05-Terraform-Variables/05-02-Terraform-Output-Values/Practice/web.tfvars @@ -1,4 +1,4 @@ -ec2-instance-count = 3 +ec2-instance-count = 1 ec2-instance-type = "t2.micro" # To use this file From 43071b4a56b21346d48af2d0a3c062926cb85e4b Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Mon, 11 Oct 2021 21:22:30 +0200 Subject: [PATCH 15/25] added --- .../terraform-manifests/.terraform.lock.hcl | 21 +++++++++++++++++++ .../terraform-manifests/c1-versions.tf | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 05-Terraform-Variables/05-03-Terraform-Local-Values/terraform-manifests/.terraform.lock.hcl diff --git a/05-Terraform-Variables/05-03-Terraform-Local-Values/terraform-manifests/.terraform.lock.hcl b/05-Terraform-Variables/05-03-Terraform-Local-Values/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..af6a3745 --- /dev/null +++ b/05-Terraform-Variables/05-03-Terraform-Local-Values/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.62.0" + constraints = "~> 3.0" + hashes = [ + "h1:eXmZtLWeH/OdYSjzFQ2rO/3TNskq4h+0xAaxRmBrSwg=", + "zh:08a94019e17304f5927d7c85b8f5dade6b9ffebeb7b06ec0643aaa1130c4c85d", + "zh:0e3709f6c1fed8c5119a5653bec7e3069258ddf91f62d851f8deeede10487fb8", + "zh:0ed32886abce5fee49f1ae49b84472558224366c31a638e51c63061c3126e7c2", + "zh:0f1ecbeddfa61d87701a3f3b463e508773171981bf6dad8b1313a9eafaffd5e1", + "zh:724cde4f27253b547714a606288ede17f5df67f430438478feed113d7acb5ac7", + "zh:81e6e751a168eab1a054230d4441b43c68693bfb6e0545536f2ea6dbb39fe9af", + "zh:84deaf1c6661ba0dbc07ac159109fb6746772476646d39854c755c8dfb7a8ac4", + "zh:909dcefc6c986c926ad856662ab5d38a3988b1906569387b5b58e7ddd89a155c", + "zh:d03886705e9f25d4bebeae115bb07e36adb14e778859cedb2bf3c3bed39f4d2b", + "zh:de9fc80c5a5d3be7535856242c823a92516eb7d5c16ae509fa10b92cd6b3fa9b", + "zh:e91dcd9eec8b779a9b089f2f8d45f1047f890cb7b9241490451da52c04cef63d", + ] +} diff --git a/05-Terraform-Variables/05-03-Terraform-Local-Values/terraform-manifests/c1-versions.tf b/05-Terraform-Variables/05-03-Terraform-Local-Values/terraform-manifests/c1-versions.tf index a305835c..3e990a7f 100644 --- a/05-Terraform-Variables/05-03-Terraform-Local-Values/terraform-manifests/c1-versions.tf +++ b/05-Terraform-Variables/05-03-Terraform-Local-Values/terraform-manifests/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx required_providers { aws = { source = "hashicorp/aws" From 33ba5234383ef51f34ff4e88e08d3d1de1ae20aa Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Tue, 12 Oct 2021 20:51:18 +0200 Subject: [PATCH 16/25] addeD --- .../terraform-manifests/.terraform.lock.hcl | 21 +++++++++++++++ .../terraform-manifests/c1-versions.tf | 2 +- .../terraform-manifests/c2-variables.tf | 2 +- .../terraform-manifests/c4-ec2-instance.tf | 4 +-- .../terraform-manifests/c6-ami-datasource.tf | 26 ++++++++++++++++++- 5 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 06-Terraform-Datasources/terraform-manifests/.terraform.lock.hcl diff --git a/06-Terraform-Datasources/terraform-manifests/.terraform.lock.hcl b/06-Terraform-Datasources/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..af6a3745 --- /dev/null +++ b/06-Terraform-Datasources/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.62.0" + constraints = "~> 3.0" + hashes = [ + "h1:eXmZtLWeH/OdYSjzFQ2rO/3TNskq4h+0xAaxRmBrSwg=", + "zh:08a94019e17304f5927d7c85b8f5dade6b9ffebeb7b06ec0643aaa1130c4c85d", + "zh:0e3709f6c1fed8c5119a5653bec7e3069258ddf91f62d851f8deeede10487fb8", + "zh:0ed32886abce5fee49f1ae49b84472558224366c31a638e51c63061c3126e7c2", + "zh:0f1ecbeddfa61d87701a3f3b463e508773171981bf6dad8b1313a9eafaffd5e1", + "zh:724cde4f27253b547714a606288ede17f5df67f430438478feed113d7acb5ac7", + "zh:81e6e751a168eab1a054230d4441b43c68693bfb6e0545536f2ea6dbb39fe9af", + "zh:84deaf1c6661ba0dbc07ac159109fb6746772476646d39854c755c8dfb7a8ac4", + "zh:909dcefc6c986c926ad856662ab5d38a3988b1906569387b5b58e7ddd89a155c", + "zh:d03886705e9f25d4bebeae115bb07e36adb14e778859cedb2bf3c3bed39f4d2b", + "zh:de9fc80c5a5d3be7535856242c823a92516eb7d5c16ae509fa10b92cd6b3fa9b", + "zh:e91dcd9eec8b779a9b089f2f8d45f1047f890cb7b9241490451da52c04cef63d", + ] +} diff --git a/06-Terraform-Datasources/terraform-manifests/c1-versions.tf b/06-Terraform-Datasources/terraform-manifests/c1-versions.tf index a305835c..3e990a7f 100644 --- a/06-Terraform-Datasources/terraform-manifests/c1-versions.tf +++ b/06-Terraform-Datasources/terraform-manifests/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx required_providers { aws = { source = "hashicorp/aws" diff --git a/06-Terraform-Datasources/terraform-manifests/c2-variables.tf b/06-Terraform-Datasources/terraform-manifests/c2-variables.tf index 02504d42..bb4dee92 100644 --- a/06-Terraform-Datasources/terraform-manifests/c2-variables.tf +++ b/06-Terraform-Datasources/terraform-manifests/c2-variables.tf @@ -2,7 +2,7 @@ variable "aws_region" { description = "Region in which AWS Resources to be created" type = string - default = "us-east-1" + default = "eu-west-1" } /* diff --git a/06-Terraform-Datasources/terraform-manifests/c4-ec2-instance.tf b/06-Terraform-Datasources/terraform-manifests/c4-ec2-instance.tf index 1ff6a348..de8f5aa3 100644 --- a/06-Terraform-Datasources/terraform-manifests/c4-ec2-instance.tf +++ b/06-Terraform-Datasources/terraform-manifests/c4-ec2-instance.tf @@ -1,8 +1,8 @@ # Create EC2 Instance - Amazon Linux resource "aws_instance" "my-ec2-vm" { - ami = data.aws_ami.amzlinux.id + ami = data.aws_ami.amzlinux1.id instance_type = var.ec2_instance_type - key_name = "terraform-key" + key_name = "AWSS3_Instance_MayurAWS1" user_data = file("apache-install.sh") vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] tags = { diff --git a/06-Terraform-Datasources/terraform-manifests/c6-ami-datasource.tf b/06-Terraform-Datasources/terraform-manifests/c6-ami-datasource.tf index 4d0a0102..45359d88 100644 --- a/06-Terraform-Datasources/terraform-manifests/c6-ami-datasource.tf +++ b/06-Terraform-Datasources/terraform-manifests/c6-ami-datasource.tf @@ -18,4 +18,28 @@ data "aws_ami" "amzlinux" { name = "architecture" values = [ "x86_64" ] } -} \ No newline at end of file +} + + +data "aws_ami" "amzlinux1" { + most_recent = true + owners = ["amazon"] + filter { + name = "name" + values = ["amzn2-ami-hvm-*-gp2"] + } + + filter { + name = "root-device-type" + values = [ "ebs" ] + } + filter { + name = "virtualization-type" + values = [ "hvm" ] + } + filter { + name = "architecture" + values = [ "x86_64" ] + } +} + From 35874f497084fd0797145b18ab63f6ce683c62a9 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Wed, 13 Oct 2021 20:18:57 +0200 Subject: [PATCH 17/25] added --- .../Practice/.terraform.lock.hcl | 21 ++++++++ .../Practice/apache-install.sh | 6 +++ .../Practice/c1-versions.tf | 29 +++++++++++ .../Practice/c2-variables.tf | 22 +++++++++ .../Practice/c3-security-groups.tf | 49 +++++++++++++++++++ .../Practice/c4-ec2-instance.tf | 15 ++++++ .../Practice/c5-outputs.tf | 13 +++++ .../Practice/c6-ami-datasource.tf | 45 +++++++++++++++++ 8 files changed, 200 insertions(+) create mode 100644 07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/.terraform.lock.hcl create mode 100644 07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/apache-install.sh create mode 100644 07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c1-versions.tf create mode 100644 07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c2-variables.tf create mode 100644 07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c3-security-groups.tf create mode 100644 07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c4-ec2-instance.tf create mode 100644 07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c5-outputs.tf create mode 100644 07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c6-ami-datasource.tf diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/.terraform.lock.hcl b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/.terraform.lock.hcl new file mode 100644 index 00000000..af6a3745 --- /dev/null +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.62.0" + constraints = "~> 3.0" + hashes = [ + "h1:eXmZtLWeH/OdYSjzFQ2rO/3TNskq4h+0xAaxRmBrSwg=", + "zh:08a94019e17304f5927d7c85b8f5dade6b9ffebeb7b06ec0643aaa1130c4c85d", + "zh:0e3709f6c1fed8c5119a5653bec7e3069258ddf91f62d851f8deeede10487fb8", + "zh:0ed32886abce5fee49f1ae49b84472558224366c31a638e51c63061c3126e7c2", + "zh:0f1ecbeddfa61d87701a3f3b463e508773171981bf6dad8b1313a9eafaffd5e1", + "zh:724cde4f27253b547714a606288ede17f5df67f430438478feed113d7acb5ac7", + "zh:81e6e751a168eab1a054230d4441b43c68693bfb6e0545536f2ea6dbb39fe9af", + "zh:84deaf1c6661ba0dbc07ac159109fb6746772476646d39854c755c8dfb7a8ac4", + "zh:909dcefc6c986c926ad856662ab5d38a3988b1906569387b5b58e7ddd89a155c", + "zh:d03886705e9f25d4bebeae115bb07e36adb14e778859cedb2bf3c3bed39f4d2b", + "zh:de9fc80c5a5d3be7535856242c823a92516eb7d5c16ae509fa10b92cd6b3fa9b", + "zh:e91dcd9eec8b779a9b089f2f8d45f1047f890cb7b9241490451da52c04cef63d", + ] +} diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/apache-install.sh b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/apache-install.sh new file mode 100644 index 00000000..8362972b --- /dev/null +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/apache-install.sh @@ -0,0 +1,6 @@ +#! /bin/bash +sudo yum update -y +sudo yum install -y httpd +sudo systemctl enable httpd +sudo service httpd start +echo "

Welcome to StackSimplify ! AWS Infra created using Terraform in us-east-1 Region

" | sudo tee /var/www/html/index.html \ No newline at end of file diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c1-versions.tf b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c1-versions.tf new file mode 100644 index 00000000..e8bb466e --- /dev/null +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c1-versions.tf @@ -0,0 +1,29 @@ +# Terraform Block +terraform { + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + } + + backend "s3" { + bucket = "testbucketofmayur" + key = "terraform/dev/terraform.tfstate" + region = "eu-west-1" + dynamodb_table = "terraform-dev-state-table" + } + +} + +# Provider Block +provider "aws" { + region = var.aws_region + profile = "default" +} +/* +Note-1: AWS Credentials Profile (profile = "default") configured on your local desktop terminal +$HOME/.aws/credentials +*/ + diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c2-variables.tf b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c2-variables.tf new file mode 100644 index 00000000..7c79327e --- /dev/null +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c2-variables.tf @@ -0,0 +1,22 @@ +# Input Variables +variable "aws_region" { + description = "Region in which AWS Resources to be created" + type = string + default = "eu-west-1" +} + +/* +# Commented as we are going to get AMI ID from Datasource aws_ami +variable "ec2_ami_id" { + description = "AMI ID" + type = string + default = "ami-0915bcb5fa77e4892" +} +*/ + +variable "ec2_instance_type" { + description = "EC2 Instance Type" + type = string + default = "t2.micro" +} + diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c3-security-groups.tf b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c3-security-groups.tf new file mode 100644 index 00000000..1ca810d6 --- /dev/null +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c3-security-groups.tf @@ -0,0 +1,49 @@ +# Create Security Group - SSH Traffic +resource "aws_security_group" "vpc-ssh" { + name = "vpc-ssh" + description = "Dev VPC SSH" + ingress { + description = "Allow Port 22" + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + egress { + description = "Allow all ip and ports outboun" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } +} + +# Create Security Group - Web Traffic +resource "aws_security_group" "vpc-web" { + name = "vpc-web" + description = "Dev VPC web" + ingress { + description = "Allow Port 80" + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + description = "Allow Port 443" + from_port = 443 + to_port = 443 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + egress { + description = "Allow all ip and ports outbound" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } + +} \ No newline at end of file diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c4-ec2-instance.tf b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c4-ec2-instance.tf new file mode 100644 index 00000000..0caf0067 --- /dev/null +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c4-ec2-instance.tf @@ -0,0 +1,15 @@ +# Create EC2 Instance - Amazon Linux +resource "aws_instance" "my-ec2-vm" { + ami = data.aws_ami.amzlinux1.id + instance_type = var.ec2_instance_type + key_name = "AWSS3_Instance_MayurAWS1" + user_data = file("apache-install.sh") + vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] + tags = { + "Name" = "amz-linux-vm" + } +} + + + + diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c5-outputs.tf b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c5-outputs.tf new file mode 100644 index 00000000..12d2e389 --- /dev/null +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c5-outputs.tf @@ -0,0 +1,13 @@ +# Define Output Values + +# Attribute Reference +output "ec2_instance_publicip" { + description = "EC2 Instance Public IP" + value = aws_instance.my-ec2-vm.public_ip +} + +# Attribute Reference - Create Public DNS URL +output "ec2_publicdns" { + description = "Public DNS URL of an EC2 Instance" + value = aws_instance.my-ec2-vm.public_dns +} diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c6-ami-datasource.tf b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c6-ami-datasource.tf new file mode 100644 index 00000000..7c0eab9f --- /dev/null +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c6-ami-datasource.tf @@ -0,0 +1,45 @@ +# Get latest AMI ID for Amazon Linux2 OS +data "aws_ami" "amzlinux" { + most_recent = true + owners = ["amazon"] + filter { + name = "name" + values = ["amzn2-ami-hvm-*-gp2"] + } + filter { + name = "root-device-type" + values = ["ebs"] + } + filter { + name = "virtualization-type" + values = ["hvm"] + } + filter { + name = "architecture" + values = ["x86_64"] + } +} + + +data "aws_ami" "amzlinux1" { + most_recent = true + owners = ["amazon"] + filter { + name = "name" + values = ["amzn2-ami-hvm-*-gp2"] + } + + filter { + name = "root-device-type" + values = ["ebs"] + } + filter { + name = "virtualization-type" + values = ["hvm"] + } + filter { + name = "architecture" + values = ["x86_64"] + } +} + From b4fc8dd1935bf26463530d10123eb5648028d10b Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Wed, 13 Oct 2021 21:10:36 +0200 Subject: [PATCH 18/25] added --- .../Practice/apache-install.sh | 2 +- .../Practice/c3-security-groups.tf | 8 ++++++++ .../Practice/c4-ec2-instance.tf | 5 ++--- .../Practice/c5-outputs.tf | 4 ++-- .../Practice/v1plan.out | Bin 0 -> 10172 bytes 5 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/v1plan.out diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/apache-install.sh b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/apache-install.sh index 8362972b..709bbff1 100644 --- a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/apache-install.sh +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/apache-install.sh @@ -3,4 +3,4 @@ sudo yum update -y sudo yum install -y httpd sudo systemctl enable httpd sudo service httpd start -echo "

Welcome to StackSimplify ! AWS Infra created using Terraform in us-east-1 Region

" | sudo tee /var/www/html/index.html \ No newline at end of file +echo "

Welcome to StackSimplify ! AWS Infra created using Terraform in eu-west-1 Region

" | sudo tee /var/www/html/index.html \ No newline at end of file diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c3-security-groups.tf b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c3-security-groups.tf index 1ca810d6..01affa0e 100644 --- a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c3-security-groups.tf +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c3-security-groups.tf @@ -46,4 +46,12 @@ resource "aws_security_group" "vpc-web" { cidr_blocks = ["0.0.0.0/0"] } + ingress { + description = "Allow Port 8080" + from_port = 8080 + to_port = 8080 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + } \ No newline at end of file diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c4-ec2-instance.tf b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c4-ec2-instance.tf index 0caf0067..5b01eb5c 100644 --- a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c4-ec2-instance.tf +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c4-ec2-instance.tf @@ -1,5 +1,5 @@ # Create EC2 Instance - Amazon Linux -resource "aws_instance" "my-ec2-vm" { +resource "aws_instance" "my-ec2-vm-new" { ami = data.aws_ami.amzlinux1.id instance_type = var.ec2_instance_type key_name = "AWSS3_Instance_MayurAWS1" @@ -7,9 +7,8 @@ resource "aws_instance" "my-ec2-vm" { vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] tags = { "Name" = "amz-linux-vm" + "target" = "Target Test1" } } - - diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c5-outputs.tf b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c5-outputs.tf index 12d2e389..aedc973f 100644 --- a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c5-outputs.tf +++ b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/c5-outputs.tf @@ -3,11 +3,11 @@ # Attribute Reference output "ec2_instance_publicip" { description = "EC2 Instance Public IP" - value = aws_instance.my-ec2-vm.public_ip + value = aws_instance.my-ec2-vm-new.public_ip } # Attribute Reference - Create Public DNS URL output "ec2_publicdns" { description = "Public DNS URL of an EC2 Instance" - value = aws_instance.my-ec2-vm.public_dns + value = aws_instance.my-ec2-vm-new.public_dns } diff --git a/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/v1plan.out b/07-Terraform-State/07-01-Terraform-Remote-State-Storage-and-Locking/Practice/v1plan.out new file mode 100644 index 0000000000000000000000000000000000000000..bdbc12092e2d69f952f3aab0b471be8b3ad91311 GIT binary patch literal 10172 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 O1NM Date: Tue, 19 Oct 2021 20:00:30 +0200 Subject: [PATCH 19/25] added --- .../v1-local-backend/.terraform.lock.hcl | 21 +++++++++++++++++++ .../v1-local-backend/c1-versions.tf | 2 +- .../v1-local-backend/c2-variables.tf | 2 +- .../v1-local-backend/c4-ec2-instance.tf | 4 ++-- .../v2-remote-backend/.terraform.lock.hcl | 21 +++++++++++++++++++ .../v2-remote-backend/c1-versions.tf | 14 ++++++------- .../v2-remote-backend/c2-variables.tf | 2 +- .../v2-remote-backend/c4-ec2-instance.tf | 4 ++-- 8 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 08-Terraform-Workspaces/v1-local-backend/.terraform.lock.hcl create mode 100644 08-Terraform-Workspaces/v2-remote-backend/.terraform.lock.hcl diff --git a/08-Terraform-Workspaces/v1-local-backend/.terraform.lock.hcl b/08-Terraform-Workspaces/v1-local-backend/.terraform.lock.hcl new file mode 100644 index 00000000..208a723b --- /dev/null +++ b/08-Terraform-Workspaces/v1-local-backend/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} diff --git a/08-Terraform-Workspaces/v1-local-backend/c1-versions.tf b/08-Terraform-Workspaces/v1-local-backend/c1-versions.tf index a305835c..3e990a7f 100644 --- a/08-Terraform-Workspaces/v1-local-backend/c1-versions.tf +++ b/08-Terraform-Workspaces/v1-local-backend/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx required_providers { aws = { source = "hashicorp/aws" diff --git a/08-Terraform-Workspaces/v1-local-backend/c2-variables.tf b/08-Terraform-Workspaces/v1-local-backend/c2-variables.tf index f55f87b6..7b53081c 100644 --- a/08-Terraform-Workspaces/v1-local-backend/c2-variables.tf +++ b/08-Terraform-Workspaces/v1-local-backend/c2-variables.tf @@ -2,7 +2,7 @@ variable "aws_region" { description = "Region in which AWS Resources to be created" type = string - default = "us-east-1" + default = "eu-west-1" } variable "instance_type" { diff --git a/08-Terraform-Workspaces/v1-local-backend/c4-ec2-instance.tf b/08-Terraform-Workspaces/v1-local-backend/c4-ec2-instance.tf index 458caf16..d8d9d3f5 100644 --- a/08-Terraform-Workspaces/v1-local-backend/c4-ec2-instance.tf +++ b/08-Terraform-Workspaces/v1-local-backend/c4-ec2-instance.tf @@ -2,12 +2,12 @@ resource "aws_instance" "my-ec2-vm" { ami = data.aws_ami.amzlinux.id instance_type = var.instance_type - key_name = "terraform-key" + key_name = "AWSS3_Instance_MayurAWS1" count = terraform.workspace == "default" ? 2 : 1 user_data = file("apache-install.sh") vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] tags = { - "Name" = "vm-${terraform.workspace}-${count.index}" + "Name" = terraform.workspace == "default" ? "vm-${count.index}" : "vm-${terraform.workspace}-${count.index}" } } diff --git a/08-Terraform-Workspaces/v2-remote-backend/.terraform.lock.hcl b/08-Terraform-Workspaces/v2-remote-backend/.terraform.lock.hcl new file mode 100644 index 00000000..208a723b --- /dev/null +++ b/08-Terraform-Workspaces/v2-remote-backend/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} diff --git a/08-Terraform-Workspaces/v2-remote-backend/c1-versions.tf b/08-Terraform-Workspaces/v2-remote-backend/c1-versions.tf index b7e50ad0..116c3d62 100644 --- a/08-Terraform-Workspaces/v2-remote-backend/c1-versions.tf +++ b/08-Terraform-Workspaces/v2-remote-backend/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx required_providers { aws = { source = "hashicorp/aws" @@ -8,13 +8,11 @@ terraform { } } # Adding Backend as S3 for Remote State Storage - backend "s3" { - bucket = "terraform-stacksimplify" - key = "workspaces/terraform.tfstate" - region = "us-east-1" - - # For State Locking - dynamodb_table = "terraform-dev-state-table" + backend "s3" { + bucket = "testbucketofmayur" + key = "terraform/dev/workspaces/terraform.tfstate" + region = "eu-west-1" + dynamodb_table = "terraform-dev-state-table" } } diff --git a/08-Terraform-Workspaces/v2-remote-backend/c2-variables.tf b/08-Terraform-Workspaces/v2-remote-backend/c2-variables.tf index f55f87b6..7b53081c 100644 --- a/08-Terraform-Workspaces/v2-remote-backend/c2-variables.tf +++ b/08-Terraform-Workspaces/v2-remote-backend/c2-variables.tf @@ -2,7 +2,7 @@ variable "aws_region" { description = "Region in which AWS Resources to be created" type = string - default = "us-east-1" + default = "eu-west-1" } variable "instance_type" { diff --git a/08-Terraform-Workspaces/v2-remote-backend/c4-ec2-instance.tf b/08-Terraform-Workspaces/v2-remote-backend/c4-ec2-instance.tf index 458caf16..2de71210 100644 --- a/08-Terraform-Workspaces/v2-remote-backend/c4-ec2-instance.tf +++ b/08-Terraform-Workspaces/v2-remote-backend/c4-ec2-instance.tf @@ -2,12 +2,12 @@ resource "aws_instance" "my-ec2-vm" { ami = data.aws_ami.amzlinux.id instance_type = var.instance_type - key_name = "terraform-key" + key_name = "AWSS3_Instance_MayurAWS1" count = terraform.workspace == "default" ? 2 : 1 user_data = file("apache-install.sh") vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] tags = { - "Name" = "vm-${terraform.workspace}-${count.index}" + "Name" = terraform.workspace == "default" ? "vm-${count.index}" : "vm-${terraform.workspace}-${count.index}" } } From cbf1e4a1f26aa5c4d1a859aa3809bec6883fe0ac Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Sat, 23 Oct 2021 18:45:58 +0200 Subject: [PATCH 20/25] Added --- .../terraform-manifests/.terraform.lock.hcl | 21 +++++++ .../terraform-manifests/c1-versions.tf | 2 +- .../terraform-manifests/c2-variables.tf | 2 +- .../terraform-manifests/c4-ec2-instance.tf | 8 ++- .../private-key/terraform-key.pem | 50 ++++++++-------- .../terraform-manifests/.terraform.lock.hcl | 21 +++++++ .../terraform-manifests/c1-versions.tf | 2 +- .../terraform-manifests/c2-variables.tf | 2 +- .../terraform-manifests/c4-ec2-instance.tf | 2 +- .../private-key/terraform-key.pem | 50 ++++++++-------- .../terraform-manifests/.terraform.lock.hcl | 21 +++++++ .../terraform-manifests/c1-versions.tf | 2 +- .../terraform-manifests/c2-variables.tf | 2 +- .../terraform-manifests/c4-ec2-instance.tf | 2 +- .../creation-time-private-ip.txt | 1 + .../local-exec-output-files/destroy-time.txt | 1 + .../private-key/terraform-key.pem | 50 ++++++++-------- .../terraform-manifests/.terraform.lock.hcl | 57 +++++++++++++++++++ .../terraform-manifests/c1-versions.tf | 2 +- .../terraform-manifests/c2-variables.tf | 2 +- .../terraform-manifests/c4-ec2-instance.tf | 4 +- .../private-key/terraform-key.pem | 50 ++++++++-------- 22 files changed, 241 insertions(+), 113 deletions(-) create mode 100644 09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/.terraform.lock.hcl create mode 100644 09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/.terraform.lock.hcl create mode 100644 09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/.terraform.lock.hcl create mode 100644 09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/local-exec-output-files/creation-time-private-ip.txt create mode 100644 09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/local-exec-output-files/destroy-time.txt create mode 100644 09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/.terraform.lock.hcl diff --git a/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/.terraform.lock.hcl b/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..208a723b --- /dev/null +++ b/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} diff --git a/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c1-versions.tf b/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c1-versions.tf index a305835c..3e990a7f 100644 --- a/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c1-versions.tf +++ b/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx required_providers { aws = { source = "hashicorp/aws" diff --git a/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c2-variables.tf b/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c2-variables.tf index f55f87b6..7b53081c 100644 --- a/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c2-variables.tf +++ b/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c2-variables.tf @@ -2,7 +2,7 @@ variable "aws_region" { description = "Region in which AWS Resources to be created" type = string - default = "us-east-1" + default = "eu-west-1" } variable "instance_type" { diff --git a/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c4-ec2-instance.tf b/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c4-ec2-instance.tf index 0770ed1a..ecc5af86 100644 --- a/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c4-ec2-instance.tf +++ b/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/c4-ec2-instance.tf @@ -2,7 +2,7 @@ resource "aws_instance" "my-ec2-vm" { ami = data.aws_ami.amzlinux.id instance_type = var.instance_type - key_name = "terraform-key" + key_name = "AWS-S3-Mayur-Key2" #count = terraform.workspace == "default" ? 1 : 1 user_data = file("apache-install.sh") vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] @@ -43,6 +43,12 @@ resource "aws_instance" "my-ec2-vm" { destination = "/tmp" } + provisioner "file" { + source = "apps/file-copy.html" # when "/" at the end is added - CONTENTS of FOLDER WILL BE COPIED + destination = "/var/www/html/file-copy.html" + on_failure = continue + } + /* # Enable this during Section 09-01 Step-05 diff --git a/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/private-key/terraform-key.pem b/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/private-key/terraform-key.pem index fab1eb2a..3f034bb4 100644 --- a/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/private-key/terraform-key.pem +++ b/09-Terraform-Provisioners/09-01-File-Provisioner/terraform-manifests/private-key/terraform-key.pem @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/.terraform.lock.hcl b/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..208a723b --- /dev/null +++ b/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} diff --git a/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c1-versions.tf b/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c1-versions.tf index a305835c..3e990a7f 100644 --- a/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c1-versions.tf +++ b/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx required_providers { aws = { source = "hashicorp/aws" diff --git a/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c2-variables.tf b/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c2-variables.tf index f55f87b6..7b53081c 100644 --- a/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c2-variables.tf +++ b/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c2-variables.tf @@ -2,7 +2,7 @@ variable "aws_region" { description = "Region in which AWS Resources to be created" type = string - default = "us-east-1" + default = "eu-west-1" } variable "instance_type" { diff --git a/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c4-ec2-instance.tf b/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c4-ec2-instance.tf index b70cf60c..a04fdcdf 100644 --- a/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c4-ec2-instance.tf +++ b/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/c4-ec2-instance.tf @@ -2,7 +2,7 @@ resource "aws_instance" "my-ec2-vm" { ami = data.aws_ami.amzlinux.id instance_type = var.instance_type - key_name = "terraform-key" + key_name = "AWS-S3-Mayur-Key2" #count = terraform.workspace == "default" ? 1 : 1 user_data = file("apache-install.sh") vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] diff --git a/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/private-key/terraform-key.pem b/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/private-key/terraform-key.pem index fab1eb2a..3f034bb4 100644 --- a/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/private-key/terraform-key.pem +++ b/09-Terraform-Provisioners/09-02-remote-exec-provisioner/terraform-manifests/private-key/terraform-key.pem @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/.terraform.lock.hcl b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..208a723b --- /dev/null +++ b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} diff --git a/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c1-versions.tf b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c1-versions.tf index a305835c..3e990a7f 100644 --- a/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c1-versions.tf +++ b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx required_providers { aws = { source = "hashicorp/aws" diff --git a/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c2-variables.tf b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c2-variables.tf index f55f87b6..7b53081c 100644 --- a/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c2-variables.tf +++ b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c2-variables.tf @@ -2,7 +2,7 @@ variable "aws_region" { description = "Region in which AWS Resources to be created" type = string - default = "us-east-1" + default = "eu-west-1" } variable "instance_type" { diff --git a/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c4-ec2-instance.tf b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c4-ec2-instance.tf index 99e22323..7cc81edb 100644 --- a/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c4-ec2-instance.tf +++ b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/c4-ec2-instance.tf @@ -2,7 +2,7 @@ resource "aws_instance" "my-ec2-vm" { ami = data.aws_ami.amzlinux.id instance_type = var.instance_type - key_name = "terraform-key" + key_name = "AWS-S3-Mayur-Key2" #count = terraform.workspace == "default" ? 1 : 1 user_data = file("apache-install.sh") vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] diff --git a/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/local-exec-output-files/creation-time-private-ip.txt b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/local-exec-output-files/creation-time-private-ip.txt new file mode 100644 index 00000000..c8927920 --- /dev/null +++ b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/local-exec-output-files/creation-time-private-ip.txt @@ -0,0 +1 @@ +172.31.25.122 diff --git a/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/local-exec-output-files/destroy-time.txt b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/local-exec-output-files/destroy-time.txt new file mode 100644 index 00000000..d3e08e84 --- /dev/null +++ b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/local-exec-output-files/destroy-time.txt @@ -0,0 +1 @@ +Destroy-time provisioner Instanace Destroyed at `date` diff --git a/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/private-key/terraform-key.pem b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/private-key/terraform-key.pem index fab1eb2a..3f034bb4 100644 --- a/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/private-key/terraform-key.pem +++ b/09-Terraform-Provisioners/09-03-local-exec-provisioner/terraform-manifests/private-key/terraform-key.pem @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/.terraform.lock.hcl b/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..eb795f19 --- /dev/null +++ b/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,57 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} + +provider "registry.terraform.io/hashicorp/null" { + version = "3.0.0" + constraints = "~> 3.0.0" + hashes = [ + "h1:GnUYWtyIRXT2ruijra2HtwGDb4z3Qk62ZFc1lAOlevo=", + "zh:05fb7eab469324c97e9b73a61d2ece6f91de4e9b493e573bfeda0f2077bc3a4c", + "zh:1688aa91885a395c4ae67636d411475d0b831e422e005dcf02eedacaafac3bb4", + "zh:24a0b1292e3a474f57c483a7a4512d797e041bc9c2fbaac42fe12e86a7fb5a3c", + "zh:2fc951bd0d1b9b23427acc93be09b6909d72871e464088171da60fbee4fdde03", + "zh:6db825759425599a326385a68acc6be2d9ba0d7d6ef587191d0cdc6daef9ac63", + "zh:85985763d02618993c32c294072cc6ec51f1692b803cb506fcfedca9d40eaec9", + "zh:a53186599c57058be1509f904da512342cfdc5d808efdaf02dec15f0f3cb039a", + "zh:c2e07b49b6efa676bdc7b00c06333ea1792a983a5720f9e2233db27323d2707c", + "zh:cdc8fe1096103cf5374751e2e8408ec4abd2eb67d5a1c5151fe2c7ecfd525bef", + "zh:dbdef21df0c012b0d08776f3d4f34eb0f2f229adfde07ff252a119e52c0f65b7", + ] +} + +provider "registry.terraform.io/hashicorp/time" { + version = "0.6.0" + constraints = "~> 0.6.0" + hashes = [ + "h1:IvRLj0HXlzF+MVqLjUkKBb42PVeKPbPq5uK01i4QDjM=", + "zh:130c61cb41888107bf1e2f1db05b4f664d63af70e7828c0ab16be9fc5302aede", + "zh:16132715a10cb31dc6ce6d9320904f84ddb32cbb74516e528009463370d6f715", + "zh:2fb8701ac13115bd92187a9c6e47ca2ecedf98943e48e3f5d8a8f3f4bd3fcdf4", + "zh:30b4b44748fbfa592a22664c31ac5f664ca5fd18265442a85cd0b41a99b21c86", + "zh:5205fa477ebcb1f7d82a701a9a511c6fd555ec209e523081d65b38a5a3423db5", + "zh:7584700dc1421f22f6352d61859774e9f6151c48e490f2c0f2ae019274bfd028", + "zh:7cc58b561fbb6c86a4f4a7e670434381a1ffa664ca559702fc7eb79ab36164e4", + "zh:b7d119ce2f948311a2acb8b32e027562cd291116ecf93af788318c168f82a856", + "zh:bd759418034e245f7ca4914ae72c0fbd82cedec12b32980f6ea74aa9c474ba7f", + "zh:c06c65224ee9aa8634f8d44552bc803aac0a3a8949b865137873c56d6b2025d7", + ] +} diff --git a/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c1-versions.tf b/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c1-versions.tf index 3cf00138..acea1594 100644 --- a/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c1-versions.tf +++ b/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx required_providers { aws = { source = "hashicorp/aws" diff --git a/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c2-variables.tf b/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c2-variables.tf index f55f87b6..7b53081c 100644 --- a/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c2-variables.tf +++ b/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c2-variables.tf @@ -2,7 +2,7 @@ variable "aws_region" { description = "Region in which AWS Resources to be created" type = string - default = "us-east-1" + default = "eu-west-1" } variable "instance_type" { diff --git a/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c4-ec2-instance.tf b/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c4-ec2-instance.tf index deca3b32..b540d51f 100644 --- a/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c4-ec2-instance.tf +++ b/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/c4-ec2-instance.tf @@ -2,7 +2,7 @@ resource "aws_instance" "my-ec2-vm" { ami = data.aws_ami.amzlinux.id instance_type = var.instance_type - key_name = "terraform-key" + key_name = "AWS-S3-Mayur-Key2" #count = terraform.workspace == "default" ? 1 : 1 user_data = file("apache-install.sh") vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] @@ -42,7 +42,7 @@ resource "null_resource" "sync_app1_static" { # Copies the /tmp/app1 folder to Apache Webserver /var/www/html directory provisioner "remote-exec" { inline = [ - "sudo cp -r /tmp/app1 /var/www/html" + "sudo cp -r /tmp/app1/file1.html /var/www/html/index.html" ] } } diff --git a/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/private-key/terraform-key.pem b/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/private-key/terraform-key.pem index fab1eb2a..3f034bb4 100644 --- a/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/private-key/terraform-key.pem +++ b/09-Terraform-Provisioners/09-04-Null-Resource/terraform-manifests/private-key/terraform-key.pem @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- \ No newline at end of file From 07d195866cb66afca0f1c2ccb16eb28e781f2cb8 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Sat, 23 Oct 2021 21:19:12 +0200 Subject: [PATCH 21/25] added --- .../Practice/.terraform.lock.hcl | 21 +++++++ .../Practice/apache-install.sh | 6 ++ .../Practice/c1-versions.tf | 29 ++++++++++ .../Practice/c2-variables.tf | 22 +++++++ .../Practice/c3-security-groups.tf | 57 +++++++++++++++++++ .../Practice/c4-ec2-instance.tf | 21 +++++++ .../Practice/c5-outputs.tf | 14 +++++ .../Practice/c6-ami-datasource.tf | 45 +++++++++++++++ .../Practice_2/.terraform.lock.hcl | 21 +++++++ 10-Terraform-Modules/Practice_2/main.tf | 42 ++++++++++++++ 10-Terraform-Modules/Practice_2/outputs.tf | 21 +++++++ .../Practice_2/terraform.tfvars | 6 ++ 10-Terraform-Modules/Practice_2/variables.tf | 15 +++++ 10-Terraform-Modules/Practice_2/versions.tf | 29 ++++++++++ .../Practice_3/.terraform.lock.hcl | 20 +++++++ 10-Terraform-Modules/Practice_3/bucket.tf | 5 ++ .../aws-s3-static-webiste-bucket/LICENSE | 11 ++++ .../aws-s3-static-webiste-bucket/README.md | 1 + .../aws-s3-static-webiste-bucket/main.tf | 44 ++++++++++++++ .../aws-s3-static-webiste-bucket/outputs.tf | 21 +++++++ .../aws-s3-static-webiste-bucket/variables.tf | 10 ++++ 10-Terraform-Modules/Practice_3/outputs.tf | 21 +++++++ 10-Terraform-Modules/Practice_3/variables.tf | 20 +++++++ 10-Terraform-Modules/Practice_3/versions.tf | 29 ++++++++++ 24 files changed, 531 insertions(+) create mode 100644 10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/.terraform.lock.hcl create mode 100644 10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/apache-install.sh create mode 100644 10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c1-versions.tf create mode 100644 10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c2-variables.tf create mode 100644 10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c3-security-groups.tf create mode 100644 10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c4-ec2-instance.tf create mode 100644 10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c5-outputs.tf create mode 100644 10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c6-ami-datasource.tf create mode 100644 10-Terraform-Modules/Practice_2/.terraform.lock.hcl create mode 100644 10-Terraform-Modules/Practice_2/main.tf create mode 100644 10-Terraform-Modules/Practice_2/outputs.tf create mode 100644 10-Terraform-Modules/Practice_2/terraform.tfvars create mode 100644 10-Terraform-Modules/Practice_2/variables.tf create mode 100644 10-Terraform-Modules/Practice_2/versions.tf create mode 100644 10-Terraform-Modules/Practice_3/.terraform.lock.hcl create mode 100644 10-Terraform-Modules/Practice_3/bucket.tf create mode 100644 10-Terraform-Modules/Practice_3/module/aws-s3-static-webiste-bucket/LICENSE create mode 100644 10-Terraform-Modules/Practice_3/module/aws-s3-static-webiste-bucket/README.md create mode 100644 10-Terraform-Modules/Practice_3/module/aws-s3-static-webiste-bucket/main.tf create mode 100644 10-Terraform-Modules/Practice_3/module/aws-s3-static-webiste-bucket/outputs.tf create mode 100644 10-Terraform-Modules/Practice_3/module/aws-s3-static-webiste-bucket/variables.tf create mode 100644 10-Terraform-Modules/Practice_3/outputs.tf create mode 100644 10-Terraform-Modules/Practice_3/variables.tf create mode 100644 10-Terraform-Modules/Practice_3/versions.tf diff --git a/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/.terraform.lock.hcl b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/.terraform.lock.hcl new file mode 100644 index 00000000..208a723b --- /dev/null +++ b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} diff --git a/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/apache-install.sh b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/apache-install.sh new file mode 100644 index 00000000..709bbff1 --- /dev/null +++ b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/apache-install.sh @@ -0,0 +1,6 @@ +#! /bin/bash +sudo yum update -y +sudo yum install -y httpd +sudo systemctl enable httpd +sudo service httpd start +echo "

Welcome to StackSimplify ! AWS Infra created using Terraform in eu-west-1 Region

" | sudo tee /var/www/html/index.html \ No newline at end of file diff --git a/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c1-versions.tf b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c1-versions.tf new file mode 100644 index 00000000..549b5b27 --- /dev/null +++ b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c1-versions.tf @@ -0,0 +1,29 @@ +# Terraform Block +terraform { + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + } + + backend "s3" { + bucket = "testbucketofmayur" + key = "terraform/modules/terraform.tfstate" + region = "eu-west-1" + dynamodb_table = "terraform-dev-state-table" + } + +} + +# Provider Block +provider "aws" { + region = var.aws_region + profile = "default" +} +/* +Note-1: AWS Credentials Profile (profile = "default") configured on your local desktop terminal +$HOME/.aws/credentials +*/ + diff --git a/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c2-variables.tf b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c2-variables.tf new file mode 100644 index 00000000..7c79327e --- /dev/null +++ b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c2-variables.tf @@ -0,0 +1,22 @@ +# Input Variables +variable "aws_region" { + description = "Region in which AWS Resources to be created" + type = string + default = "eu-west-1" +} + +/* +# Commented as we are going to get AMI ID from Datasource aws_ami +variable "ec2_ami_id" { + description = "AMI ID" + type = string + default = "ami-0915bcb5fa77e4892" +} +*/ + +variable "ec2_instance_type" { + description = "EC2 Instance Type" + type = string + default = "t2.micro" +} + diff --git a/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c3-security-groups.tf b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c3-security-groups.tf new file mode 100644 index 00000000..01affa0e --- /dev/null +++ b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c3-security-groups.tf @@ -0,0 +1,57 @@ +# Create Security Group - SSH Traffic +resource "aws_security_group" "vpc-ssh" { + name = "vpc-ssh" + description = "Dev VPC SSH" + ingress { + description = "Allow Port 22" + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + egress { + description = "Allow all ip and ports outboun" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } +} + +# Create Security Group - Web Traffic +resource "aws_security_group" "vpc-web" { + name = "vpc-web" + description = "Dev VPC web" + ingress { + description = "Allow Port 80" + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + description = "Allow Port 443" + from_port = 443 + to_port = 443 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + egress { + description = "Allow all ip and ports outbound" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + description = "Allow Port 8080" + from_port = 8080 + to_port = 8080 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + +} \ No newline at end of file diff --git a/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c4-ec2-instance.tf b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c4-ec2-instance.tf new file mode 100644 index 00000000..11f5e305 --- /dev/null +++ b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c4-ec2-instance.tf @@ -0,0 +1,21 @@ +module "ec2_instance" { + source = "terraform-aws-modules/ec2-instance/aws" + version = "~> 3.0" + + + name = "instance-1" + ami = data.aws_ami.amzlinux.id + instance_type = "t2.micro" + key_name = "AWS-S3-Mayur-Key2" + monitoring = true + vpc_security_group_ids = ["sg-c3652599"] + subnet_id = "subnet-cb7f3591" + + tags = { + Terraform = "true" + Environment = "dev" + } + + user_data = file("apache-install.sh") + +} \ No newline at end of file diff --git a/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c5-outputs.tf b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c5-outputs.tf new file mode 100644 index 00000000..89e1a073 --- /dev/null +++ b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c5-outputs.tf @@ -0,0 +1,14 @@ +output "ec2_instance_public_ip" { + description = "Public IP Addressess of EC2 Instances" + value = module.ec2_instance.*.public_ip +} + +output "ec2_instance_public_dns" { + description = "Public DNS for EC2 Instances" + value = module.ec2_instance.*.public_dns +} + +output "ec2_instance_private_ip" { + description = "Private IP Addresses for EC2 Instances" + value = module.ec2_instance.*.private_ip + } \ No newline at end of file diff --git a/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c6-ami-datasource.tf b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c6-ami-datasource.tf new file mode 100644 index 00000000..7c0eab9f --- /dev/null +++ b/10-Terraform-Modules/10-01-Terraform-Modules-Basics/Practice/c6-ami-datasource.tf @@ -0,0 +1,45 @@ +# Get latest AMI ID for Amazon Linux2 OS +data "aws_ami" "amzlinux" { + most_recent = true + owners = ["amazon"] + filter { + name = "name" + values = ["amzn2-ami-hvm-*-gp2"] + } + filter { + name = "root-device-type" + values = ["ebs"] + } + filter { + name = "virtualization-type" + values = ["hvm"] + } + filter { + name = "architecture" + values = ["x86_64"] + } +} + + +data "aws_ami" "amzlinux1" { + most_recent = true + owners = ["amazon"] + filter { + name = "name" + values = ["amzn2-ami-hvm-*-gp2"] + } + + filter { + name = "root-device-type" + values = ["ebs"] + } + filter { + name = "virtualization-type" + values = ["hvm"] + } + filter { + name = "architecture" + values = ["x86_64"] + } +} + diff --git a/10-Terraform-Modules/Practice_2/.terraform.lock.hcl b/10-Terraform-Modules/Practice_2/.terraform.lock.hcl new file mode 100644 index 00000000..208a723b --- /dev/null +++ b/10-Terraform-Modules/Practice_2/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} diff --git a/10-Terraform-Modules/Practice_2/main.tf b/10-Terraform-Modules/Practice_2/main.tf new file mode 100644 index 00000000..73a16a4b --- /dev/null +++ b/10-Terraform-Modules/Practice_2/main.tf @@ -0,0 +1,42 @@ +resource "aws_s3_bucket" "static_hosting_bucket" { + bucket = var.bucket_name + acl = "public-read" + policy = < Date: Sun, 24 Oct 2021 09:18:09 +0200 Subject: [PATCH 22/25] added --- .../terraform-manifests/c1-versions.tf | 2 +- .../terraform-manifests/c3-s3bucket.tf | 4 +-- .../Practice_3/.terraform.lock.hcl | 21 ++++++++++++++++ .../Practice_3/c1-versions.tf | 20 +++++++++++++++ .../Practice_3/c2-variables.tf | 25 +++++++++++++++++++ .../Practice_3/c3-s3bucket.tf | 8 ++++++ .../Practice_3/c4-outputs.tf | 25 +++++++++++++++++++ 7 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/.terraform.lock.hcl create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c1-versions.tf create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c2-variables.tf create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c3-s3bucket.tf create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c4-outputs.tf diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c1-versions.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c1-versions.tf index a305835c..3e990a7f 100644 --- a/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c1-versions.tf +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx required_providers { aws = { source = "hashicorp/aws" diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c3-s3bucket.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c3-s3bucket.tf index d33af476..201e42b3 100644 --- a/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c3-s3bucket.tf +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c3-s3bucket.tf @@ -1,6 +1,6 @@ # Call our Custom Terraform Module which we built earlier -module "website_s3_bucket123" { - source = "app.terraform.io/hcta-demo1/s3-website/aws" +module "website_s3_bucket" { + source = "app.terraform.io/hcta-demo1-mayur/aws-s3-static-website/module" version = "1.0.1" # insert required variables here bucket_name = var.my_s3_bucket diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/.terraform.lock.hcl b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/.terraform.lock.hcl new file mode 100644 index 00000000..208a723b --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c1-versions.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c1-versions.tf new file mode 100644 index 00000000..3e990a7f --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c1-versions.tf @@ -0,0 +1,20 @@ +# Terraform Block +terraform { + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + } +} + +# Provider Block +provider "aws" { + region = var.aws_region + profile = "default" +} +/* +Note-1: AWS Credentials Profile (profile = "default") configured on your local desktop terminal +$HOME/.aws/credentials +*/ diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c2-variables.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c2-variables.tf new file mode 100644 index 00000000..7cc5d94f --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c2-variables.tf @@ -0,0 +1,25 @@ +# Input Variables +variable "aws_region" { + description = "Region in which AWS Resources to be created" + type = string + default = "eu-west-1" +} + +## Create Variable for S3 Bucket Name +variable "my_s3_bucket" { + description = "S3 Bucket name that we pass to S3 Custom Module" + type = string + default = "testbucketofmayur-4" +} + +## Create Variable for S3 Bucket Tags +variable "my_s3_tags" { + description = "Tags to set on the bucket" + type = map(string) + default = { + Terraform = "true" + Environment = "dev" + newtag1 = "tag1" + newtag2 = "tag2" + } +} diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c3-s3bucket.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c3-s3bucket.tf new file mode 100644 index 00000000..579f8340 --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c3-s3bucket.tf @@ -0,0 +1,8 @@ +# Call our Custom Terraform Module which we built earlier +module "website_s3_bucket" { + source = "app.terraform.io/hcta-demo1-mayur/aws-s3-static-website/module" + version = "1.0.1" + # insert required variables here + bucket_name = var.my_s3_bucket + bucket_tags = var.my_s3_tags +} \ No newline at end of file diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c4-outputs.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c4-outputs.tf new file mode 100644 index 00000000..ac095c12 --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_3/c4-outputs.tf @@ -0,0 +1,25 @@ +# Output definitions + +## S3 Bucket ARN +output "website_bucket_arn" { + description = "ARN of the bucket" + value = module.website_s3_bucket.arn +} + +## S3 Bucket Name +output "website_bucket_name" { + description = "Name (id) of the bucket" + value = module.website_s3_bucket.name +} + +## S3 Bucket Domain +output "website_bucket_domain" { + description = "Name (id) of the bucket" + value = module.website_s3_bucket.domain +} + +## S3 Bucket Endpoint +output "website_bucket_endpoint" { + description = "Name (id) of the bucket" + value = module.website_s3_bucket.endpoint +} From a84db2ceeb060fc58164b157eee1844c50de7638 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Sun, 24 Oct 2021 09:33:40 +0200 Subject: [PATCH 23/25] added --- .../Practice_4/.terraform.lock.hcl | 21 +++++++++++++++ .../Practice_4/c1-versions.tf | 27 +++++++++++++++++++ .../Practice_4/c2-variables.tf | 24 +++++++++++++++++ .../Practice_4/c3-s3bucket.tf | 8 ++++++ .../Practice_4/c4-outputs.tf | 25 +++++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/.terraform.lock.hcl create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c1-versions.tf create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c2-variables.tf create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c3-s3bucket.tf create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c4-outputs.tf diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/.terraform.lock.hcl b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/.terraform.lock.hcl new file mode 100644 index 00000000..208a723b --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c1-versions.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c1-versions.tf new file mode 100644 index 00000000..75306271 --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c1-versions.tf @@ -0,0 +1,27 @@ +# Terraform Block +terraform { + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + } +backend "remote" { + organization = "hcta-demo1-mayur" + workspaces { + name = "cli-driven-workflow-demo" + } + +} + +} + +# Provider Block +provider "aws" { + region = var.aws_region +} +/* +Note-1: AWS Credentials Profile (profile = "default") configured on your local desktop terminal +$HOME/.aws/credentials +*/ diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c2-variables.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c2-variables.tf new file mode 100644 index 00000000..bfe61737 --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c2-variables.tf @@ -0,0 +1,24 @@ +# Input Variables +variable "aws_region" { + description = "Region in which AWS Resources to be created" + type = string +} + +## Create Variable for S3 Bucket Name +variable "my_s3_bucket" { + description = "S3 Bucket name that we pass to S3 Custom Module" + type = string + default = "testbucketofmayur-4" +} + +## Create Variable for S3 Bucket Tags +variable "my_s3_tags" { + description = "Tags to set on the bucket" + type = map(string) + default = { + Terraform = "true" + Environment = "dev" + newtag1 = "tag1" + newtag2 = "tag2" + } +} diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c3-s3bucket.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c3-s3bucket.tf new file mode 100644 index 00000000..579f8340 --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c3-s3bucket.tf @@ -0,0 +1,8 @@ +# Call our Custom Terraform Module which we built earlier +module "website_s3_bucket" { + source = "app.terraform.io/hcta-demo1-mayur/aws-s3-static-website/module" + version = "1.0.1" + # insert required variables here + bucket_name = var.my_s3_bucket + bucket_tags = var.my_s3_tags +} \ No newline at end of file diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c4-outputs.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c4-outputs.tf new file mode 100644 index 00000000..ac095c12 --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_4/c4-outputs.tf @@ -0,0 +1,25 @@ +# Output definitions + +## S3 Bucket ARN +output "website_bucket_arn" { + description = "ARN of the bucket" + value = module.website_s3_bucket.arn +} + +## S3 Bucket Name +output "website_bucket_name" { + description = "Name (id) of the bucket" + value = module.website_s3_bucket.name +} + +## S3 Bucket Domain +output "website_bucket_domain" { + description = "Name (id) of the bucket" + value = module.website_s3_bucket.domain +} + +## S3 Bucket Endpoint +output "website_bucket_endpoint" { + description = "Name (id) of the bucket" + value = module.website_s3_bucket.endpoint +} From a979cf3b80b9206fbf732c541773ddaa792acacc Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Sun, 24 Oct 2021 09:50:50 +0200 Subject: [PATCH 24/25] added --- .../Practice_5/.terraform.lock.hcl | 21 ++++++++ .../Practice_5/apache-install.sh | 6 +++ .../Practice_5/c1-versions.tf | 33 +++++++++++++ .../Practice_5/c2-variables.tf | 10 ++++ .../Practice_5/c3-security-groups.tf | 49 +++++++++++++++++++ .../Practice_5/c4-ec2-instance.tf | 19 +++++++ .../Practice_5/c5-outputs.tf | 14 ++++++ .../Practice_5/c6-ami-datasource.tf | 21 ++++++++ 8 files changed, 173 insertions(+) create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/.terraform.lock.hcl create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/apache-install.sh create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c1-versions.tf create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c2-variables.tf create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c3-security-groups.tf create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c4-ec2-instance.tf create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c5-outputs.tf create mode 100644 11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c6-ami-datasource.tf diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/.terraform.lock.hcl b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/.terraform.lock.hcl new file mode 100644 index 00000000..208a723b --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/apache-install.sh b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/apache-install.sh new file mode 100644 index 00000000..8362972b --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/apache-install.sh @@ -0,0 +1,6 @@ +#! /bin/bash +sudo yum update -y +sudo yum install -y httpd +sudo systemctl enable httpd +sudo service httpd start +echo "

Welcome to StackSimplify ! AWS Infra created using Terraform in us-east-1 Region

" | sudo tee /var/www/html/index.html \ No newline at end of file diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c1-versions.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c1-versions.tf new file mode 100644 index 00000000..bfc56cfe --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c1-versions.tf @@ -0,0 +1,33 @@ +# Terraform Block +terraform { + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + } + + # Update remote backend information + backend "remote" { + hostname = "app.terraform.io" + organization = "hcta-demo1-mayur" # Organization should already exists in Terraform Cloud + + workspaces { + name = "state-migration-demo" + # Two cases: + # Case-1: If workspace already exists, should not have any state files in states tab + # Case-2: If workspace not exists, during migration it will get created + } + } + +} + +# Provider Block +provider "aws" { + region = var.aws_region +} +/* +Note-1: AWS Credentials Profile (profile = "default") configured on your local desktop terminal +$HOME/.aws/credentials +*/ diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c2-variables.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c2-variables.tf new file mode 100644 index 00000000..bba754b9 --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c2-variables.tf @@ -0,0 +1,10 @@ +# Input Variables +variable "aws_region" { + description = "Region in which AWS Resources to be created" + type = string +} + +variable "instance_type" { + description = "EC2 Instance Type - Instance Sizing" + type = string +} \ No newline at end of file diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c3-security-groups.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c3-security-groups.tf new file mode 100644 index 00000000..98fe5ff7 --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c3-security-groups.tf @@ -0,0 +1,49 @@ +# Create Security Group - SSH Traffic +resource "aws_security_group" "vpc-ssh" { + name = "vpc-ssh-${terraform.workspace}" + description = "Dev VPC SSH" + ingress { + description = "Allow Port 22" + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + egress { + description = "Allow all ip and ports outboun" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } +} + +# Create Security Group - Web Traffic +resource "aws_security_group" "vpc-web" { + name = "vpc-web-${terraform.workspace}" + description = "Dev VPC web" + ingress { + description = "Allow Port 80" + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + description = "Allow Port 443" + from_port = 443 + to_port = 443 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + egress { + description = "Allow all ip and ports outbound" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } + +} \ No newline at end of file diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c4-ec2-instance.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c4-ec2-instance.tf new file mode 100644 index 00000000..550e12c2 --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c4-ec2-instance.tf @@ -0,0 +1,19 @@ +# Create EC2 Instance - Amazon2 Linux +resource "aws_instance" "my-ec2-vm" { + ami = data.aws_ami.amzlinux.id + instance_type = var.instance_type + count = 1 + #key_name = "terraform-key" + user_data = file("apache-install.sh") + vpc_security_group_ids = [aws_security_group.vpc-ssh.id, aws_security_group.vpc-web.id] + tags = { + "Name" = "Terraform-Cloud-${count.index}" + } +} + + + + + + + diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c5-outputs.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c5-outputs.tf new file mode 100644 index 00000000..ad086758 --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c5-outputs.tf @@ -0,0 +1,14 @@ +# Define Output Values + +# Attribute Reference +output "ec2_instance_publicip" { + description = "EC2 Instance Public IP" + value = aws_instance.my-ec2-vm.*.public_ip +} + + +# Attribute Reference - Create Public DNS URL +output "ec2_publicdns" { + description = "Public DNS URL of an EC2 Instance" + value = aws_instance.my-ec2-vm.*.public_dns +} diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c6-ami-datasource.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c6-ami-datasource.tf new file mode 100644 index 00000000..4d0a0102 --- /dev/null +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/Practice_5/c6-ami-datasource.tf @@ -0,0 +1,21 @@ +# Get latest AMI ID for Amazon Linux2 OS +data "aws_ami" "amzlinux" { + most_recent = true + owners = [ "amazon" ] + filter { + name = "name" + values = [ "amzn2-ami-hvm-*-gp2" ] + } + filter { + name = "root-device-type" + values = [ "ebs" ] + } + filter { + name = "virtualization-type" + values = [ "hvm" ] + } + filter { + name = "architecture" + values = [ "x86_64" ] + } +} \ No newline at end of file From 383c648303ee06aca3ed3dd96030d517e7aa77f8 Mon Sep 17 00:00:00 2001 From: Mayur Hastak <80825112+vw-hm@users.noreply.github.com> Date: Sun, 24 Oct 2021 12:36:19 +0200 Subject: [PATCH 25/25] addeD --- .../terraform-manifests/c2-variables.tf | 4 ++-- .../terraform-manifests/.terraform.lock.hcl | 21 +++++++++++++++++++ .../terraform-manifests/c1-versions.tf | 4 ++-- .../terraform-manifests/c2-variables.tf | 4 ++-- .../static-files/index.html | 2 +- 5 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/.terraform.lock.hcl diff --git a/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c2-variables.tf b/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c2-variables.tf index 08ad15d2..a7aff422 100644 --- a/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c2-variables.tf +++ b/11-Terraform-Cloud-and-Enterprise-Capabilities/11-02-Share-Modules-in-Private-Module-Registry/terraform-manifests/c2-variables.tf @@ -2,7 +2,7 @@ variable "aws_region" { description = "Region in which AWS Resources to be created" type = string - default = "us-east-1" + default = "eu-west-1" } ## Create Variable for S3 Bucket Name @@ -17,7 +17,7 @@ variable "my_s3_tags" { description = "Tags to set on the bucket" type = map(string) default = { - Terraform = "true" + Terraform1 = "true" Environment = "dev" newtag1 = "tag1" newtag2 = "tag2" diff --git a/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/.terraform.lock.hcl b/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/.terraform.lock.hcl new file mode 100644 index 00000000..208a723b --- /dev/null +++ b/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.63.0" + constraints = "~> 3.0" + hashes = [ + "h1:OrFmv6NFX1fqE10psnI8SmqeFRs02VIRcixqYqL0+Tc=", + "zh:42c6c98b294953a4e1434a331251e539f5372bf6779bd61ab5df84cac0545287", + "zh:5493773762a470889c9a23db97582d3a82035847c8d3bd13323b4c3012abf325", + "zh:550d22ff9fed4d817a922e7b84bd9d1f2ef8d3afa00832cf66b8cd5f0e6dc748", + "zh:632cb5e2d9d5041875f57174236eafe5b05dbf26750c1041ab57eb08c5369fe2", + "zh:7cfeaf5bde1b28bd010415af1f3dc494680a8374f1a26ec19db494d99938cc4e", + "zh:99d871606b67c8aefce49007315de15736b949c09a9f8f29ad8af1e9ce383ed3", + "zh:c4fc8539ffe90df5c7ae587fde495fac6bc0186fec2f2713a8988a619cef265f", + "zh:d0a26493206575c99ca221d78fe64f96a8fbcebe933af92eea6b39168c1f1c1d", + "zh:e156fdc964fdd4a7586ec15629e20d2b06295b46b4962428006e088145db07d6", + "zh:eb04fc80f652b5c92f76822f0fec1697581543806244068506aed69e1bb9b2af", + "zh:f5638a533cf9444f7d02b5527446cdbc3b2eab8bcc4ec4b0ca32035fe6f479d3", + ] +} diff --git a/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/c1-versions.tf b/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/c1-versions.tf index 1c52c2f4..330d2fc3 100644 --- a/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/c1-versions.tf +++ b/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/c1-versions.tf @@ -1,6 +1,6 @@ # Terraform Block terraform { - required_version = "~> 0.14" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx + required_version = "~> 1.0.0" # which means any version equal & above 0.14 like 0.15, 0.16 etc and < 1.xx required_providers { aws = { source = "hashicorp/aws" @@ -9,7 +9,7 @@ terraform { } # Update backend information as Terraform Cloud backend "remote" { - organization = "hcta-demo1" + organization = "hcta-demo1-mayur" workspaces { name = "sentinel-demo1" diff --git a/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/c2-variables.tf b/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/c2-variables.tf index d476f6d8..c03e267d 100644 --- a/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/c2-variables.tf +++ b/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/c2-variables.tf @@ -2,7 +2,7 @@ variable "aws_region" { description = "Region in which AWS Resources to be created" type = string - default = "us-east-1" + default = "eu-west-1" } # Input variable definitions @@ -10,7 +10,7 @@ variable "aws_region" { variable "bucket_name" { description = "Name of the S3 bucket. Must be Unique across AWS" type = string - default = "mybucket-1061" + default = "testbucketofmayur-3" } variable "tags" { diff --git a/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/static-files/index.html b/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/static-files/index.html index 337b6847..3914db65 100644 --- a/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/static-files/index.html +++ b/12-Terraform-Cloud-and-Sentinel/12-01-Terraform-Cloud-and-Sentinel-Policies/terraform-manifests/static-files/index.html @@ -5,6 +5,6 @@

Welcome to Stack Simplify - Terraform & Sentinel Demo

Sentinel Demo

-

Terraform Sentinel - Demo - V2

+

Terraform Sentinel - Demo - V4

\ No newline at end of file