first commit
This commit is contained in:
77
main.tf
Normal file
77
main.tf
Normal file
@@ -0,0 +1,77 @@
|
||||
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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user