1 |
Understand Infrastructure as Code (IaC) concepts |
|
|
Quiz - Understand infratructure as code (IaC) concepts |
1a |
Explain what IaC is |
What is Infrastructure as Code |
Infrastructure as Code Infrastructure as Code in a Private or Public Cloud |
|
1b |
Describe advantages of IaC patterns |
Benefits of IaC |
Infrastructure as Code Infrastructure as code video |
|
2 |
Understand Terraform's purpose (vs other IaC) |
|
|
Quiz - Understand Terraform's purpose (vs other IaC) |
2a |
Explain multi-cloud and provider-agnostic benefits |
Terraform Purpose Terraform Basics |
Multi-Cloud Deployment |
|
2b |
Explain the benefits of state |
Benefits of State |
Purpose of Terraform State Infrastructure as code video |
|
3 |
Understand Terraform basics |
HashiCorp Configuration Language (HCL) Terraform Configuration Block Terraform Provider Blocks Terraform Resource Blocks Terraform Data Blocks Terraform Input Variable Blocks Terraform Local Variable Blocks Terraform Module Blocks Terraform Output Blocks Commenting Terraform Code |
Terraform Language Documentation |
Quiz - Understand Terraform Basics |
3a |
Handle Terraform and provider installation and versioning |
Provider Installation |
Providers Terraform Settings |
|
3b |
Describe plug-in based architecture |
Terraform Plug-in Based Architecture |
|
|
3c |
Demonstrate using multiple providers |
Using Multiple Terraform Providers Terraform TLS Provider |
|
|
3d |
Describe how Terraform finds and fetches providers |
Fetch, Version and Upgrade Terraform Providers |
Providers |
|
3e |
Explain when to use and not use provisioners and when to use local-exec or remote-exec |
Terraform Provisoners |
Provisoners are a Last Resort |
|
4 |
Use the Terraform CLI (outside of core workflow) |
|
|
Quiz - Use the Terraform CLI (outside of core workflow) |
4a |
Given a scenario: choose when to use terraform fmt to format code |
Auto Formating Terraform Code |
Command: fmt |
|
4b |
Given a scenario: choose when to use terraform taint to taint Terraform resources |
Terraform Taint and Replace |
Command: taint |
|
4c |
Given a scenario: choose when to use terraform import to import existing infrastructure into your Terraform state |
Terraform Import |
Command: import |
|
4d |
Given a scenario: choose when to use terraform workspace to create workspaces |
Terraform Workspaces - OSS |
Workspaces |
|
4e |
Given a scenario: choose when to use terraform state to view Terraform state |
Terraform State CLI |
State Command |
|
4f |
Given a scenario: choose when to enable verbose logging and what the outcome/value is |
Debugging Terraform |
Debugging Terraform |
|
5 |
Interact with Terraform modules |
Terraform Modules |
|
Quiz - Interact with Terraform Modules |
5a |
Contrast module source options |
Terraform Module Sources |
Finding and Using Modules |
|
5b |
Interact with module inputs and outputs |
Terraform Module Inputs and Outputs |
Accessing Module Output Values |
|
5c |
Describe variable scope within modules/child modules |
Terraform Module Scope |
Input Variables Calling a Child Module |
|
5d |
Discover modules from the public Terraform Module Registry |
Terraform Module Registry |
Finding and Using Modules |
|
5e |
Defining module version |
Terraform Module Versions |
Module Versions |
|
6 |
Navigate Terraform Workflow |
|
|
Quiz - Navigating Terraform Workflow |
6a |
Describe Terraform workflow ( Write -> Plan -> Create ) |
Terraform Workflow |
The Core Terraform Workflow |
|
6b |
Initialize a Terraform working directory (terraform init ) |
Terraform Init |
Command: init |
|
6c |
Validate a Terraform configuration (terraform validate ) |
Terraform Validate |
Command: validate |
|
6d |
Generate and review an execution plan for Terraform (terraform plan ) |
Terraform Plan |
Command: plan |
|
6e |
Execute changes to infrastructure with Terraform (terraform apply ) |
Terraform Apply |
Command: apply |
|
6f |
Destroy Terraform managed infrastructure (terraform destroy ) |
Terraform Destroy |
Command: destroy |
|
7 |
Implement and maintain state |
|
|
Quiz - Implement and Maintain State |
7a |
Describe default local backend |
Terraform State Default Local Backend |
Backends Local |
|
7b |
Outline state locking |
Terraform State Locking |
State Locking |
|
7c |
Handle backend authentication methods |
Terraform State Backend Authentication |
Backend Types |
|
7d |
Describe remote state storage mechanisms and supported standard backends |
Terraform State: Standard Backend Storage Terraform Remote State Enhanced Backend Terraform State Migration |
Backend Types |
|
7e |
Describe effect of Terraform refresh on state |
Terraform Refresh |
Command: refresh |
|
7f |
Describe backend block in configuration and best practices for partial configurations |
Terraform Backend |
Backend Configuration |
|
7g |
Understand secret management in state files |
Terraform Secrets in State |
Sensitive Data in State |
|
8 |
Read, generate, and modify configuration |
|
|
Quiz - Read, Generate and Modify Terraform Configuration |
8a |
Demonstrate use of variables and outputs |
Input Variables Terraform Local Values Terraform Outputs Terraform Variable Validation and Suppression |
Input Variables Output Values |
|
8b |
Describe secure secret injection best practice |
Secure Secrets in Terraform Code |
Vault Provider for Terraform |
|
8c |
Understand the use of collection and structural types |
Terraform Collection and Types |
Complex Types |
|
8d |
Create and differentiate resource and data configuration |
Terraform Resource Blocks Terraform Data Blocks |
Resources Data Sources |
|
8e |
Use resource addressing and resource parameters to connect resources together |
Terraform Interpolation |
Resource Addressing References to Named Values |
|
8f |
Use Terraform built-in functions to write configuration |
Terraform Console Terraform Built-in Functions |
Built-in Functions |
|
8g |
Configure resource using a dynamic block |
Terraform Dynamic Blocks |
Dynamic Blocks |
|
8h |
Describe built-in dependency management (order of execution based) |
Terraform Graph Terraform Lifecycles |
Resource Graph |
|
9 |
Understand Terraform Cloud and Enterprise capabilities |
Terraform Cloud Getting Started |
|
Quiz - Understand Terraform Cloud and Enterprise capabilities |
9a |
Describe the benefits of Sentinel, registry, and workspaces |
Terraform Cloud Workspaces Terraform Cloud Remote Backend Terraform Cloud Secure Variables Private Module Registry Sentinel for Teraraform |
Private Module Registry Sentinel |
|
9b |
Differentiate OSS and Terraform Cloud workspaces |
Terraform Cloud Workspaces |
CLI Workspaces Enterprise/Cloud Workspaces |
|
9c |
Summarize features of Terraform Cloud |
Terraform Cloud VCS Workflow |
Terraform Cloud The UI- and VCS-driven Run Workflow |
|
Exam Tips |
Exam Tips |
Exam Tips |
Bryan and Gabe's Exam Tips |
|
Extra |
Extending Terraform - Non-Cloud Providers |
Extending Terraform - Non-Cloud Providers |
Terraform Provider Registry |
|
Extra |
Terraform Auto-Complete |
Terraform Auto-Complete |
Terraform Shell Tab-completion |
|
Extra |
AWS Multi-Region Provider Alias |
AWS Multi-Region Provider Alias |
Terraform Provider Alias Configurations |
|