In this guide, we will walk through the step-by-step process of installing Terraform and preparing your local environment for infrastructure automation.
What You'll Learn
- Install Terraform on Linux
- Install AWS CLI
- Configure AWS credentials
- Verify your setup
- Set up VS Code for Terraform development
Step 1: Install Terraform
# Update package list
sudo apt-get update
# Install required packages
sudo apt-get install -y gnupg software-properties-common wget gpg
# Add HashiCorp GPG key
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
gpg --no-default-keyring --keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg --fingerprint
# Add HashiCorp repository
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list
# Update and install Terraform
sudo apt-get update
sudo apt-get install -y terraform
Verify Installation
terraform version
Expected Output
Step 2: Install AWS CLI (Recommended)
# Download AWS CLI installer
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# Install unzip if not present
sudo apt-get install -y unzip
# Unzip the installer
unzip awscliv2.zip
# Run the installer
sudo ./aws/install
#Check version
aws --version
# Clean up
rm -rf aws awscliv2.zip
Step 3: Create IAM User for Terraform
In AWS Console:
- Go to IAM → Users → Create User
- Username: terraform (or your preferred name)
- Select "Provide user access to the AWS Management Console" (optional)
- Attach policies: AdministratorAccess (for learning; use restricted policies in production)
- Create user
- Go to Security Credentials → Create Access Key
- Select "Command Line Interface (CLI)"
- Download or copy:
- Access Key ID
- Secret Access Key
Step 4: Configure AWS Credentials
aws configure
You'll be prompted for:
AWS Access Key ID [None]: <YOUR_ACCESS_KEY_ID>
AWS Secret Access Key [None]: <YOUR_SECRET_ACCESS_KEY>
Default region name [None]: ap-southeast-1 (or your preferred region)
Default output format [None]: json
Verify Configuration
aws sts get-caller-identity
Step 5: Set Up Your Working Directory
# Create project directory
mkdir -p ~/terraform-projects
cd ~/terraform-projects
# Create your first project folder
mkdir my-first-terraform
cd my-first-terraform
Step 6: Test Your Setup
Create a simple test file with nano test.tf:
terraform {
required_version = ">= 1.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "ap-southeast-1"
}
# This is just a test - we won't create any resources yet
output "account_id" {
value = data.aws_caller_identity.current.account_id
}
data "aws_caller_identity" "current" {}
Run Terraform commands:
# Initialize Terraform
terraform init
# Validate configuration
terraform validate
# See what would happen (no resources created)
terraform plan
Expected Output:
Terraform has been successfully initialized!
Success! The configuration is valid.
Changes to Outputs:
+ account_id = "300374333197"
Clean up test file:
rm test.tf
rm -rf .terraform .terraform.lock.hcl







Top comments (0)