π Hey there, tech enthusiasts!
I'm Sarvar, a Cloud Architect with a passion for transforming complex technological challenges into elegant solutions. With extensive experience spanning Cloud Operations (AWS & Azure), Data Operations, Analytics, DevOps, and Generative AI, I've had the privilege of architecting solutions for global enterprises that drive real business impact. Through this article series, I'm excited to share practical insights, best practices, and hands-on experiences from my journey in the tech world. Whether you're a seasoned professional or just starting out, I aim to break down complex concepts into digestible pieces that you can apply in your projects.
Let's dive in and explore the fascinating world of cloud technology together! π
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 (Ubuntu/Amazon Linux)
- Install AWS CLI
- Configure AWS credentials
- Verify your setup
- Set up VS Code for Terraform development
Prerequisites
- A Linux server or local machine (Ubuntu 20.04+ or Amazon Linux 2)
- AWS account with IAM user credentials
- Basic command line knowledge
Step 1: Install Terraform
For Ubuntu/Debian
# Update package list
sudo apt-get update
# Install required packages
sudo apt-get install -y gnupg software-properties-common wget
# Add HashiCorp GPG key
wget -O- https://apt.releases.hashicorp.com/gpg | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
# 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
For Amazon Linux 2 (Recommended)
# Install yum-config-manager
sudo yum install -y yum-utils
# Add HashiCorp repository
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
# Install Terraform
sudo yum -y install terraform
Verify Installation
terraform version
Expected Output:
Terraform v1.14.x
on linux_amd64
Step 2: Install AWS CLI (Recommended)
For Ubuntu/Debian
# 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
# Clean up
rm -rf aws awscliv2.zip
For Amazon Linux 2
# Download and install
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
rm -rf aws awscliv2.zip
Verify Installation
aws --version
Expected Output:
aws-cli/2.x.x Python/3.x.x Linux/x.x.x
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
β οΈ Important: Never share or commit these credentials to version control!
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]: us-east-1 (or your preferred region)
Default output format [None]: json
Verify Configuration
aws sts get-caller-identity
Expected Output:
{
"UserId": "AIDASRZSGHJSDC6XXXXX",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/terraform"
}
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: (Optional) Install VS Code with Terraform Extension
Install VS Code
# Ubuntu/Debian
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt-get update
sudo apt-get install -y code
Install Terraform Extension
- Open VS Code
- Go to Extensions (Ctrl+Shift+X)
- Search for "HashiCorp Terraform"
- Click Install
Extension Features:
- Syntax highlighting
- Auto-completion
- Formatting (terraform fmt)
- Validation
Step 7: Test Your Setup
Create a simple test file:
cat > test.tf << 'EOF'
terraform {
required_version = ">= 1.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "us-east-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" {}
EOF
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 = "123456789012"
Clean up test file:
rm test.tf
rm -rf .terraform .terraform.lock.hcl
Troubleshooting Common Issues
Issue 1: "terraform: command not found"
Solution: Add Terraform to PATH or reinstall
Issue 2: "Unable to locate credentials"
Solution: Run aws configure again and verify credentials
Issue 3: "Error: No valid credential sources found"
Solution: Check ~/.aws/credentials file exists and has correct format
Issue 4: Permission denied errors
Solution: Verify IAM user has necessary permissions
What's Next?
In the next article, we'll:
- Create our first AWS resource (S3 bucket)
- Understand Terraform workflow (init, plan, apply, destroy)
- Learn about Terraform state
- Explore basic Terraform syntax
Key Takeaways
β
Terraform is installed and working
β
AWS CLI is configured with credentials
β
You can verify your AWS identity
β
Your development environment is ready
β
You understand the basic Terraform commands
Additional Resources
Next Article: Part 3: Provisioning Your First AWS Resource
π Wrapping Up
Thank you for reading. I hope this article provided practical insights and a clearer understanding of the topic.
If you found this useful:
- β€οΈ Like if it added value
- π¦ Unicorn if youβre applying it today
- πΎ Save it for your next optimization session
- π Share it with your team
π‘ Whatβs Next
More deep dives are coming soon on:
- Cloud Operations
- GenAI & Agentic AI
- DevOps Automation
- Data & Platform Engineering
Follow along for weekly insights and hands-on guides.
π Portfolio & Work
You can explore my full body of work, certifications, architecture projects, and technical articles here:
π Visit My Website
π οΈ Services I Offer
If you're looking for hands-on guidance or collaboration, I provide:
- Cloud Architecture Consulting (AWS / Azure)
- DevSecOps & Automation Design
- FinOps Optimization Reviews
- Technical Writing (Cloud, DevOps, GenAI)
- Product & Architecture Reviews
- Mentorship & 1:1 Technical Guidance
π€ Letβs Connect
Iβd love to hear your thoughts. Feel free to drop a comment or connect with me on:
π LinkedIn
For collaborations, consulting, or technical discussions, reach out at:
Found this helpful? Share it with your team.
β Star the repo β’ π Follow the series β’ π¬ Ask questions
Made by Sarvar Nadaf
π https://sarvarnadaf.com









Top comments (0)