| 1 |
Infrastructure as Code (IaC) with Terraform |
 |
 |
| 1a |
Explain what IaC is |
What is Terraform? Infrastructure as Code in a Private or Public Cloud |
Introduction to Infrastructure as Code |
| 1b |
Describe the advantages of IaC patterns |
Why Terraform Infrastructure as Code in a Private or Public Cloud |
Introduction to Infrastructure as Code |
| 1c |
Explain how Terraform manages multi-cloud, hybrid cloud, and service-agnostic workflows |
Multi-Cloud Deployment |
Introduction to Infrastructure as Code |
| 2 |
Terraform fundamentals |
 |
 |
| 2a |
Install and version Terraform providers |
Providers Specifying Provider Requirements Dependency Lock File Provider Block Reference |
Lock and Upgrade Provider Versions Initialize Terraform Configuration |
| 2b |
Describe how Terraform uses providers |
Provider Block Reference Provider Overview Provider Requirements How Terraform Works with Plugins |
Initialize Terraform Configuration |
| 2c |
Write Terraform configuration using multiple providers |
Provider Block Reference Provider Requirements |
Define Infrastructure with Terraform Resources |
| 2d |
Explain how Terraform uses and manages state |
Purpose of Terraform State |
Manage Resources in Terraform State |
| 3 |
Core Terraform workflow |
 |
 |
| 3a |
Describe the Terraform workflow |
Core Terraform Workflow |
Create Infrastructure Create a Terraform Plan Apply Terraform Configuration Initialize Terraform Configuration |
| 3b |
Initialize a Terraform working directory |
Dependency Lock File Command: init |
Initialize Terraform Configuration |
| 3c |
Validate a Terraform configuration |
Command: validate |
Validate your Configuration |
| 3d |
Generate and review an execution plan for Terraform |
Resource Graph Command: plan |
Create a Terraform Plan |
| 3e |
Apply changes to infrastructure with Terraform |
Command: apply |
Apply Terraform Configuration |
| 3f |
Destroy Terraform-managed infrastructure |
Command: destroy |
Destroy Infrastructure |
| 3g |
Apply formatting and style adjustments to a configuration |
Command: fmt |
Format the Configuration |
| 4 |
Terraform configuration |
 |
 |
| 4a |
Use and differentiate resource and data blocks |
Resources Data Sources |
Query Data Sources |
| 4b |
Refer to resource attributes and create cross-resource references |
Resource Addressing References to Named Values |
Create Resource Dependencies |
| 4c |
Use variables and outputs |
Manage values in modules Output Block Reference Variable Block Reference |
Customize Terraform Configuration with Variables Output Data from Terraform |
| 4d |
Understand and use complex types |
Complex Types |
Customize Terraform Configuration with Variables |
| 4e |
Write dynamic configuration using expressions and functions |
Built-in Functions |
Create Dynamic Expressions Perform Dynamic Operations with Functions |
| 4f |
Define resource dependencies in configuration |
Resource Graph |
Create Resource Dependencies |
| 4g |
Validate configuration using custom conditions |
Validate Your Configuration |
Use Checks to Validate Infrastructure Validate Modules with Custom Conditions |
| 4h |
Understand best practices for managing sensitive data, including secrets management with Vault |
Manage Sensitive Data Vault Provider for Terraform |
Upgrade RDS Major Version Protect Sensitive Input Variables Inject Secrets into Terraform Using the Vault Provider |
| 5 |
Terraform modules |
 |
 |
| 5a |
Explain how Terraform sources modules |
Find and Use Modules |
Modules Overview Use Registry Modules in Configuration |
| 5b |
Describe variable scope within modules |
Module Block Reference Manage values in modules |
Build and Use a Local Module |
| 5c |
Use modules in configuration |
Module Composition Output Block Reference Manage values in modules |
Use Registry Modules in Configuration |
| 5d |
Manage module versions |
Module Block Reference: Version Argument |
Use Registry Modules in Configuration |
| 6 |
Terraform state management |
 |
 |
| 6a |
Describe the local backend |
Backend Block Configuration Backend Type: local |
Initialize Terraform Configuration |
| 6b |
Describe state locking |
State Storage and Locking State Locking |
— |
| 6c |
Configure remote state using the backend block |
State Storage and Locking Backend Block Configuration |
— |
| 6d |
Manage resource drift and Terraform state |
Terraform State Refactor Terraform State Refresh-Only Mode Removed Block Reference Moved Block Reference |
Manage Resource Drift Use Refresh-Only Mode |
| 7 |
Maintain infrastructure with Terraform |
 |
 |
| 7a |
Import existing infrastructure into your Terraform workspace |
Command: import Import Existing Resources |
Import Terraform Configuration |
| 7b |
Use the CLI to inspect state |
State Command |
Manage Resources in State |
| 7c |
Describe when and how to use verbose logging |
Debugging Terraform |
Enable Terraform Logging |
| 8 |
HCP Terraform |
 |
 |
| 8a |
Use HCP Terraform to create infrastructure |
Workspaces HCP Terraform Workflow HCP Terraform Overview Remote Operations |
HCP Terraform Get Started Collection |
| 8b |
Describe HCP Terraform collaboration and governance features |
Explorer HCP Private Registry Overview Change Requests Overview HCP Terraform Policy Enforcement Projects Overview Health HCP Terraform Teams |
Authenticate Providers with Dynamic Credentials Drift Detection Variable Sets Detect Drift and Enforce Policies Enforce OPA Policies |
| 8c |
Describe how to organize and use HCP Terraform workspaces and projects |
Run Triggers Variable Sets Projects Overview |
Connect Workspaces with Run Triggers Organize Workspaces with Projects |
| 8d |
Configure and use HCP Terraform integration |
Use CLI with HCP Terraform Connect to HCP Terraform Migrate Terraform State to HCP Terraform Remote Operations Command: login |
Migrate State to HCP Terraform Upgrade Terraform Version in HCP Terraform Collaborate Using HCP Terraform |