diff --git a/src/envs/prod/khaled2/main.tf b/src/envs/prod/khaled2/main.tf new file mode 100644 index 00000000..6abccdd4 --- /dev/null +++ b/src/envs/prod/khaled2/main.tf @@ -0,0 +1,73 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "4.52.0" + } + random = { + source = "hashicorp/random" + version = "3.4.3" + } + } + required_version = ">= 1.1.0" + +} + +provider "aws" { + region = "us-east-1" +} + +resource "random_pet" "sg" {} + +data "aws_ami" "ubuntu" { + most_recent = true + + filter { + name = "name" + values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"] + } + + filter { + name = "virtualization-type" + values = ["hvm"] + } + + owners = ["099720109477"] # Canonical +} + +resource "aws_instance" "web2" { + ami = data.aws_ami.ubuntu.id + instance_type = "t2.micro" + subnet_id = "subnet-0f5e8a6adba3ccd7f" + user_data = <<-EOF + #!/bin/bash + apt-get update + apt-get install -y apache2 + sed -i -e 's/80/8080/' /etc/apache2/ports.conf + echo "Hello World" > /var/www/html/index.html + systemctl restart apache2 + EOF +} + +resource "aws_security_group" "web-sg2" { + name = "${random_pet.sg.id}-sg" + ingress { + from_port = 8080 + to_port = 8080 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + // connectivity to ubuntu mirrors is required to run `apt-get update` and `apt-get install apache2` + egress { + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } +} + +output "web-address" { + value = "${aws_instance.web.public_dns}:8080" +} + +