By Mr. Balaji Reddy, Sr. DevOps Consultant
• Problems with Traditional Infrastructure Management
• What is Infrastructure as Code?
• Traditional vs IaC-based provisioning
• Benefits of IaC in DevOps
• IaC vs Configuration Management
• Why Terraform?
• Installing Terraform on Windows/Linux/Mac
• Terraform CLI and commands overview
• Introduction to HCL (Hashi Corp Configuration Language)
• Terraform Top-Level Blocks
a) Fundamental Blocks Overview
1) terraform block
2) provider block
3) resource block
b) Variable Blocks
4) Input Variables
5) Output Values
6) Local Values
c) Referencing & Reusability
7) data sources block
8) module block
• Providers, Resources, and Data sources overview
• Writing your first Terraform file (main.tf)
• Providers and Backend configuration
• Resource Syntax & Behavior
• Resources and Arguments
• Meta Arguments (count, depends_on, for_each, lifecycle)
• terraform init
• terraform plan
• terraform apply
• terraform destroy
• terraform show, taint, untaint, import, refresh
• Variable types: String, Number, Boolean, List, Map
• Default values and validation
• Environment variables
• Using locals and terraform console
• Built-in functions: String, Numeric, Collection, etc.
• Using expressions for conditions, loops, and data transformations
• Dynamic Expressions
• Dynamic Blocks
• Terraform state (.tfstate)
• Backends: Local vs Remote
• Remote state with:
✓ AWS S3 + DynamoDB (for locking)
✓ Azure Blob Storage
• State locking and consistency
• terraform state subcommands
• What are Modules?
• Creating Reusable Modules
• Module Registry
• Best Practices for module structure
• Passing variables to modules
• Dev, QA, Staging, Prod environments
• Workspaces in Terraform
• Environment variable overrides
• AWS Provider Setup
• Launching EC2 instance
• Creating VPC, Subnets, Route Tables, IGW, NAT
• Security Groups, Key Pairs, ELB, Autoscaling
• RDS, S3, IAM roles
• S3 as remote backend + DynamoDB for locking
• EKS Cluster & It’s Components
• Marking variables as sensitive
• Avoiding hardcoding secrets
• .gitignore for state and plan files
• create_before_destroy, prevent_destroy
• depends_on usage
• null_resource for provisioners
• Using remote-exec and local-exec
• terraform validate
• terraform fmt for formatting
• Azure Provider Setup
• Creating Resource Groups, VMs, Storage Accounts
• Virtual Network, Subnets, NSGs
• Terraform in Jenkins pipelines
• Hands-on Labs & Assignments
• Soft Copy Materials
• Terraform Scripts
• GitHub repo with reusable modules
©Rushi Technologies All Rights Reserved.