DevOps (Day 65)- Working with Terraform Resource

DevOps (Day 65)- Working with Terraform Resource

Day 65:#90DaysOfDevOpsChallenge

DevOps Engineer, In my previous lecture we discuss the Terraform with AWS, In today topic, we will discuss Working with Terraform Resources.

TABLE OF CONTENTS:

Understanding Terraform Resources

Task-01

Create a Security Group

Task-02

Create an EC2 instance

Understanding Terraform Resources:

A resource in Terraform represents a components of your infrastructure such as a physical server, a virtual machine, a DNS record,or an S3 bucket. Resources have attributes that define their properties and behaviours such as the size and location of a virtual machine or the domain name of a DNS record.

When you define a resource in Terraform you specify thre type of resource a unique name of the resource, and the attributes that define the resource. Terraform uses the resource block to define resource in your Terraform configuration.

Task-01

Create a Security group

To allow traffic to the EC2 instance, you need to create a security group. Follow these steps:

in your main.tffile , add the folllwing syntax to create a Security group.Highlight in white colour

resource "aws_security_group" "web_server" {
  name_prefix = "web-server-sg"

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

No alt text provided for this image

in your main.tf file, add the following syntax to create a Security group Diagram.

In this configuration, we first configure the AWS provider with the desired region.

Configure a security group using the aws_security_group resource block that allows incoming traffic on port 80 from any IP address. The ensures that we can access the website from the public internet.

Run the Terraform init to initialise the Terraform project. Highlight in white colour

No alt text provided for this image

Run the Terraform init to initialise the Terraform project Diagram.

terraform apply Highlight in white colour

No alt text provided for this image

terraform apply Diagram

No alt text provided for this image

terraform apply Diagram 2

No alt text provided for this image

terraform apply Diagram 3

Run the terrafom apply to create the security group. Highlight in white colour

No alt text provided for this image

Run the terrafom apply to create the security group Diagram

No alt text provided for this image

Run the terrafom apply to create the security group Diagram 2

No alt text provided for this image

Run the terrafom apply to create the security group Diagram 3

Check the Security group is created

Go to EC2 service

Inside "Network Security", select "Security Groups".

You can see web-server-sg security group is created using the Terraform Highlight in Blue Colour.

No alt text provided for this image

You can see web-server-sg security group is created using the Terraform Diagram

Task-02

Create an EC2 instance.

Now you can create an EC2 instance with Terraform. Follow these steps:

in your main.tffile add the following Syntax to create a EC2 instance"

resource "aws_instance" "web_server" {
  ami           = "ami-0557a15b87f6559cf"
  instance_type = "t2.micro"
  key_name      = "my-key-pair"
  security_groups = [
    aws_security_group.web_server.name
  ]

  user_data = <<-EOF
              #!/bin/bash
              echo "<html><body><h1>Welcome to my website!</h1></body></html>" > index.html
              nohup python3 -m http.server80 &
  EOF
}

///if you use python2 version then use-

   nohup python -m SimpleHTTPServer 80 &

Note: Replace the ami and key_name values with your own.

We use the user_data parameter to execute a Bash script that sets up a basic web server using Python's Simple HTTP Server.

No alt text provided for this image

We use the user_data parameter to execute a Bash script that sets up a basic web server using Python's Simple HTTP Server Diagram.

When we launch an EC2 instance using Terraform with this user_data script, it will set up a web server the content of index.html on port no 80. You can then access the website by navigating to the public IP address of your instance in a web browser.

Run terraform init to create the EC2 instance.

No alt text provided for this image

Run terraform init to create the EC2 instance Diagram,

Run terraform plan to create the EC2 instance.

No alt text provided for this image

Run terraform plan to create the EC2 instance Diagram

No alt text provided for this image

Run terraform plan to create the EC2 instance Diagram

Run terraform apply to create the EC2 instance Diagram

No alt text provided for this image

Run terraform apply to create the EC2 instance Diagram

No alt text provided for this image

Run terraform apply to create the EC2 instance Diagram

No alt text provided for this image

Run terraform apply to create the EC2 instance Diagram

EC2 instance is created.

No alt text provided for this image

Copy the public-ip address of a instance that is created using the terraform.

No alt text provided for this image

Copy the public-ip address of a instance that is created using the terraform Diagram.

Browse public ip address of your instance, you can see the webpage.

No alt text provided for this image

Browse public ip address of your instance, you can see the webpage Diagram.

Thank you for reading!! Hope you find this helpful.

#day65challenge#90daysofdevops

Always open to suggestions..!!

~ Manoj Bhamidipati 🙂