This is the start of a new blog series covering the Terraform Authoring and Operations Professional certification from HashiCorp, or more briefly put: the Terraform Professional certification. As with my other series covering HashiCorp product certifications I will structure this course around the exam objectives, where each post will cover one objective.
Speaking of other series, if you are new to Terraform you should start with the Terraform Associate certification:
I took part in the alpha testing of this exam when I was at HashiConf in San Francisco last year. The exam is performance based. You are dropped into a virtual environment where you are to perform tasks related to one or more Terraform configurations that you are given. I think the format is excellent, and I do prefer it over the usual multiple-choice questions type of certifications. I did have a huge disadvantage at the alpha testing, the environment used an American keyboard layout and my keyboard has the Swedish layout. I was unable to change the layout in the desktop environment, so I was having a bit of an issue finding the correct keys. I do hope that it will be possible to change keyboard layout in the real exam! But just to be sure I will practice with an American keyboard layout before I do the real exam.
An overview of the exam objectives is provided in the following table:
# | Exam Objective |
---|---|
1 | Manage resource lifecycle |
Initialize a configuration using terraform init and its options | |
Generate an execution plan using terraform plan and its options | |
Apply configuration changes using terraform apply and its options | |
Destroy resources using terraform destroy and its options | |
Manage resource state, including importing resources and reconciling resource drift | |
2 | Develop and troubleshoot dynamic configuration |
Use language features to validate configuration | |
Query providers using data sources | |
Compute and interpolate data using HCL functions | |
Use meta-arguments in configuration | |
Configure input variables and outputs, including complex types | |
Analyze best practices for managing sensitive data, such as using Vault for secrets management | |
3 | Develop collaborative Terraform workflows |
Manage the Terraform binary, providers, and modules using version constraints | |
Configure remote state | |
Use the Terraform workflow in automation | |
Share data across configurations and workspaces | |
4 | Create, maintain, and use Terraform modules |
Create a module | |
Use a module in configuration | |
Refactor a module and use module versioning | |
Refactor an existing configuration into modules | |
5 | Configure and use Terraform providers |
Understand Terraform’s plugin-based architecture | |
Configure providers, including aliasing, versioning, sourcing, and managing upgrades | |
Manage provider authentication | |
Troubleshoot provider errors | |
6 | Collaborate on infrastructure as code using HCP Terraform |
Analyze the HCP Terraform run workflow | |
Understand HCP Terraform workspaces and their configuration options, including access management | |
Manage provider credentials in HCP Terraform | |
Analyze policy as code and governance features |
I will assume you are familiar with the basics of Terraform to be able to follow along this series. If not, I refer you back to my series on the Terraform Associate certification.
In the next post in this series I will cover exam objective 1 “Manage resource lifecycle”.