Free Practice Questions for HashiCorp Terraform Authoring and Operations Professional Certification
Study with 322 exam-style practice questions designed to help you prepare for the HashiCorp Terraform Authoring and Operations Professional.
Start Practicing
All Domains
Practice with randomly mixed questions from all topics
Domain Mode
Practice questions from a specific topic area
Quiz History
Exam Details
Key information about HashiCorp Terraform Authoring and Operations Professional
- Multiple choice
Professional experience using Terraform with the AWS provider is required.
Exam Topics & Skills Assessed
Skills measured (from the official study guide)
Domain 1: Manage resource lifecycle
Subdomain 1.1: Initialize a configuration using terraform init and its options
This subdomain covers initializing a Terraform configuration using the `init` command and its various options.
- Initialization overview - init CLI command
Subdomain 1.2: Generate an execution plan using terraform plan and its options
This subdomain covers generating and reviewing execution plans with the `plan` command to preview changes before applying them.
- plan CLI command
Subdomain 1.3: Apply configuration changes using terraform apply and its options
This subdomain covers applying configuration changes to create, update, or delete infrastructure resources using the `apply` command.
- apply CLI command
Subdomain 1.4: Destroy resources using terraform destroy and its options
This subdomain covers destroying Terraform-managed infrastructure using the `destroy` command and its options.
- destroy CLI command
Subdomain 1.5: Manage resource state, including importing resources and reconciling resource drift
This subdomain covers advanced state management tasks, including importing existing resources into Terraform state, moving resources within the state, and reconciling differences between configuration and the real-world infrastructure.
- State overview - import blocks - moved blocks - CLI documentation
Domain 2: Develop & troubleshoot dynamic configuration
Subdomain 2.1: Use language features to validate configuration
This subdomain covers using HCL features to ensure configuration is valid and adheres to requirements. This includes writing tests and checks, defining input variables with type constraints, and implementing custom validation conditions.
- Tests - Checks - Input variables - Type constraints - Custom conditions
Subdomain 2.2: Query providers using data sources
This subdomain covers using data sources to fetch information from provider APIs, allowing configurations to be more dynamic and reference existing infrastructure.
- Data sources
Subdomain 2.3: Compute and interpolate data using HCL functions
This subdomain covers using built-in HCL functions to transform and combine data, enabling complex logic and dynamic value generation within the configuration.
- Functions
Subdomain 2.4: Use meta-arguments in configuration
This subdomain covers the use of meta-arguments like `count`, `for_each`, `depends_on`, and `lifecycle` to control resource behavior and create dynamic, scalable configurations.
- Resources
Subdomain 2.5: Configure input variables and outputs, including complex types
This subdomain covers defining input variables to parameterize configurations and outputs to expose information. This includes working with complex data types like lists, maps, and objects.
- Variables and outputs - Types and values - Expressions
Subdomain 2.6: Analyze best practices for managing sensitive data, such as using Vault for secrets management.
This subdomain covers strategies for handling sensitive data within Terraform configurations, including understanding how sensitive values are stored in state and integrating with external secrets management tools like HashiCorp Vault.
- Sensitive data in state
Domain 3: Develop collaborative Terraform workflows
Subdomain 3.1: Manage the Terraform binary, providers, and modules using version constraints
This subdomain covers best practices for ensuring consistent and predictable Terraform runs by pinning versions of the Terraform binary, providers, and modules using version constraints and the dependency lock file.
- terraform blocks - Version constraints - Dependency lock file
Subdomain 3.2: Configure remote state
This subdomain covers configuring remote backends to store Terraform state, enabling collaboration among team members and providing features like state locking.
- Remote state
Subdomain 3.3: Use the Terraform workflow in automation
This subdomain covers integrating the standard Terraform workflow (init, plan, apply) into CI/CD pipelines and other automation systems, including the configuration of state locking to prevent concurrent modifications.
- Configuring state locking
Subdomain 3.4: Share data across configurations and workspaces
This subdomain covers methods for sharing information between different Terraform configurations or workspaces, primarily using the `terraform_remote_state` and `tfe_outputs` data sources.
- The terraform_remote_state data source - tfe_outputs data source
Domain 4: Create, maintain, and use Terraform modules
Subdomain 4.1: Create a module
This subdomain covers the fundamentals of creating reusable Terraform modules, following recommended patterns for module design to ensure they are flexible, composable, and maintainable.
- Modules documentation - Creating a module - Module design recommended patterns
Subdomain 4.2: Use a module in configuration
This subdomain covers how to source and declare modules within a root configuration, passing variables to customize their behavior.
- Sourcing a module - Declaring a module
Subdomain 4.3: Refactor a module and use module versioning
This subdomain covers the process of refactoring modules to improve their structure and functionality, as well as using version constraints to manage module updates and ensure stability.
- Refactoring modules - Version constraints
Subdomain 4.4: Refactor an existing configuration into modules
This subdomain covers the process of breaking down a monolithic Terraform configuration into smaller, reusable modules to improve organization and maintainability, using tools like `moved` blocks to manage state during the refactoring process.
- moved blocks
Domain 5: Configure and use Terraform providers
Subdomain 5.1: Understand Terraform's plugin-based architecture
This subdomain covers the core concept of Terraform's plugin-based architecture, where providers act as the bridge between Terraform Core and target APIs.
- Providers
Subdomain 5.2: Configure providers, including aliasing, versioning, sourcing, and managing upgrades
This subdomain covers the configuration of providers within a Terraform block, including setting version constraints, sourcing from alternative registries, using aliases for multiple provider configurations, and managing provider upgrades via the dependency lock file.
- Provider requirements - Provider configuration - Dependency lock file - Configuring providers in modules
Subdomain 5.3: Manage provider authentication
This subdomain covers the various methods for authenticating providers with their respective cloud or service APIs, such as using static credentials, environment variables, or other platform-specific mechanisms.
- Provider configuration
Subdomain 5.4: Troubleshoot provider errors
This subdomain covers techniques for diagnosing and resolving issues related to Terraform providers, including understanding the dependency lock file and enabling debug logging.
- Dependency lock file - Debugging Terraform
Domain 6: Collaborate on infrastructure as code using HCP Terraform ( multiple-choice only )
Subdomain 6.1: Analyze the HCP Terraform run workflow
This subdomain covers the workflow for executing Terraform runs within HCP Terraform, including remote operations, different run modes, and how to view and manage run history. It also includes migrating existing configurations to HCP Terraform.
- Remote operations - Viewing and managing runs - Run modes and options - Migrating to HCP Terraform
Subdomain 6.2: Understand HCP Terraform workspaces and their configuration options, including access management
This subdomain covers the concept of workspaces in HCP Terraform as a way to manage separate environments or components, including their configuration options and access control settings.
- Workspaces documentation
Subdomain 6.3: Manage provider credentials in HCP Terraform
This subdomain covers methods for securely managing provider credentials within HCP Terraform, using both static workspace variables and dynamic provider credentials for enhanced security.
- Workspace variables - Dynamic provider credentials
Subdomain 6.4: Analyze policy as code and governance features
This subdomain covers the use of policy-as-code frameworks like Sentinel within HCP Terraform to enforce governance, compliance, and security rules across infrastructure deployments.
- Policy enforcement
Techniques & products