Welcome to the comprehensive Terraform with Azure video course! This repository contains all code samples and documentation corresponding to each video lesson.
This course consists of video lessons covering basic to advanced Terraform concepts with Azure cloud, including hands-on projects and real-world scenarios.
- Azure free account or subscription, follow this video
- Azure Fundamentals Video Link
- Visual Studio Code or preferred IDE
- Git installed and working knowledge of it
- Linux or Mac or WSL(Windows Subsystem for Linux)
- Linux and Shell scripting
- Basic understanding of YAML and JSON
- Networking Fundamentals
- IP Addressing Video Link
- Docker and Kubernetes Fundamentals Playlist Link
- Understanding Infrastructure as Code (IaC)
- Why we need IaC
- What is Terraform and its benefits
- Challenges with the traditional approach
- Terraform Workflow
- Installing Terraform
- Code Sample
- Terraform Providers
- Provider version v/s Terraform core version
- Why version matters
- Version constraints
- Operators for versions
- Code Sample
- Authentication and Authorization to Azure resources
- Creating resource groups
- Storage account management
- Understanding dependencies
- Code Sample
- How Terraform updates Infra
- Terraform state file
- State file best practices
- Remote backend setup
- State management
- Code Sample
- Input variables
- Output variables
- Locals
- Variable precedence
- Variable files (tfvars)
- Code Sample
- Terraform file organization
- Sequence of file loading
- Best practices for structure
- Code Sample
- String, number, bol
- Map, set, list, Tuple, Objects
- Code Sample
- Understanding count
- for_each loop
- for loop
- Practical examples
- Code Sample
- create before destroy
- prevent destroy
- ignore changes
- replace triggered by
- customer condition
- Dynamic blocks
- Conditional expressions
- Splat Expressions
- practical examples
- Code samples
- Built-in functions
- Practical examples
- tasks for practice
- Code Sample
- Built-in functions
- Practical examples
- tasks for practice
- Code Sample
- Using data sources
- Practical examples
- Code Sample
- Creating Virtual Machines
- VM Scale Sets
- Network Security Groups
- Loadbalancer, Nat Gateway, Public IP , Autoscaling rules etc
- Code Sample
- Virtual Network Creation
- VNet peering setup
- Code Sample
- Authentication methods
- Service principals
- Managed identities
- Code Sample
- App Service creation
- Configuration
- Deployment
- Code Sample
- Function App setup
- Configuration
- Code Sample
- What are provisioners and their use case
- Local vs remote vs file provisioners
- Demo of all three provisioners
- Code Sample
- Kubernetes cluster setup
- Custom module usage
- Custom module creation for AKS, KeyVault, SPN etc
- Code Sample
- Policy creation
- Governance setup
- Code Sample
- Database creation
- Configuration
- Code Sample
- Metrics alerts
- Action Groups
- Log analytics workspace
- Log alerts
- Code Sample
- Public modules
- Custom modules
- Creating and publishing modules
- Project Files
- Cloud setup
- Workspace management
- Code Sample
- CI/CD pipeline setup
- Automation
- Project Files
- Complete architecture setup
- Best practices
- Project Files
- Upgrade strategy
- Implementation
- Project Files
βββ lessons/
β βββ 01-introduction/
β βββ 02-terraform-provider/
β βββ ...
βββ projects/
β βββ 14-vmss/
β βββ 15-vnetpeering/
β βββ 16-azuread
β βββ 17-webapp
βββ docs/
β βββ setup.md
β βββ troubleshooting.md
βββ README.md
- Follow videos in sequence
- Complete hands-on exercises
- Implement projects
- Practice with provided code samples
MIT License - see the LICENSE file for details.