Upgrade & Secure Your Future with DevOps, SRE, DevSecOps, MLOps!

We spend hours scrolling social media and waste money on things we forget, but won’t spend 30 minutes a day earning certifications that can change our lives.
Master in DevOps, SRE, DevSecOps & MLOps by DevOpsSchool!

Learn from Guru Rajesh Kumar and double your salary in just one year.


Get Started Now!

Terraform Project – Assignment – Exercise – Lab#1: Variables

How to submit Assignment?

Please submit assignment @https://www.debug.school/ and POST url share in the comments of this post.

Assignment – 1

Write a terraform script using aws ec2 instance and github and apply following kind of variables

  • Types of Terraform variable – Number
  • Types of Terraform variable – String
  • Types of Terraform variable – List
  • Types of Terraform variable – Map
  • Types of Terraform variable – Boolean

and Decare variables in

  • Terraform file
  • Override through Command Line

Example – https://www.devopsschool.com/blog/terraform-variables-complete-reference-guide/

Where to publish – BestDevOps.com & Share a link with me

Assignment – 2

Write a Terraform script which create a ubuntu ec2-instance and copy a ansible playbook, install ansible and run it.

  • Step 1 – Create ec2-instance with key and group
  • Step 2 – Copy playbook using file terraform provisioner
  • Step 3 – Install Ansible using remote terraform provisioner
  • Step 4 – RUn Ansinle playbook command using remote terraform provisioner

Assignment – 3

Write a 2 Module in Terraform. One Local Module, Second remote module.

  • Local Module Spec – in Ubuntu – Setup a webserver
  • Remote module – Setup VPC
Subscribe
Notify of
guest
2 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Mak
Mak
1 year ago

2nd
variable “aws_key” {
 default = “/root/terraform/default_ec2.pem”
}

provider “aws” {
 region   = “us-east-1”
 access_key = “”
 secret_key = “”
}
resource “aws_default_vpc” “default” {
}

resource “aws_security_group” “http_server_sg” {
 name  = “http_server_sg”
 vpc_id = aws_default_vpc.default.id

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

 ingress {
  from_port  = 22
  to_port   = 22
  protocol  = “tcp”
  cidr_blocks = [“0.0.0.0/0”]
 }

 egress {
  from_port  = 0
  to_port   = 0
  protocol  = -1
  cidr_blocks = [“0.0.0.0/0”]
 }
}

resource “aws_instance” “ubuntu_instance” {
 ami          = “ami-0261755bbcb8c4a84”
 key_name        = “default_ec2”
 instance_type     = “t2.micro”
 vpc_security_group_ids = [aws_security_group.http_server_sg.id]

 connection {
  type    = “ssh”
  host    = self.public_ip
  user    = “ubuntu”
  private_key = file(var.aws_key)
 }
 provisioner “remote-exec” {
  inline = [
   “sudo apt-add-repository ppa:ansible/ansible -y”,
   “sudo apt update”,
   “sudo apt install ansible -y”
  ]
 }

 provisioner “file” {
  source   = “/root/terraform/playbook.yaml”
  destination = “/home/ubuntu/playbook.yaml”
 }
 provisioner “remote-exec” {
  inline = [
   “sudo ansible-playbook playbook.yaml”
  ]
 }

}


– hosts: localhost
 connection: local
 remote_user: root

 tasks:
 – name: ensure apache is at the latest version
  apt:
   name: apache2
   state: present

Mak
Mak
1 year ago

1st
provider “aws” {
 region   = “us-east-1”
 access_key = “”
 secret_key = “”
}

variable “create_vm” {
 description = “if set to true then create ec2”
 type    = bool
}

variable “number” {
 type  = number
 default = 1
}

data “aws_ami” “aws_linux_2_latest” {
 most_recent = true
 owners   = [“amazon”]
 filter {
  name  = “name”
  values = [“amzn2-ami-hvm-*”]
 }
}

variable “ami” {
 type  = string
 default = “data.aws_ami.aws_linux_2_latest.id”
}

variable “instance_type” {
 type  = string
 default = “t2.micro”
}

variable “names” {
 type  = string
 default = “testing”
}

resource “aws_instance” “instance_string” {
 count     = var.create_vm ? 1 : 0
 ami      = var.ami
 instance_type = var.instance_type
 tags = {
  name = var.names
 }
}

variable “security_list” {
 type  = list(string)
 default = [“sg-0541801a7a059ba17”]
}

variable “instance_tags” {
 type = map(string)
 default = {
  name = “my-instance”
 }
}

resource “aws_instance” “inatance_list” {
 ami          = var.ami
 instance_type     = var.instance_type
 vpc_security_group_ids = var.security_list
 tags          = var.instance_tags
}

Certification Courses

DevOpsSchool has introduced a series of professional certification courses designed to enhance your skills and expertise in cutting-edge technologies and methodologies. Whether you are aiming to excel in development, security, or operations, these certifications provide a comprehensive learning experience. Explore the following programs:

DevOps Certification, SRE Certification, and DevSecOps Certification by DevOpsSchool

Explore our DevOps Certification, SRE Certification, and DevSecOps Certification programs at DevOpsSchool. Gain the expertise needed to excel in your career with hands-on training and globally recognized certifications.

2
0
Would love your thoughts, please comment.x
()
x