Terraform Tutorials: List of Terraform Blocks with Explanation

  1. Terraform Block: The “terraform” block is used to specify settings for the Terraform execution environment, such as the required Terraform version and any backend configuration settings.

Example:

terraform {
  required_version = ">= 0.14"
  backend "s3" {
    bucket = "my-terraform-state"
    key    = "terraform.tfstate"
    region = "us-west-2"
  }
}
  1. Provider Block: A provider block specifies the details of the provider being used. The provider is responsible for creating and managing resources in a specific infrastructure. The provider block is required for every Terraform configuration file.

Example:

provider "aws" {
  region = "us-west-2"
}
  1. Resource Block: A resource block specifies a single resource to be managed by Terraform. It includes the resource type, name, and its configuration options.

Example:

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}
  1. Data Block: A data block defines data sources that can be queried from an external system, such as a cloud provider or a database.

Example:

data "aws_ami" "ubuntu" {
  most_recent = true
  filter {
    name = "name"
    values = ["ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*"]
  }
}
  1. Module Block: A module block specifies a reusable set of resources and configurations. Modules can be used to organize and reuse code across multiple Terraform configurations.

Example:

module "vpc" {
  source = "terraform-aws-modules/vpc/aws"
  version = "3.0.0"
  name = "my-vpc"
  cidr = "10.0.0.0/16"
  azs = ["us-west-2a", "us-west-2b", "us-west-2c"]
}
  1. Output Block: An output block defines the values that Terraform should output after applying a configuration. Outputs are useful for retrieving information from Terraform to use in other parts of your infrastructure.

Example:

output "public_ip" {
  value = aws_instance.example.public_ip
}
  1. Variable Block: A variable block defines variables that can be used in a Terraform configuration. Variables are used to provide values that may change depending on the environment.

Example:

variable "aws_region" {
  type = string
  default = "us-west-2"
}
  1. Locals Block: The locals block defines local values that can be used within a Terraform module or configuration file. These values are computed once during Terraform execution and can be used to simplify complex expressions or provide more descriptive names for values.

Example:

locals {
  instance_count = length(var.instance_types)
  instance_names = [ "web-${count.index}" for count.index in range(local.instance_count) ]
}
Rajesh Kumar
Follow me
Latest posts by Rajesh Kumar (see all)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x