It can get cumbersome trying to track all the different routing components of a network, especially in the fast-moving, dynamic IT operations world today. By maintaining your AWS resources such as VPC, SGs, and IGWs using Terraform, you can track all of the changes as code.
In this lab, students will go through creating a network setup complete with VPCs, subnets, security groups, internet gateways, and VPC peering in AWS using Terraform. Students are expected to have working knowledge of VPC resources and basic network components within AWS to be able to take full advantage of this lab.
Successfully complete this lab by achieving the following learning objectives:
- Log in to the Terraform Controller Node EC2 Instance
Find the details for logging in to the Terraform Controller node provided by the hands-on lab interface and log in to the node using SSH:
Note: This instance already has an EC2 instance profile (role) attached to it and has all necessary AWS API permissions required for this lab. It also has the AWS CLI set up and configured with the AWS account attached to this lab, for which the console login credentials are also provided in the lab interface page once the lab spins up.
After logging in, verify the version of Terraform installed (should be 12.29). Execute the following command to check:
- Clone the GitHub Repo for Terraform Code
gitcommand to clone the GitHub repo which has the Terraform code for deploying the solution of this lab. GitHub repo URL.
Execute the following command:
git clone https://github.com/linuxacademy/content-deploying-to-aws-ansible-terraform.git
Change to the directory for lab Terraform code:
Examine the contents of the directory you’re in:
- Deploy the Terraform Code
Initialize the Terraform directory you changed into to download the required provider
Ensure Terraform code is formatted properly:
Ensure code has proper syntax and no errors:
See the execution plan and note the number of resources that will be created:
terraform applyhas run successfully, you can use AWS CLI on the Controller node to list, describe created resources, and additionally also log in to the AWS Console to verify and investigate created resources.
Finally, on the Terraform Controller node CLI, delete all resources which were created and ensure that it runs through successfully.