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
I’m Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms.
I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services — all in one place.
Explore Hospitals
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
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
}