Terraform
Terraform is one of the most popular Infrastructure-as-code (IaC) tool, used by DevOps teams to automate infrastructure tasks. It is used to automate the provisioning of your cloud resources. Terraform is an open-source, cloud-agnostic provisioning tool .
Introduction to Terraform
- What is Automation and Infrastructure as a Code?
- IAC Tools
- Advantages of IAC
- Difference between Deployment, Configuration Management and Provisioning
- Idempotent and Non-idempotent
- Infrastructure Deployment Phases
Getting Started with HashiCorp Configuration Language
- Writing Simple Automation Scripts
- Understanding HashiCorp Configuration Language
- Understanding Providers and Resources
- Provider Registry
- Terraform Lifecycle
- Understanding Drift Detection by Terraform State
Terraform Variables
- Using Variables in HCL
- What are Variables? Declaring Variables in HCL
- Using Variables in External File
- Variable Type Constraints
- Suppressing Sensitive Values in CLI Output
- Variable in CLI
- Local Values
- Output Value
- Modules
- Divide Files
Terraform Cloud
- Terraform Organization and Workspace
- What is Terraform Cloud
- Creating Terraform Cloud Account
- Organization
- Workspace
Terraform Provisioners
- Provisioners
- Local-exec
- Remote-exec
- File
- Connection
- Null Resources
Terraform Providers
- Providers
- Terraform Registry
- Terraform Registry Providers and Module
- Private Registry
- Terraform Provider Command
- Terraform Provider Configuration
- Terraform Modules
- Fine Line
Resource Meta-Arguments
- Resource Meta Arguments
- Depends_on
- Count
- For_each
- Resource Behaviour and Lifecycle
- Resource Providers and Alias
Expressions
- Introduction to Terraform Expressions
- Types and Values
- Strings and Strings Templates
- Expressions - Operators
- Conditional Expressions
- Expressions - For Expressions
- Expression - Splat Expressions
- Dynamic Blocks
- Version Constraints
Terraform State
- Terraform State MV
- Terraform State Backups
- Terraform State CLI
Terraform Modules
- Finding Modules
- Using Modules
- Publishing Modules
- Verified Modules
- Standard Module Structure
- Creating Modules