This commit is contained in:
2025-12-04 09:34:25 +01:00
parent 61860ed31b
commit 265525a4c5
6 changed files with 159 additions and 1 deletions

View File

@@ -21,4 +21,13 @@ module "network" {
backend_cidr = var.backend_cidr
database_cidr = var.database_cidr
ssh_source_ranges = var.ssh_source_ranges
}
}
module "compute" {
source = "../../modules/compute"
instance_type = var.instance_type
zone = var.zone
frontend_subnet_id = var.frontend_subnet_id
backend_subnet_id = var.backend_subnet_id
database_subnet_id = var.database_subnet_id
}

View File

@@ -33,8 +33,39 @@ variable "database_cidr" {
type = string
default = "10.0.3.0/24"
}
variable "ssh_source_ranges" {
description = "ssh"
type = string
default = "0.0.0.0/0"
}
variable "frontend_subnet_id" {
description = "frontend subnet id"
type = string
default = module.network.subnet_ids["frontend"]
}
variable "backend_subnet_id" {
description = "backend subnet id"
type = string
default = module.network.subnet_ids["backend"]
}
variable "database_subnet_id" {
description = "database subnet id"
type = string
default = module.network.subnet_ids["database"]
}
variable "zone" {
description = "zone"
type = string
default = var.region +"-b"
}
variable "instance_type" {
description = "instance_type"
type = string
default = "e2-small"
}

View File

@@ -0,0 +1,69 @@
resource "google_compute_instance" "instance_frontend" {
name = "instance de frontend"
machine_type = var.instance_type
zone = var.zone
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
size = 10
}
}
network_interface {
access_config {} # IP publique
subnetwork = var.frontend_subnet_id
}
tags = ["frontend", "ssh"]
metadata = {
enable-oslogin = "TRUE"
}
}
resource "google_compute_instance" "instance_backend" {
name = "instance de backend"
machine_type = var.instance_type
zone = var.zone
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
size = 10
}
}
network_interface {
subnetwork = var.backend_subnet_id
}
tags = ["backend", "ssh"]
metadata = {
enable-oslogin = "TRUE"
}
}
resource "google_compute_instance" "instance_database" {
name = "instance de database"
machine_type = var.instance_type
zone = var.zone
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
size = 10
}
}
network_interface {
subnetwork = var.database_subnet_id
}
tags = ["database", "ssh"]
metadata = {
enable-oslogin = "TRUE"
}
}

View File

@@ -0,0 +1,19 @@
output "instance_ip" {
value = {
frontend =google_compute_instance.instance_frontend.network_interface[0].network_ip
backend =google_compute_instance.instance_backend.network_interface[0].network_ip
database =google_compute_instance.instance_database.network_interface[0].network_ip
}
}
output "private_ip_frontend" {
value = google_compute_instance.instance_frontend.network_interface[0].access_config[0].nat_ip
}
output "name_instance" {
value = {
frontend = google_compute_instance.instance_frontend.name
backend = google_compute_instance.instance_backend.name
database = google_compute_instance.instance_database.name
}
}

View File

@@ -0,0 +1,19 @@
variable "instance_type" {
type = string
}
variable "zone" {
type = string
}
variable "frontend_subnet_id" {
type = string
}
variable "backend_subnet_id" {
type = string
}
variable "database_subnet_id" {
type = string
}

View File

@@ -0,0 +1,11 @@
output "vpc_id" {
value = google_compute_network.vpc.id
}
output "subnet_ids" {
value = {
frontend = google_compute_subnetwork.frontend.id
backend = google_compute_subnetwork.backend.id
database = google_compute_subnetwork.database.id
}
}