a) Key concepts:
- What is IAC?
- What are the benefits of IAC?
- What is Terraform?
- Who is the vendor of terraform?
- How do you write terraform configuration files?
b) How to install terraform:
- What are the prerequisites for using terraform?
- How to install terraform on MACOS / Windows using brew /choco
- How to install Vscode
- How to install AWS CLI
- How to configure AWS credentials
a) Terraform workflow:
- What is terraform workflow?
- terraform init
- terraform validate
- terraform fmt
- terraform plan
- terraform apply
- terraform destroy
b) Passing credentials to terraform workflow:
- Static credentials
- Environmental variables
- Shared credential / configuration files.
c) Projects
a) What are terraform top level blocks?
- Terraform settings block
- Provider block
- Resource block
- Variables block
- Output block
- Locals block
- Data block
- Modules block
- Moved block
- Import block
b) What makes up a terraform block?
- Arguments
- Expressions
- Attributes
- Meta-arguments
c) Projects
a) Set up for basic resource creation
- Set up terraform settings block
- Set up provider block
- Set up resource block
- Set up file function for user data
b) Projects
a) Use of variables to make code reusable
- What are variables?
- Variable types
- How to reference variables from lists and maps
- Variable files
b) Data sources
- What are data sources
- How are data sources used?
- Terraform functions
- Count
- for Loops over lists and maps
- for_each loops over sets and maps
- dynamic blocks using for_each loops
- Conditionals using ternary operator
a) Modules
- What are modules?
- Custom modules
- Official modules
b) Provisioners
- File
- Remote exec
- Local exec
- Null resource
- Local backend
- Remote backend
- State storage using s3
- DynamoDb state locking
- Remote state data source
- local state data source