You've already forked devops-exercises
Rename exercises dir
Name it instead "topics" so it won't be strange if some topics included "exercises" directory.
This commit is contained in:
12
topics/terraform/exercises/launch_ec2_instance/exercise.md
Normal file
12
topics/terraform/exercises/launch_ec2_instance/exercise.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Launch EC2 instance
|
||||
|
||||
## Reuqirements
|
||||
|
||||
* AWS account
|
||||
|
||||
## Objectives
|
||||
|
||||
1. Write Terraform configuration for launching an EC2 instance
|
||||
2. Run the commands to apply the configuration and create the EC2 instance
|
||||
3. What happens if you run again `terraform apply`?
|
||||
4. Destroy the instance you've created with Terraform
|
||||
65
topics/terraform/exercises/launch_ec2_instance/solution.md
Normal file
65
topics/terraform/exercises/launch_ec2_instance/solution.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# Launch EC2 instance
|
||||
|
||||
## Reuqirements
|
||||
|
||||
* AWS account
|
||||
|
||||
## Objectives
|
||||
|
||||
1. Write Terraform configuration for launching an EC2 instance
|
||||
2. Run the commands to apply the configuration and create the EC2 instance
|
||||
3. What happens if you run again `terraform apply`?
|
||||
4. Destroy the instance you've created with Terraform
|
||||
|
||||
## Solution
|
||||
|
||||
```
|
||||
mkdir exercise
|
||||
|
||||
cat << EOT >> main.tf
|
||||
terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = "~> 4.16"
|
||||
}
|
||||
}
|
||||
|
||||
required_version = ">= 1.2.0"
|
||||
}
|
||||
|
||||
provider "aws" {
|
||||
region = "us-west-2"
|
||||
}
|
||||
|
||||
resource "aws_instance" "app_server" {
|
||||
ami = "ami-830c94e3"
|
||||
instance_type = "t2.micro"
|
||||
|
||||
tags = {
|
||||
Name = "ExampleAppServerInstance"
|
||||
}
|
||||
}
|
||||
EOT
|
||||
|
||||
terraform init
|
||||
terraform validate
|
||||
terraform plan
|
||||
|
||||
# You should see this line at the end: Plan: 1 to add, 0 to change, 0 to destroy
|
||||
|
||||
terraform apply -auto-approve
|
||||
|
||||
# You should see the following output:
|
||||
# aws_instance.app_server: Creation complete after 49s [id=i-004651a9d4427d236
|
||||
|
||||
# Running 'terraform apply' again won't change anything as
|
||||
# Terraform will compare actual infrastructure to your
|
||||
# configuration and won't find any difference. You should see the following line:
|
||||
# Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
|
||||
|
||||
# Remove instance
|
||||
terraform destroy -auto-approve
|
||||
|
||||
# Destroy complete! Resources: 1 destroyed.
|
||||
```
|
||||
Reference in New Issue
Block a user