Automate the deployment of infrastructure across multiple providers.
Basic Configurations
Provisioning infrastructure through software to achieve consistent and predictable environment. The infrastructure is in code and saved in repository, it can be versioned and must be Declarative and Imperative (Terraform is declarative language).
Terraform is Idemponent because it checks if the defined declarative infrastructure & configuration on the target platform exists, if it’s not existed then it will be created.
Terraform has a push mechanism because it push the infrastructure to the target environment.
The automation infrastructure deployment in Terraform is demonstrated in the following figure.

Terraform characteristics
Automated deployment | Consistent environment |
Repeatable Process | Reusable components |
Documented architecture |
Terraform Components
Terraform executable | Terraform files | Terraform Plugins | Terraform State |
---|---|---|---|
– Self contained. – Written in GO. – Basically available for all OS. – It must be only put in Path Variable. – Only a single executable. | – Configurations, which are going to deploy will be contained in one or more Terraform files. – file extension is .tf – in case of multiple Terraform files in the directory, the Terraform will stitch the files together. | – Each provider like Azure, AWS has its own plugin. | – Terraform picks track of what’s going on. – For updating the target environment with Terrafform, it will first take look at the state file and compare with new changes and apply the difference. |
Development components
Variables | For prevent to define secret keys, access keys, even the AWS Region and this kind of information in Terraform File. |
Provider | The could provider like Azure, AWS |
Data | |
Resource | |
Output |
Define variables
- Variables can be defined in .tf file
- In .tfvars file
In .tf file
variable "aws_access_key" = "AWS ACCESS KEY"
variable "aws_secret_key" = "AWS SECRET KEY"
variable "private_key_path" = "C:\\YOURKeys.pem"
variable "key_name" = "KEY NAME"
variable "region" {
default = "us-east-1"
}
In .tfvars file
aws_access_key = "AWS ACCESS KEY"
aws_secret_key = "AWS SECRET KEY"
key_name = "KEY NAME"
private_key_path = "C:\\YOURKeys.pem"
How to execute the Terraform file?
- First put Terraform in the Path.
terraform | this command in visual studio code displays the list of all possible arguments. |
terraform version | the installed version of the terraform. |
terraform init | to initialize the provider according to the configuration file. if it doesn’t exist then will be downloaded. |
terraform plan out m3.tfplan | looks at the configuration file and load the variables either form .tf or .tfvars files. The plan can be saved in a file via out parameter. This step verifies the configuration and variable files and |
Integrate multiple providers
Using abstraction and reusable components
Resource
- Terraform – Getting Started (Training)