Working With Terraform

DevOps

MOTOSHARE 🚗🏍️
Turning Idle Vehicles into Shared Rides & Earnings

From Idle to Income. From Parked to Purpose.
Earn by Sharing, Ride by Renting.
Where Owners Earn, Riders Move.
Owners Earn. Riders Move. Motoshare Connects.

With Motoshare, every parked vehicle finds a purpose. Owners earn. Renters ride.
🚀 Everyone wins.

Start Your Journey with Motoshare
  • Write a comparison between Ansible Vs Docker Vs Terraform
  • Write a terraform script where you create a linux ec2 instance with Security group and key defined so you should be able to use key to login to ec2 instance.

Terraform VS Ansible

  • Terraform focus on infrastructure provisioning where as ansible fits well in traditional automation.
  • Terraform acts perfectly in configuring cloud infrastructure where as ansible is employed for configuring servers.
  • Using terraform one can deploy load balancers, VPCs, etc. where as with ansible one can deploy apps on the top of infrastructure.
  • Terraform uses declarative language where as ansible uses procedural.

Terraform VS Docker

  • Docker Machine belongs to “Container Tools” category of the tech stack, while Terraform can be primarily classified under “Infrastructure Build Tools”.
  • “Easy docker hosts management” is the primary reason why developers consider Docker Machine over the competitors, whereas “Infrastructure as code” was stated as the key factor in picking Terraform.
<strong>Step 1:- Initializing Terraform Script</strong>

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 3.0"
    }
  }
}

# Configure the AWS Provider
provider "aws" {
  region = "us-west-2"

}

resource "aws_instance" "avinash" {
  ami           = "ami-03d5c68bab01f3496"
  instance_type = "t2.micro"  
}

- Save the fie with .tf extension
- In the command prompt run the code terraform init 
Note:- the ami should be created in the same region as mentioned in the provider "aws"  Code language: PHP (php)
<strong>Step 2:- Managing Permissions Using Security Keys</strong>
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 3.0"
    }
  }
}

# Configure the AWS Provider
provider "aws" {
  region = "us-west-2"
  access_key = ""
  secret_key = ""
}

resource "aws_instance" "avinash" {
  ami           = "ami-03d5c68bab01f3496"
  instance_type = "t2.micro"
  

}

- Save the file and run the command terraform plan
- after the command is a success then run terraform apply
- Type Yes to continue
Note:- If an error occur regarding ami id then do validate the region in which the ami was created.Code language: PHP (php)
<strong>Linux EC2 terraform Script:-</strong>
terraform{
  Required_Providers {
   linux ec2 instance ={
   source = "hashicorp/linux ec2"
   version = "~>3.27
}
}
provider "linux" {
  profile = "jyoshna"
  region = "us-west-2"
  access_key = " "
  secret_key = " "
}
resource "linux_security_group " allow key to login"{
name = "devopsschool"
description = " allow key to login ec2 instance" 
}Code language: PHP (php)