Learn vocabulary for designing, publishing, and discussing Terraform modules.
0 / 10 completed
1 / 10
What is a Terraform module?
A Terraform module is a directory of .tf files that can be called with input variables to create reusable infrastructure patterns — like a VPC module or a Kubernetes cluster module.
2 / 10
What is a module's 'interface' in Terraform?
A module's interface is defined by its variable blocks (inputs) and output blocks (outputs). Good module design creates a minimal, stable interface that hides implementation details.
3 / 10
What is the Terraform Module Registry?
The Terraform Module Registry (registry.terraform.io) is a public repository for open-source Terraform modules. HashiCorp also certifies Verified Modules from trusted partners.
4 / 10
What does 'module version pinning' mean?
Module version pinning specifies a version constraint (e.g., version = '~> 3.0') in the module call, preventing unexpected breaking changes from automatic upgrades.
5 / 10
What is 'CODEOWNERS' in the context of a Terraform module repository?
CODEOWNERS (a GitHub/GitLab file) specifies who must review pull requests affecting specific files or directories — essential for enforcing review processes for shared infrastructure modules.
6 / 10
Liam (Senior DevOps Engineer) comments on a PR proposing a new module for deploying network security groups:
'This looks good overall, but I'm not seeing any explicit definition of the module's inputs. We need to ensure we can configure the security_group_name and vpc_id parameters clearly. Without this, it's difficult to understand how this module will integrate with our existing infrastructure.'
The comment highlights a critical aspect of Terraform module design: clear input definitions. A common misconception is assuming all parameters are obvious. Liam's feedback correctly points out the need to explicitly declare and document expected inputs – this ensures maintainability and prevents integration issues when the module is used in different contexts. Option A reflects an overly permissive response, while B, C, and D introduce irrelevant concerns.
7 / 10
Sarah (Terraform Engineer) receives the following API response after running `terraform plan`:
```json
{
"changes": [
{
"from": null,
"to": "/path/to/my_module/variables.tf",
"action": "add"
}
],
"plan_key": "module_creation"
}
```
What does this response primarily indicate?
This API response confirms that a *new* Terraform module instance is being created. The `changes` section specifically shows adding a file (variables.tf) to the root level of the module during the planning phase. Options A and B are incorrect because this isn't an update; C is misleading as it relates to the state, and D implies a code error – which isn't indicated.
8 / 10
David (Lead Developer) writes the following PR description for a new Terraform module:
'This module deploys a basic web server. It takes an instance size and a public IP address as input. It automatically creates security groups, allows inbound HTTP traffic, and sets up a basic DNS record.'
David's description effectively communicates the module's purpose, its required inputs (instance size and public IP), and key configurations (security groups, inbound traffic, DNS). While brevity is always good, this level of detail provides a solid understanding for users. Options A suggests unnecessary reduction; B misrepresents clarity; C ignores critical details about infrastructure; and D neglects important security aspects.
9 / 10
Maria (Terraform Engineer) is discussing module versioning with her team. She says: 'We need to pin the module version to avoid unexpected changes when we update our Terraform environment.' What does Maria primarily mean?
'Pinning' a Terraform module version means explicitly specifying the exact version number. This prevents Terraform from automatically upgrading the module to the latest available version and potentially introducing breaking changes that could disrupt existing infrastructure configurations. Option A describes updating; B is related to dependency management (but not the core meaning of pinning); and D suggests an undesirable manual process.
10 / 10
Rajesh (Infrastructure Architect) is reviewing a Terraform repository and notices a `CODEOWNERS` file. What is the primary purpose of this file?
The `CODEOWNERS` file in a Terraform repository maps modules to the teams or individuals who are responsible for their maintenance and updates. This is crucial for efficient code review processes and ensures that changes are reviewed by those with relevant expertise. Options A and B relate to module usage or team responsibilities; C describes dependencies, and D outlines security policies – all of which have different files dedicated to them.
What does this Terraform Operations exercise cover?
This exercise, "Terraform Module Design — Vocabulary and Language", tests your understanding of terraform operations vocabulary and phrasing through 10 multiple-choice questions drawn from real workplace scenarios.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is completely free — no account, sign-up, or payment required.
How many questions does this exercise have?
This exercise has 10 questions. Each one presents a realistic sentence or scenario with multiple-choice options and an explanation once you answer.
What happens after I answer a question?
You'll see immediate feedback showing whether your answer was correct, along with a short explanation of why — then a button to move to the next question.
Can I retry the exercise if I get questions wrong?
Yes. Once you reach the results screen, click "Try again" to reset your answers and go through the exercise from the start as many times as you like.
Do I need to create an account to take this exercise?
No account is needed. Your answers are scored in your browser during the session — nothing is saved to a server, so you can jump straight in.
Is my progress saved if I leave the page?
No — progress within an exercise resets if you navigate away or reload. Each exercise is short enough to complete in a few minutes in one sitting.
Who is this Terraform Operations exercise for?
It's designed for IT professionals and learners who want to sound natural discussing terraform operations topics in English — useful for meetings, documentation, interviews, and day-to-day communication with English-speaking teams.
How is this different from reading a glossary or blog article?
Exercises like this one are active recall drills — you have to choose the correct term or phrasing yourself, which builds retention faster than passively reading a definition.
Where can I find more Terraform Operations exercises?
Browse the full Terraform Operations exercises hub for more practice, or explore other exercise categories covering vocabulary, grammar, interviews, and workplace communication.