forked from pierront/but3-iac
86 lines
1.8 KiB
HCL
86 lines
1.8 KiB
HCL
# 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"
|
|
}
|
|
} |