Files
ENI-Terraform/main.tf
Johan LEROY 3b27b0157c first commit
2026-03-30 13:14:41 +02:00

78 lines
1.4 KiB
HCL

terraform {
required_version = ">= 1.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = var.aws_region
default_tags {
tags = {
Owner = var.owner
CourseId = var.course_id
}
}
}
# --- VPC ---
resource "aws_vpc" "main" {
cidr_block = var.vpc_cidr
enable_dns_support = true
enable_dns_hostnames = true
tags = {
Name = "${var.trigramme}-vpc"
}
}
# --- Sous-reseaux ---
resource "aws_subnet" "subnets" {
count = length(var.subnet_cidrs)
vpc_id = aws_vpc.main.id
cidr_block = var.subnet_cidrs[count.index]
availability_zone = var.availability_zones[count.index]
tags = {
Name = "${var.trigramme}-subnet-${count.index + 1}"
}
}
# --- AMI Amazon Linux 2023 (derniere version) ---
data "aws_ami" "amazon_linux" {
most_recent = true
owners = ["amazon"]
filter {
name = "name"
values = ["al2023-ami-*-x86_64"]
}
filter {
name = "virtualization-type"
values = ["hvm"]
}
}
# --- Instance EC2 ---
resource "aws_instance" "server" {
ami = data.aws_ami.amazon_linux.id
instance_type = var.instance_type
subnet_id = aws_subnet.subnets[0].id
root_block_device {
volume_size = var.root_volume_size
volume_type = "gp3"
}
tags = {
Name = "${var.trigramme}-instance"
}
}