packerlabs/lab1/main.tf

53 lines
1.1 KiB
HCL

provider "aws" {
region = var.region
}
resource "aws_key_pair" "my_keys" {
count = var.group_count
key_name = "user${count.index}-key"
public_key = file("../keypairs/user${count.index}.pub")
}
resource "aws_security_group" "allow_ssh" {
name = "allow_ssh"
description = "Allow SSH inbound traffic"
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["82.67.50.62/32"] # Allow SSH from this IP
}
egress {
from_port = 0
to_port = 0
protocol = "-1" # Allow all outbound traffic
cidr_blocks = ["0.0.0.0/0"]
}
}
resource "aws_instance" "labtops" {
count = var.group_count
ami = var.ami_id
instance_type = var.instance_type
key_name = aws_key_pair.my_keys[count.index].key_name
security_groups = [aws_security_group.allow_ssh.name]
tags = {
Name = "labtop #${count.index}"
Owner = "seco"
}
# Enable public IP
associate_public_ip_address = true
}
output "instance_id" {
value = aws_instance.labtops[*].id
}
output "public_ip" {
value = aws_instance.labtops[*].public_ip
}