1. Understand [[Iac Concepts|Infrastructure as Code (IaC) Concepts]]
a. Explain [[Iac Concepts#What is IaC?|What IaC is]]
b. Describe advantages of [[Iac Concepts#Advantages of IaC Patterns|IaC patterns]]
2. Understand the purpose of Terraform (vs other IaC)
a. Explain multi-cloud and provider-agnostic benefits
b. Explain the benefits of state
3. Understand Terraform basics
a. Install and version Terraform providers
b. Describe plugin-based architecture
c. Write Terraform configuration using multiple providers
d. Describe how Terraform finds and fetches providers
4. Use Terraform outside the core workflow
a. Describe when to use `terraform import` to import existing infrastructure into your Terraform state
b. Use terraform state to view Terraform state
c. Describe when to enable verbose logging and what the outcome/value is
5. Interact with Terraform modules
a. Contrast and use different module source options including the public Terraform Module Registry
b. Interact with module inputs and outputs
c. Describe variable scope within modules/child modules
d. Set module version
6. Use the core Terraform workflow
a. Describe Terraform workflow ( Write -> Plan -> Create )
b. Initialize a Terraform working directory (`terraform init`)
c. Validate a Terraform configuration (`terraform validate`)
d. Generate and review an execution plan for Terraform (`terraform plan`)
e. Execute changes to infrastructure with Terraform (`terraform apply`)
f. Destroy Terraform managed infrastructure (`terraform destroy`)
g. Apply formatting and style adjustments to a configuration (`terraform fmt`)
7 Implement and maintain state
a. Describe default local backend
b. Describe state locking
c. Handle backend and cloud integration authentication methods
d. Differentiate remote state back end options
e. Manage resource drift and Terraform state
f. Describe backend block and cloud integration in configuration
g. Understand secret management in state files
8 Read, generate, and modify configuration
a. Demonstrate use of variables and outputs
b. Describe secure secret injection best practice
c. Understand the use of collection and structural types
d. Create and differentiate resource and data configuration
e. Use resource addressing and resource parameters to connect resources together
f. Use HCL and Terraform functions to write configuration
g. Describe built-in dependency management (order of execution based)
9. Understand HCP Terraform capabilities
a. Explain how HCP Terraform helps to manage infrastructure
b. Describe how HCP Terraform enables collaboration and governance