- Lab
-
Libraries: If you want this lab, consider one of these libraries.
- Cloud
Building Flexible Network Templates in GCP with Terraform
You are a DevOps engineer at an organization that is moving their configuration management to Infrastructure as Code (IaC) using Terraform. The networking team wants to move to managing their GCP VPCs and subnets with Terraform, but is concerned that maintaining separate code bases for development and production networks would lead to the environments not having the same configurations. You will create a single Terraform module and build both production and development VPCs using that module. This way, the environments will remain mirrored, and managing changes will be transparent and auditable.
Lab Info
Table of Contents
-
Challenge
Create a 'networking' Module and Use It to Create a Small Development VPC
- Create a
terraformdirectory to work in. - Create a
modules/networkingdirectory, and create amain.tfinside of it. - Define variables for
environment,cidr_range,regionsandsubnet_size. - Create a
localsblock and use thesplit(),element(),length(), andtonumber()Terraform functions to calculate thenewbitsvalue for thecidrsubnet()function argument. - Create a
google_compute_networkresource. - Create a
google_compute_subnetworkresource. Use thecountargument to create a subnet in each region in theregionsvariable. Use thecidrsubnet()function to calculate theip_cidr_rangebased on thecidr_rangevariable. - In the
terraformdirectory, create adevfolder containing amain.tffile. - Create a
terraformblock and amodulereferencing themodules/networkingcode. Set theenvironmenttodev, thecidr_rangeto10.10.0.0/24,regionsto["us-central1", "us-east1"], andsubnet_sizeto28. - Execute
terraform init. - Execute
terraform apply.
- Create a
-
Challenge
Using the Same Module, Create a Production VPC with a Larger CIDR Block and More Subnets
- In the
terraformdirectory, create aprodfolder containing amain.tffile. - Create a
terraformblock and amodulereferencing themodules/networkingcode. Set theenvironmenttoprod, thecidr_rangeto10.0.0.0/8,regionsto["us-central1", "us-east1", "us-east4", "us-west1"], andsubnet_sizeto24. - Execute
terraform init. - Execute
terraform apply.
- In the
About the author
Real skill practice before real-world application
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.
Learn by doing
Engage hands-on with the tools and technologies you’re learning. You pick the skill, we provide the credentials and environment.
Follow your guide
All labs have detailed instructions and objectives, guiding you through the learning process and ensuring you understand every step.
Turn time into mastery
On average, you retain 75% more of your learning if you take time to practice. Hands-on labs set you up for success to make those skills stick.