Intro
The thing we usually forget when completing a certification is to save a mental image of the topics that were exciting to learn or the concepts that we had no clue about right before starting the preparation. This is what practitioners should focus on after every major Cloud cert exam, as it provides an accurate snapshot of your feeling about the certification material. Therefore, when I was asked about my impressions on the Terraform Associate Certification exam, I decided to share my thoughts in my blog around the prep, and my feedback on the course I followed.
After timidly starting my "terraform for dummies" blog series, one cloud at a time (OCI, AWS, GCP, Azure) and even On-Prem, It didn't make sense not to take this exam and I am glad It finally happened.
Hashicorp is an exciting company & their disruptive vision is a game changer in a world where automation is King.
The exam summary
Table of contents
All you need to know about the exam can be found in the official Page. But bellow is what to expect in a nutshell:
Length: 1 hours.
Questions: 57
Exam format: Multiple choice and multiple select
Recommended experience: Hands-on experience on deployments on any major Cloud platform.
Pass/actual Score: 70%.
Score per topic: Available and broke down into 9 content area.
Terraform version: 0.12 and higher.
Exam center: PSI Online (requires GitHub account)
Retake Policy: 7 days between exam failed attempts. Max 4 exam attempts in total in a one year period.
Pass confirmation: Results and badge in less than 1 hour.
Preparation time: Few weekends if you have already deployed with terraform (videos+ labs + practice exams) .
Impressions
It may feel intimidating at first for a tech that’s still young but just getting familiar with the syntax and trying few deployment samples in AWS can help getting into it. Now of course, I didn’t really start from scratch considering all my deployments shenanigans in 4 major cloud providers, but I was still far from having what it takes to pass. Above all, what really surprised me when starting my prep journey is how little I knew about the extent of their services and features available in the OSS version of terraform. Those were exciting bits that I can’t wait to use, like remote backends, Terraform Cloud along with modules that I hate less now :). More about it in the Last tip section.
By the way, If you’re too broke for ACloudGuru, jump right to 100% FREE section
Exam guide | Official material
Again the content is available in the official hashcorp certification page including the study guide and exam review. It is broken down into 9 areas. I have put Hashicorp Doc/tutorial link for each sub section respectively.
- 1. Understand infrastructure as code (IaC) concepts
- 2. Understand Terraform's purpose (vs other IaC)
- 3. Understand Terraform basics
- 4. Use the Terraform CLI (outside of core workflow)
- 5. Interact with Terraform modules
-
6. Navigate Terraform workflow
-
-
7. Implement and maintain state
-
-
8.Read, generate, and modify configuration
-
-
9. Understand Terraform Cloud and Enterprise capabilities
-
-
-
Exam guide | Official material
Again the content is available in the official hashcorp certification page including the study guide and exam review. It is broken down into 9 areas. I have put Hashicorp Doc/tutorial link for each sub section respectively.
- 1. Understand infrastructure as code (IaC) concepts
- 2. Understand Terraform's purpose (vs other IaC)
- 3. Understand Terraform basics
- 4. Use the Terraform CLI (outside of core workflow)
- 5. Interact with Terraform modules
-
6. Navigate Terraform workflow
-
7. Implement and maintain state
-
8.Read, generate, and modify configuration
-
9. Understand Terraform Cloud and Enterprise capabilities
What I liked about it
Believe it or not, I completely missed that Hashicorp had lab tutorials for each topic in their study guide. That’s so cool because you get to practice in a timed sandbox just by following their instructions and all for free. It’s too late for me, but I wanted to emphasize on Hashicorp’s efforts here, as labs are very important to prepare for this exam.
I know these are a lot of things to cover, but just keep in mind that at the end of the day the key workflow is:
✅ Write –> terraform Plan –> terraform Apply –> Terraform Destroy
Courses I followed
As usual first thing people do is shop online for the best training material and possibly free. But in my case I took advantage of already available course in my CloudGuru Subscription.
I. A Cloud Guru:
HashiCorp Certified Terraform Associate
This required paying a yearly subscription for which I thank my Company for sponsoring this learning path.
- Pros
- This is by far the best learning platform I ever tried, not just for preparing certs but also to follow tailored paths where you can learn by practicing through 100s of labs available
- Moosa Khalid was very effective making the course interesting & easy to follow without unnecessary frills
- The themed labs in this course are available at the end of each section
- It also has an exam practice which can be very handy
- Modules , variable types (Collections,complex types), and concepts like vault were very well covered
- Cons
- Although most topics, labs did the job, I found that some points still lacked detailed/necessary coverage
- Missing examples on attributes for init subcommand like –backend or out
- Missing different Ways to configure a remote Backend depending on the chosen source
- Missing different ways to call modules
- Pro Tip : skip the second half of the labs and do them all together when finishing with the theory(videos)
100% Free resources
I. Youtube
HashiCorp Terraform Associate Certification Course - Pass the Exam! By @AndrewBrown
Content:
It’s 12 hours long and was dropped few months ago but still valid. Andrew is very popular in the Cloud community as he has a lot of free courses in YouTube beside his learning platform in examPro . I didn’t follow this one but he never ceases to deliver , as I followed a couple of his free courses in the past.
Learn Terraform by Building a Dev Environment – Full Course for Beginners By @Derek Morgan
Content:
This will not meant to answer all the exam questions but will rather help you get the necessary skills to get familiar with terraform deployments in AWS. That is why it is only 1 hour and half long. I didn’t need it but it’s a good start before diving into the exam theory concepts.
II. Exam practice/ Articles
There are many but the only one that stood out for my is the following medium blog post by Bhargav Bachina
III. My notes and labs
This is basically a mix of Bhargav’s Sample questions with tips I gathered during my learning from ACG/other . This was more than enough to confidently pass teh exam. I still use it today to refresh my memory on terraform options and tricky commands.
Link: BrokeDBA Bundles Notes on Hashicorp terraform associate exam
Pro-Tip:
Another way to learn about terraform in any cloud platform is to read my Terraform for dummies Blog Series.
Last tip (goodies)
The online courses won’t help clear all the exam questions, so you better train a bit more. The last contribution I wanted to share is few tricks/notes on things I learned that I had no clue about before preparing the exam
- Terraform init options
$ terraform init -backend=false -- skip backend
$ terraform init -get=false -- skip modules
$ terraform init -get-plugins=false -- skip plugins - Module location: terraform/modules/
- Syntax for referencing a registry module: <NAMESPACE>/<NAME>/<PROVIDER>
module "consul" {
source = "hashicorp/consul/aws"
version = "0.1.0"
} - Syntax for referencing a private registry module : <HOSTNAME>/<Org-NAME>/<NAME>/<PROVIDER>
module "vpc" {
source = "app.terraform.io/My_corp/vpc/aws" –>
version = "0.9.3"
} - Preview the behavior of the command terraform destroy
$ terraform plan –destroy - Save the execution plan
$ terraform plan -out=filename - Manually source module into your working directory
$ terraform init -from-module=MODULE-SOURCE - target only specific resources when you run a terraform plan/destroy
-target=resource - Update the state prior to checking differences when you run a terraform plan
$ terraform plan -refresh=true - Provide remaining arguments when using partial configuration
- Interactively:
- File: terraform init -backend-config=PATH
- Command-line key/pair: terraform -backend-config="KEY=VALUE"