Introduction
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 Certification Exam, as it provides an accurate snapshot of your feelings 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 about 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 & its 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 on the official Page. But below is what to expect in a nutshell:
Length: 1 hour
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 broken down into 9 content areas
Terraform Version: 0.12 and higher.
Exam Centre: PSI Online (GitHub Account Required)
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: A few weekends if you have already deployed with Terraform (videos+ labs + practice exams)
First Impressions
It may feel intimidating at first for a tech that’s still young, but just getting familiar with Syntax and trying a few deployment samples in AWS (Amazon Web Services) can help get into it. Now, of course, I didn’t really start from scratch considering all my deployment 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 was how little I knew about the extent of the services and features available in the OSS version of Terraform. Those were exciting bits that I can’t wait to use, like remote backends, and 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 the 100% FREE section
Exam Guide | Official Material
Again the content is available on the Official HashiCorp Certification Page including the study guide and exam review. It is broken down into 9 areas. I have put the HashiCorp Doc/Tutorial link for each subsection 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 the 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 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 the 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 for following tailored paths where you can learn by practicing through 100s of labs available
-
Moosa Khalid was very effective in 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, and 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
1. HashiCorp Terraform Associate Certification Course – Pass the Exam! By @AndrewBrown
Content:
It’s 12 hours long and was dropped a few months ago but still valid. Andrew is very popular in the Cloud community as he has a lot of free courses on YouTube besides 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.
2. Learn Terraform by Building a Dev Environment – Full Course for Beginners By @Derek Morgan
Content:
This will not mean answering 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 a 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 me 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/others. This was more than enough to confidently pass the 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 (The 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 a few tricks/notes on things I learned that I had no clue about before preparing for 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 the 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”
Conclusion
As I said It was long overdue but I am very glad I finally passed the Terraform associate exam. It is a very exciting realm and I can’t wait to learn even more each day. I hope this blog post will help those who are interested in taking a step forward to start their preparation journey as I did a few months ago. Best of luck!