Tools: Latest: Installing Terraform and Setting Up EC2 Environment for Ubuntu24.04

Tools: Latest: Installing Terraform and Setting Up EC2 Environment for Ubuntu24.04

What You'll Learn

Step 1: Install Terraform

Verify Installation

Expected Output

Step 2: Install AWS CLI (Recommended)

Step 3: Create IAM User for Terraform

Step 4: Configure AWS Credentials

You'll be prompted for:

Verify Configuration

Step 5: Set Up Your Working Directory

Step 6: Test Your Setup

Run Terraform commands:

Expected Output:

Clean up test file: In this guide, we will walk through the step-by-step process of installing Terraform and preparing your local environment for infrastructure automation. Create a simple test file with nano test.tf: Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Command

Copy

# Update package list -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">update # Install required packages -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y gnupg software-properties-common -weight: 500;">wget gpg # Add HashiCorp GPG key -weight: 500;">wget -O- https://-weight: 500;">apt.releases.hashicorp.com/gpg | -weight: 600;">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://-weight: 500;">apt.releases.hashicorp.com $(lsb_release -cs) main" | \ -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/hashicorp.list # Update and -weight: 500;">install Terraform -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">update -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y terraform # Update package list -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">update # Install required packages -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y gnupg software-properties-common -weight: 500;">wget gpg # Add HashiCorp GPG key -weight: 500;">wget -O- https://-weight: 500;">apt.releases.hashicorp.com/gpg | -weight: 600;">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://-weight: 500;">apt.releases.hashicorp.com $(lsb_release -cs) main" | \ -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/hashicorp.list # Update and -weight: 500;">install Terraform -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">update -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y terraform # Update package list -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">update # Install required packages -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y gnupg software-properties-common -weight: 500;">wget gpg # Add HashiCorp GPG key -weight: 500;">wget -O- https://-weight: 500;">apt.releases.hashicorp.com/gpg | -weight: 600;">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://-weight: 500;">apt.releases.hashicorp.com $(lsb_release -cs) main" | \ -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/hashicorp.list # Update and -weight: 500;">install Terraform -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">update -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y terraform terraform version terraform version terraform version # Download AWS CLI installer -weight: 500;">curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # Install unzip if not present -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y unzip # Unzip the installer unzip awscliv2.zip # Run the installer -weight: 600;">sudo ./aws/-weight: 500;">install #Check version aws --version # Clean up rm -rf aws awscliv2.zip # Download AWS CLI installer -weight: 500;">curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # Install unzip if not present -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y unzip # Unzip the installer unzip awscliv2.zip # Run the installer -weight: 600;">sudo ./aws/-weight: 500;">install #Check version aws --version # Clean up rm -rf aws awscliv2.zip # Download AWS CLI installer -weight: 500;">curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # Install unzip if not present -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y unzip # Unzip the installer unzip awscliv2.zip # Run the installer -weight: 600;">sudo ./aws/-weight: 500;">install #Check version aws --version # Clean up rm -rf aws awscliv2.zip aws configure aws configure aws configure 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 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 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 aws sts get-caller-identity aws sts get-caller-identity aws sts get-caller-identity # Create project directory mkdir -p ~/terraform-projects cd ~/terraform-projects # Create your first project folder mkdir my-first-terraform cd my-first-terraform # Create project directory mkdir -p ~/terraform-projects cd ~/terraform-projects # Create your first project folder mkdir my-first-terraform cd my-first-terraform # Create project directory mkdir -p ~/terraform-projects cd ~/terraform-projects # Create your first project folder mkdir my-first-terraform cd my-first-terraform 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" {} 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" {} 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" {} # Initialize Terraform terraform init # Validate configuration terraform validate # See what would happen (no resources created) terraform plan # Initialize Terraform terraform init # Validate configuration terraform validate # See what would happen (no resources created) terraform plan # Initialize Terraform terraform init # Validate configuration terraform validate # See what would happen (no resources created) terraform plan Terraform has been successfully initialized! Success! The configuration is valid. Changes to Outputs: + account_id = "300374333197" Terraform has been successfully initialized! Success! The configuration is valid. Changes to Outputs: + account_id = "300374333197" Terraform has been successfully initialized! Success! The configuration is valid. Changes to Outputs: + account_id = "300374333197" rm test.tf rm -rf .terraform .terraform.lock.hcl rm test.tf rm -rf .terraform .terraform.lock.hcl rm test.tf rm -rf .terraform .terraform.lock.hcl - Install Terraform on Linux - Install AWS CLI - Configure AWS credentials - Verify your setup - Set up VS Code for Terraform development - 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