README

Terraform Associate (004)

The Terraform Associate certification is for cloud engineers who know fundamental Terraform Community Edition and HCP Terraform concepts and skills. You will be best prepared for this exam if you have professional experience using Terraform in production, but performing the exam objectives in a personal demo environment may be sufficient. https://developer.hashicorp.com/terraform/tutorials/certification-004/associate-study-004

Exam objectives

1 Infrastructure as Code (IaC) with Terraform 1a Explain what IaC is 1b Describe the advantages of IaC patterns 1c Explain how Terraform manages multi-cloud, hybrid cloud, and service-agnostic workflows 2 Terraform fundamentals 2a Install and version Terraform providers 2b Describe how Terraform uses providers 2c Write Terraform configuration using multiple providers 2d Explain how Terraform uses and manages state 3 Core Terraform workflow 3a Describe the Terraform workflow 3b Initialize a Terraform working directory 3c Validate a Terraform configuration 3d Generate and review an execution plan for Terraform 3e Apply changes to infrastructure with Terraform 3f Destroy Terraform-managed infrastructure 3g Apply formatting and style adjustments to a configuration 4 Terraform configuration 4a Use and differentiate resource and data blocks 4b Refer to resource attributes and create cross-resource references 4c Use variables and outputs 4d Understand and use complex types 4e Write dynamic configuration using expressions and functions 4f Define resource dependencies in configuration 4g Validate configuration using custom conditions 4h Understand best practices for managing sensitive data, including secrets management with Vault 5 Terraform modules 5a Explain how Terraform sources modules 5b Describe variable scope within modules 5c Use modules in configuration 5d Manage module versions 6 Terraform state management 6a Describe the local backend 6b Describe state locking 6c Configure remote state using the backend block 6d Manage resource drift and Terraform state 7 Maintain infrastructure with Terraform 7a Import existing infrastructure into your Terraform workspace 7b Use the CLI to inspect state 7c Describe when and how to use verbose logging 8 HCP Terraform 8a Use HCP Terraform to create infrastructure 8b Describe HCP Terraform collaboration and governance features 8c Describe how to organize and use HCP Terraform workspaces and projects 8d Configure and use HCP Terraform integration

Associate learning path (004)

Learn about Infrastructure as Code (IaC)

Terraform is a tool that lets you define infrastructure in human and machine-readable code. Review the following resources to learn about the advantages of Infrastructure as Code (IaC), and the advantages of Terraform specifically, which covers Objective #1 in the exam.

Review Terraform fundamentals

Complete all tutorials in the Get Started with Terraform collection for the cloud provider of your choice: Amazon Web Services, Microsoft Azure, Google Cloud Platform, or Docker. In these tutorials, you will create, modify, and destroy your first infrastructure using Terraform. You will also learn about Terraform providers and the concept of Terraform state. These resources cover Terraform fundamentals you will be tested on in Objective #2 of the exam.

Review the following resources to learn more about how Terraform uses a workspace's state and providers to manage infrastructure.

Review the following resources to learn how to manage Terraform and provider versions in workspaces.

Use the core Terraform workflow

The core Terraform workflow consists of writing configuration, initializing a workspace in a local working directory, planning infrastructure changes, and then applying them. The Terraform CLI also offers subcommands to validate and format your configuration as you develop it. Review the following resources to learn about the core Terraform workflow, which cover Objective #3 of the exam.

Terraform creates plans for infrastructure changes by creating a depedency graph between the resources defined in a workspace's configuration. Review the Terraform dependency graph documentation to learn how the dependency graph works, how to manage resource lifecycle, and how to troubleshoot Terraform.

Read and write configuration

Terraform configuration uses the HashiCorp Configuration Language (HCL). Review these resources to learn more about reading and writing Terraform configuration, which cover Objective #4 of the exam.

Review the following resources to learn about declaring resource and data source blocks.

Review the following resources to learn how to reference and create dependencies between Terraform resources, data sources, and other constructs.

Review the following resources to learn how to use input variables and output values in Terraform configuration.

Review the following resources to learn how to use functions, complex data types, and dynamic expressions in Terraform configuration.

Review the following resources to learn how to use Terraform to manage resource lifecycle.

Review the following resources to learn how to use custom conditions and checks to validate configuration.

Terraform configuration may require access to sensitive data to provision infrastructure. Review the following resources to learn how to protect sensitive data with Terraform and Vault.

Use and create modules

Modules help you organize and re-use Terraform configuration. Review the following resources to learn how to use modules from the Terraform registry and how to create your own modules, which cover Objective #5 in the exam.

Learn about Terraform state management

When you apply a configuration, Terraform creates a state file that maps real world resources to your configuration, keeps track of metadata, and improves performance for large infrastructures. Review the following resources to learn how to manage Terraform state, which cover Objective #6 in the exam.

Terraform supports storing your state file locally, in a remote backend, or in HCP Terraform. Review the following resources to learn how to manage local and remote state backends. Using HCP Terraform is covered in objective #8.

Maintain infrastructure with Terraform

After provisioning resources with Terraform, use Terraform to maintain the infrastructure managed in a workspace. Review the following resources to learn how to maintain an infrastructure project with a Terraform workspace, which cover Objective #7 in the exam.

Use HCP Terraform

HCP Terraform is HashiCorp's hosted service for Terraform. It securely stores state, credentials, and environment variables, and can connect to version control systems. The following resources cover Objective #8 in the exam.

Review the following resources to learn how to use HCP Terraform to manage infrastructure in Terraform workspaces.

HCP Terraform supports multiple execution workflows, including the CLI-driven and VCS-driven workflows. Review the following resources to learn how to migrate a local workspace to HCP Terraform and implement the CLI-driven workflow.

Review the following resource to learn how to connect with run triggers and remote state data sources.

Review the following resources to learn how to organize workspaces into projects.

Review the following resources to learn how to manage multiple variable sets with HCP Terraform.

HCP Terraform includes features for collaboration and governance, including team permissions management, and health and policy assessments. Review the following resources to learn how to manage teams and permissions.

Review the following resources to learn how to configure dynamic provider credentials in HCP Terraform.

Review the following resources to learn how to configure and use health assessments, drift detection, and policies in your HCP Terraform workspaces.

Review the following resources to learn how to use HCP Terraform's explorer and change requests features.