Chapter 1: Introduction to Infrastructure as Code (IaC)
- Lesson 1: What is Infrastructure as Code?
- Lesson 2: Benefits of IaC in DevOps Workflows
- Lesson 3: Overview of Popular IaC Tools (Ansible, Pulumi, CloudFormation, etc.)
- Lesson 4: Terraform vs. Other IaC Tools: A Comparative Analysis
- Lesson 5: Use Cases of IaC in Modern IT
Chapter 2: Introduction to Terraform
- Lesson 1: What is Terraform, and Why Use It?
- Lesson 2: History and Evolution of Terraform
- Lesson 3: Key Features of Terraform
- Lesson 4: Terraform Architecture and Workflow Overview
- Lesson 5: Benefits of Terraform in Cloud and Multi-Cloud Environments
Chapter 3: Setting Up Terraform
- Lesson 1: Installing Terraform on Different Platforms (Windows, macOS, Linux)
- Lesson 2: Configuring the Terraform CLI
- Lesson 3: Setting Up Terraform IDEs (Visual Studio Code, IntelliJ)
- Lesson 4: Terraform Configuration Files and Directory Structure
Chapter 4: Terraform Basics
- Lesson 1: Understanding Terraform Providers
- Lesson 2: Writing Terraform Configuration Files
- Lesson 3: Terraform Commands: init, plan, apply, destroy
- Lesson 4: Managing State Files in Terraform
- Lesson 5: Debugging Terraform Code
Chapter 5: Terraform Variables and Outputs
- Lesson 1: Understanding Variables and Variable Types
- Lesson 2: Defining and Using Input Variables
- Lesson 3: Using Output Variables
- Lesson 4: Working with Variable Files and Environment Variables
- Lesson 5: Sensitive Data Handling with Terraform
Chapter 6: Terraform Modules
- Lesson 1: Introduction to Modules in Terraform
- Lesson 2: Creating and Using Custom Modules
- Lesson 3: Organizing Terraform Code with Modules
- Lesson 4: Sharing Modules via Terraform Registry
- Lesson 5: Best Practices for Module Development
Chapter 7: Terraform Provisioners
- Lesson 1: Understanding Provisioners in Terraform
- Lesson 2: Types of Provisioners (local-exec, remote-exec)
- Lesson 3: Managing Resources with Provisioners
- Lesson 4: Provisioners vs. Configuration Management Tools
Chapter 8: Terraform State Management
- Lesson 1: Terraform State Overview and Importance
- Lesson 2: Configuring Remote Backends (S3, Azure, Google Cloud)
- Lesson 3: Locking Terraform State Files
- Lesson 4: State Manipulation Commands (state pull, state rm)
Chapter 9: Advanced Terraform Topics
- Lesson 1: Working with Data Sources
- Lesson 2: Dynamic Blocks in Terraform
- Lesson 3: Resource Dependencies and Explicit Relationships
- Lesson 4: Error Handling and Debugging in Advanced Scenarios
- Lesson 5: Using for_each and count for Resource Scaling
Chapter 10: Infrastructure Automation with Terraform
- Lesson 1: Automating Multi-Cloud Deployments
- Lesson 2: Managing Hybrid Cloud Infrastructure
- Lesson 3: Automating Network Configurations
- Lesson 4: Multi-Environment Setups (Dev, Staging, Prod)
Chapter 11: Terraform with Cloud Providers
- Lesson 1: Using Terraform with AWS
- Lesson 2: Using Terraform with Azure
- Lesson 3: Using Terraform with Google Cloud Platform (GCP)
- Lesson 4: Terraform with Kubernetes (EKS, AKS, GKE)
- Lesson 5: Working with Terraform on Hybrid and Private Clouds
Chapter 12: Terraform Security
- Lesson 1: Securing State Files and Sensitive Data
- Lesson 2: Integrating with Vault for Secret Management
- Lesson 3: Role-Based Access Control with Terraform
- Lesson 4: Compliance and Governance with Sentinel
Chapter 13: Terraform Testing and CI/CD
- Lesson 1: Testing Terraform Code with Terratest and Checkov
- Lesson 2: Integrating Terraform in CI/CD Pipelines
- Lesson 3: Automating Workflows with GitHub Actions, Jenkins, and GitLab CI
- Lesson 4: Validating and Formatting Code with terraform validate and fmt
Chapter 14: Monitoring and Logging in Terraform
- Lesson 1: Monitoring Infrastructure Created by Terraform
- Lesson 2: Logging Terraform Executions
- Lesson 3: Setting Up Alerts for Resource Changes
Chapter 15: Terraform Performance Optimization
- Lesson 1: Optimizing Large-Scale Terraform Projects
- Lesson 2: Managing Terraform Overhead in Multi-Team Environments
- Lesson 3: Incremental Updates and Refreshing States
Chapter 16: New Features in Recent Terraform Releases
- Lesson 1: Recent Enhancements and Changes in Terraform (Yearly Updates)
- Lesson 2: Major Improvements in Terraform State and Module Usage
- Lesson 3: Upgrading Terraform Projects to Newer Versions
Chapter 17: Real-World Applications of Terraform
- Lesson 1: Infrastructure Automation for Enterprises
- Lesson 2: Case Study: Terraform in Multi-Cloud Management
- Lesson 3: Best Practices for Real-World Terraform Usage
Chapter 18: Troubleshooting and Debugging Terraform
- Lesson 1: Common Issues in Terraform and How to Fix Them
- Lesson 2: Troubleshooting State File Corruption
- Lesson 3: Debugging Complex Module Dependencies