forked from pierront/but3-iac
ajout des configs terraform
This commit is contained in:
86
terraform/modules/compute/main.tf
Normal file
86
terraform/modules/compute/main.tf
Normal file
@@ -0,0 +1,86 @@
|
||||
# Définition du disque de démarrage
|
||||
locals {
|
||||
disk_config = {
|
||||
frontend = 10
|
||||
backend = 10
|
||||
database = 20 # 20GB pour la base de données
|
||||
}
|
||||
}
|
||||
|
||||
# Instance Frontend (publique)
|
||||
resource "google_compute_instance" "frontend_instance" {
|
||||
project = var.project_id
|
||||
name = "frontend-instance"
|
||||
machine_type = var.instance_type
|
||||
zone = var.zone
|
||||
tags = ["frontend", "ssh"] # Tags pour les règles de firewall
|
||||
|
||||
boot_disk {
|
||||
initialize_params {
|
||||
image = var.image
|
||||
size = local.disk_config.frontend
|
||||
}
|
||||
}
|
||||
|
||||
network_interface {
|
||||
subnetwork = var.frontend_subnet_id
|
||||
# Configuration IP publique
|
||||
access_config {
|
||||
# Laissez vide pour IP éphémère
|
||||
}
|
||||
}
|
||||
|
||||
metadata = {
|
||||
enable-oslogin = "TRUE" # OS Login enabled
|
||||
}
|
||||
}
|
||||
|
||||
# Instance Backend (privée)
|
||||
resource "google_compute_instance" "backend_instance" {
|
||||
project = var.project_id
|
||||
name = "backend-instance"
|
||||
machine_type = var.instance_type
|
||||
zone = var.zone
|
||||
tags = ["backend", "ssh"]
|
||||
|
||||
boot_disk {
|
||||
initialize_params {
|
||||
image = var.image
|
||||
size = local.disk_config.backend
|
||||
}
|
||||
}
|
||||
|
||||
network_interface {
|
||||
subnetwork = var.backend_subnet_id
|
||||
# PAS de bloc access_config pour n'avoir qu'une IP interne
|
||||
}
|
||||
|
||||
metadata = {
|
||||
enable-oslogin = "TRUE"
|
||||
}
|
||||
}
|
||||
|
||||
# Instance Database (privée)
|
||||
resource "google_compute_instance" "database_instance" {
|
||||
project = var.project_id
|
||||
name = "database-instance"
|
||||
machine_type = var.instance_type
|
||||
zone = var.zone
|
||||
tags = ["database", "ssh"]
|
||||
|
||||
boot_disk {
|
||||
initialize_params {
|
||||
image = var.image
|
||||
size = local.disk_config.database
|
||||
}
|
||||
}
|
||||
|
||||
network_interface {
|
||||
subnetwork = var.database_subnet_id
|
||||
# PAS de bloc access_config pour n'avoir qu'une IP interne
|
||||
}
|
||||
|
||||
metadata = {
|
||||
enable-oslogin = "TRUE"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user