Hashicorp Configuration Language (HCL) Link to heading
Hashicorp Configuration Language, or HCL, is a declarative programming language created by Hashicorp for configuring tools like Terraform and Nomad.
Read more about HCL here - https://github.com/hashicorp/hcl#hcl.
Resources Link to heading
Resources are the building blocks of Terraform. Each resource block in Terraform represents one or more infrastructure objects like compute instances, virtual networks, or high-level components like DNS records. 1
Workspaces Link to heading
A Terraform workspace is the core of Terraform Infrastructure as Code (IaC). A Terraform workspace is the version control repository that implements the code for provisioning the required infrastructure using Terraform.
Modules Link to heading
Modules are independent and reusable abstractions in Terraform that can be implemented in the Terraform workspaces to create infrastructure.
Terraform modules can be considered libraries that can be implemented within services like Terraform workspaces.
State Link to heading
State is the information about the infrastructure provisioned by Terraform. Terraform creates a state for your provisioned infrastructure which is stored in terraform.tfstate
file by default. , AWS S3 buckets, or in Terraform Cloud. Terraform state can also be stored remotely in GCP buckets. Terraform state is immutable and is version controlled, i.e., whenever terraform resources are created/updated/destroyed, a new state version is created.
Use terraform state
command through Terraform CLI.
Providers Link to heading
Providers are the plugins used to interact with cloud providers, SaaS providers, and other APIs. Most providers configure a very specific infrastructure platform (either cloud or self-hosted). Providers can also offer local utilities for tasks like generating random numbers for unique resource names. 2