- 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"
}
}
- 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"
}
- 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"
}
- 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-*"]
}
}
- 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"]
}
- 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
}
- 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"
}
- 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) ]
}
Latest posts by Rajesh Kumar (see all)
- Best AI tools for Software Engineers - November 4, 2024
- Installing Jupyter: Get up and running on your computer - November 2, 2024
- An Introduction of SymOps by SymOps.com - October 30, 2024