Terraform & IaC Certification Language — HashiCorp & DevOps English
Practice the vocabulary and exam question patterns for HashiCorp Terraform Associate and infrastructure-as-code concepts in cloud certifications.
0 / 25 completed
1 / 25
A Terraform Associate exam question asks: What is the purpose of terraform plan? Which answer is correct?
terraform plan generates a diff between current state and desired state. terraform apply makes the changes. terraform init downloads providers. terraform validate checks syntax. Knowing the exact purpose of each command is essential for the Terraform Associate exam.
2 / 25
What does 'idempotent' mean in the context of infrastructure as code?
Idempotency is a core IaC principle. If your Terraform configuration already matches the desired state, running terraform apply again makes no changes. This is fundamentally different from imperative scripts that can cause drift if run multiple times.
3 / 25
An exam question asks: What is Terraform state used for? Which answer is MOST accurate?
Terraform state is a JSON file (terraform.tfstate) that maps configuration resources to real infrastructure. Without state, Terraform cannot detect drift or plan incremental changes. Remote state backends (S3, Azure Blob, Terraform Cloud) are used for team collaboration.
4 / 25
A question asks about the difference between terraform destroy and removing a resource from configuration. Which is correct?
terraform destroy targets all resources in state. Removing a specific resource from .tf files and running apply targets only that resource. This distinction is frequently tested in Terraform Associate questions about resource lifecycle management.
5 / 25
An exam asks: Which Terraform feature allows you to reuse infrastructure patterns across multiple environments? Which answer is correct?
Modules are Terraform's primary reuse mechanism. A module is a directory of .tf files with variables and outputs. Workspaces manage multiple state files for the same configuration. Providers are plugins for specific cloud APIs. Backends define where state is stored.
6 / 25
During a code review for a new Terraform module designed to provision AWS S3 buckets, Sarah (the reviewer) comments on the PR description:
"This looks good, but I'm not seeing any explicit handling of versioning. We should definitely include a tag for each bucket creation so we can roll back if needed."
What does Sarah's comment primarily address regarding best practices in Terraform configuration?
Sarah's comment highlights a crucial aspect of Terraform configuration: versioning. While region and naming conventions are important, they don't directly address the ability to *undo* changes or revert to prior states. The core concern is managing infrastructure evolution – ensuring you can rollback if something goes wrong with a new deployment, which is fundamentally what versioning provides. Option D refers to IAM policies, a related but distinct security consideration.
7 / 25
Mark: "Hey team, I've just deployed the new Terraform module for our staging environment. The plan ran successfully, and everything looks green!"
Liam: "Sounds good, but before we merge this, could you add a comment to the PR describing how we're managing the Terraform state file? Specifically, are we using remote backends like S3 or Azure Blob Storage?"
What is Liam's primary concern regarding Mark's deployment?
Liam's comment isn't about fundamental IaC concepts like idempotency or infrastructure design; it's specifically about state management. Terraform state files are crucial for tracking changes and ensuring consistency across environments. Using a remote backend (like S3 or Azure Blob Storage) is a standard best practice to prevent data loss, enable collaboration, and manage versioning – something Mark hadn't explicitly addressed in his deployment update, representing a potential risk.
8 / 25
Mark just finished deploying a new Terraform module for the production environment. After running terraform plan, he confirms everything looks green and commits the changes. Later, during a standup update, Liam asks: 'Just to clarify, how are we handling potential state corruption? Are we using a remote backend with locking mechanisms, or is our state file stored locally?'
Which of the following best describes Liam's concern regarding Mark's deployment?
Liam's question isn't just a routine check; it's highlighting a critical aspect of Terraform deployments: state management. Terraform state files can become corrupted if multiple people or processes modify them simultaneously without proper locking. Using a remote backend with locking mechanisms (like S3 with DynamoDB transactions) prevents concurrent modifications and ensures the integrity of your infrastructure, which is why Liam is specifically asking about this.
9 / 25
During a code review for a new Terraform module responsible for deploying Kubernetes clusters, David (the reviewer) points out the following in a comment on the PR description:
"I noticed we're using the terraform output command to retrieve the public DNS of the created LoadBalancer. While functional, this introduces a dependency on a specific output name. It would be more robust and maintainable to use a variable for this value, allowing us to easily update it if the cluster configuration changes."
David's comment focuses on the principle of variable usage in Terraform. Directly referencing output variables can lead to fragility – if the output name changes, the code breaks. Using a variable provides flexibility and makes the module more resilient to configuration updates. This demonstrates an understanding of modularity and reduces coupling.
10 / 25
During a code review for a new Terraform module designed to provision Azure Virtual Machines, Emily (the reviewer) flags an issue in the PR description: "I'm concerned that this configuration doesn't include any explicit resource tagging. We need to consistently tag our VMs with metadata like environment and application for cost tracking and reporting.". What is Emily's primary concern regarding best practices when using Terraform?
Consider the long-term maintainability and operational efficiency of the infrastructure.
Emily's comment focuses on the critical aspect of resource tagging within Terraform. Without consistent tagging, it becomes incredibly difficult to manage and track costs associated with the infrastructure over time. This is a key best practice for IaC – ensuring traceability and facilitating efficient operations, reflecting a DevOps mindset.
11 / 25
During a code review for a new Terraform module designed to provision AWS S3 buckets, Sarah (the reviewer) comments on the PR description:
"This looks good, but I'm not seeing any explicit handling of versioning. We should definitely include a tag for each bucket creation so we can roll back if needed."
What does Sarah's comment primarily address regarding best practices in Terraform configuration?
Sarah's comment highlights a crucial aspect of Terraform configuration: versioning. While region and naming conventions are important, they don't directly address the ability to *undo* changes or revert to prior states. The core concern is managing infrastructure evolution – ensuring you can rollback if something goes wrong with a new deployment, which is fundamentally what versioning provides. Option D refers to IAM policies, a related but distinct security consideration.
12 / 25
Mark: "Hey team, I've just deployed the new Terraform module for our staging environment. The plan ran successfully, and everything looks green!"
Liam: "Sounds good, but before we merge this, could you add a comment to the PR describing how we're managing the Terraform state file? Specifically, are we using remote backends like S3 or Azure Blob Storage?"
What is Liam's primary concern regarding Mark's deployment?
Liam's comment isn't about fundamental IaC concepts like idempotency or infrastructure design; it's specifically about state management. Terraform state files are crucial for tracking changes and ensuring consistency across environments. Using a remote backend (like S3 or Azure Blob Storage) is a standard best practice to prevent data loss, enable collaboration, and manage versioning – something Mark hadn't explicitly addressed in his deployment update, representing a potential risk.
13 / 25
Mark just finished deploying a new Terraform module for the production environment. After running terraform plan, he confirms everything looks green and commits the changes. Later, during a standup update, Liam asks: 'Just to clarify, how are we handling potential state corruption? Are we using a remote backend with locking mechanisms, or is our state file stored locally?'
Which of the following best describes Liam's concern regarding Mark's deployment?
Liam's question isn't just a routine check; it's highlighting a critical aspect of Terraform deployments: state management. Terraform state files can become corrupted if multiple people or processes modify them simultaneously without proper locking. Using a remote backend with locking mechanisms (like S3 with DynamoDB transactions) prevents concurrent modifications and ensures the integrity of your infrastructure, which is why Liam is specifically asking about this.
14 / 25
During a code review for a new Terraform module responsible for deploying Kubernetes clusters, David (the reviewer) points out the following in a comment on the PR description:
"I noticed we're using the terraform output command to retrieve the public DNS of the created LoadBalancer. While functional, this introduces a dependency on a specific output name. It would be more robust and maintainable to use a variable for this value, allowing us to easily update it if the cluster configuration changes."
David's comment focuses on the principle of variable usage in Terraform. Directly referencing output variables can lead to fragility – if the output name changes, the code breaks. Using a variable provides flexibility and makes the module more resilient to configuration updates. This demonstrates an understanding of modularity and reduces coupling.
15 / 25
During a code review for a new Terraform module designed to provision Azure Virtual Machines, Emily (the reviewer) flags an issue in the PR description: "I'm concerned that this configuration doesn't include any explicit resource tagging. We need to consistently tag our VMs with metadata like environment and application for cost tracking and reporting.". What is Emily's primary concern regarding best practices when using Terraform?
Consider the long-term maintainability and operational efficiency of the infrastructure.
Emily's comment focuses on the critical aspect of resource tagging within Terraform. Without consistent tagging, it becomes incredibly difficult to manage and track costs associated with the infrastructure over time. This is a key best practice for IaC – ensuring traceability and facilitating efficient operations, reflecting a DevOps mindset.
16 / 25
During a code review for a new Terraform module designed to provision AWS S3 buckets, Sarah (the reviewer) comments on the PR description:
"This looks good, but I'm not seeing any explicit handling of versioning. We should definitely include a tag for each bucket creation so we can roll back if needed."
What does Sarah's comment primarily address regarding best practices in Terraform configuration?
Sarah's comment highlights a crucial aspect of Terraform configuration: versioning. While region and naming conventions are important, they don't directly address the ability to *undo* changes or revert to prior states. The core concern is managing infrastructure evolution – ensuring you can rollback if something goes wrong with a new deployment, which is fundamentally what versioning provides. Option D refers to IAM policies, a related but distinct security consideration.
17 / 25
Mark: "Hey team, I've just deployed the new Terraform module for our staging environment. The plan ran successfully, and everything looks green!"
Liam: "Sounds good, but before we merge this, could you add a comment to the PR describing how we're managing the Terraform state file? Specifically, are we using remote backends like S3 or Azure Blob Storage?"
What is Liam's primary concern regarding Mark's deployment?
Liam's comment isn't about fundamental IaC concepts like idempotency or infrastructure design; it's specifically about state management. Terraform state files are crucial for tracking changes and ensuring consistency across environments. Using a remote backend (like S3 or Azure Blob Storage) is a standard best practice to prevent data loss, enable collaboration, and manage versioning – something Mark hadn't explicitly addressed in his deployment update, representing a potential risk.
18 / 25
Mark just finished deploying a new Terraform module for the production environment. After running terraform plan, he confirms everything looks green and commits the changes. Later, during a standup update, Liam asks: 'Just to clarify, how are we handling potential state corruption? Are we using a remote backend with locking mechanisms, or is our state file stored locally?'
Which of the following best describes Liam's concern regarding Mark's deployment?
Liam's question isn't just a routine check; it's highlighting a critical aspect of Terraform deployments: state management. Terraform state files can become corrupted if multiple people or processes modify them simultaneously without proper locking. Using a remote backend with locking mechanisms (like S3 with DynamoDB transactions) prevents concurrent modifications and ensures the integrity of your infrastructure, which is why Liam is specifically asking about this.
19 / 25
During a code review for a new Terraform module responsible for deploying Kubernetes clusters, David (the reviewer) points out the following in a comment on the PR description:
"I noticed we're using the terraform output command to retrieve the public DNS of the created LoadBalancer. While functional, this introduces a dependency on a specific output name. It would be more robust and maintainable to use a variable for this value, allowing us to easily update it if the cluster configuration changes."
David's comment focuses on the principle of variable usage in Terraform. Directly referencing output variables can lead to fragility – if the output name changes, the code breaks. Using a variable provides flexibility and makes the module more resilient to configuration updates. This demonstrates an understanding of modularity and reduces coupling.
20 / 25
During a code review for a new Terraform module designed to provision Azure Virtual Machines, Emily (the reviewer) flags an issue in the PR description: "I'm concerned that this configuration doesn't include any explicit resource tagging. We need to consistently tag our VMs with metadata like environment and application for cost tracking and reporting.". What is Emily's primary concern regarding best practices when using Terraform?
Consider the long-term maintainability and operational efficiency of the infrastructure.
Emily's comment focuses on the critical aspect of resource tagging within Terraform. Without consistent tagging, it becomes incredibly difficult to manage and track costs associated with the infrastructure over time. This is a key best practice for IaC – ensuring traceability and facilitating efficient operations, reflecting a DevOps mindset.
21 / 25
During a code review for a new Terraform module designed to provision AWS S3 buckets, Sarah (the reviewer) comments on the PR description:
"This looks good, but I'm not seeing any explicit handling of versioning. We should definitely include a tag for each bucket creation so we can roll back if needed."
What does Sarah's comment primarily address regarding best practices in Terraform configuration?
Sarah's comment highlights a crucial aspect of Terraform configuration: versioning. While region and naming conventions are important, they don't directly address the ability to *undo* changes or revert to prior states. The core concern is managing infrastructure evolution – ensuring you can rollback if something goes wrong with a new deployment, which is fundamentally what versioning provides. Option D refers to IAM policies, a related but distinct security consideration.
22 / 25
Mark: "Hey team, I've just deployed the new Terraform module for our staging environment. The plan ran successfully, and everything looks green!"
Liam: "Sounds good, but before we merge this, could you add a comment to the PR describing how we're managing the Terraform state file? Specifically, are we using remote backends like S3 or Azure Blob Storage?"
What is Liam's primary concern regarding Mark's deployment?
Liam's comment isn't about fundamental IaC concepts like idempotency or infrastructure design; it's specifically about state management. Terraform state files are crucial for tracking changes and ensuring consistency across environments. Using a remote backend (like S3 or Azure Blob Storage) is a standard best practice to prevent data loss, enable collaboration, and manage versioning – something Mark hadn't explicitly addressed in his deployment update, representing a potential risk.
23 / 25
Mark just finished deploying a new Terraform module for the production environment. After running terraform plan, he confirms everything looks green and commits the changes. Later, during a standup update, Liam asks: 'Just to clarify, how are we handling potential state corruption? Are we using a remote backend with locking mechanisms, or is our state file stored locally?'
Which of the following best describes Liam's concern regarding Mark's deployment?
Liam's question isn't just a routine check; it's highlighting a critical aspect of Terraform deployments: state management. Terraform state files can become corrupted if multiple people or processes modify them simultaneously without proper locking. Using a remote backend with locking mechanisms (like S3 with DynamoDB transactions) prevents concurrent modifications and ensures the integrity of your infrastructure, which is why Liam is specifically asking about this.
24 / 25
During a code review for a new Terraform module responsible for deploying Kubernetes clusters, David (the reviewer) points out the following in a comment on the PR description:
"I noticed we're using the terraform output command to retrieve the public DNS of the created LoadBalancer. While functional, this introduces a dependency on a specific output name. It would be more robust and maintainable to use a variable for this value, allowing us to easily update it if the cluster configuration changes."
David's comment focuses on the principle of variable usage in Terraform. Directly referencing output variables can lead to fragility – if the output name changes, the code breaks. Using a variable provides flexibility and makes the module more resilient to configuration updates. This demonstrates an understanding of modularity and reduces coupling.
25 / 25
During a code review for a new Terraform module designed to provision Azure Virtual Machines, Emily (the reviewer) flags an issue in the PR description: "I'm concerned that this configuration doesn't include any explicit resource tagging. We need to consistently tag our VMs with metadata like environment and application for cost tracking and reporting.". What is Emily's primary concern regarding best practices when using Terraform?
Consider the long-term maintainability and operational efficiency of the infrastructure.
Emily's comment focuses on the critical aspect of resource tagging within Terraform. Without consistent tagging, it becomes incredibly difficult to manage and track costs associated with the infrastructure over time. This is a key best practice for IaC – ensuring traceability and facilitating efficient operations, reflecting a DevOps mindset.
What will I practice in "Terraform & IaC Certification Language — HashiCorp & DevOps English"?
This is a Certification Prep exercise set. It walks through 25 scenario-based multiple-choice questions built around real usage of Certification Prep terminology that IT professionals encounter on the job.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is free to complete with no account, sign-up, or paywall.
How many questions are in this exercise?
This set contains 25 questions. Each one shows immediate feedback and a detailed explanation after you answer, so you learn the correct usage right away rather than waiting for a final score.
Do I need prior experience to complete this exercise?
No prior experience is required. Each question includes a full explanation covering the reasoning behind the correct answer, so the exercise itself teaches the Certification Prep vocabulary as you go.
Can I retry the exercise if I get questions wrong?
Yes — use the "Try again" button on the results screen to reset your answers and go through all the questions again. There is no limit on attempts.
Is my progress saved?
Your answers and score for the current session are tracked in the browser as you go. No account or login is needed, and there is nothing to install.
What if I don't understand a term used in a question?
Read the explanation shown after you answer each question — it breaks down the correct term in plain English with a real-world example. You can also check the site Glossary for quick definitions.
How is this different from reading a blog article on the topic?
Exercises like this one are interactive drills that test and reinforce specific vocabulary through multiple-choice questions, while blog articles explain concepts in prose. Practising here after reading builds active recall, not just passive recognition.
Where can I find more Certification Prep exercises?
See the Certification Prep exercises hub for the full set of related pages, or browse all exercise categories from the main Exercises index.
Can I use this exercise to prepare for a technical interview?
Yes — Certification Prep vocabulary comes up often in technical discussions and interviews. Pair this exercise with our dedicated Interview Preparation section for role-specific practice.