From d367c92d145d553c9a81e2dfd4bbc80f7ae1363b Mon Sep 17 00:00:00 2001 From: mommeja Date: Wed, 3 Dec 2025 17:15:51 +0100 Subject: [PATCH] Network --- tp-cloud/terraform/environments/dev/main.tf | 23 ++++++ .../terraform/environments/dev/variables.tf | 43 ++++++++++ tp-cloud/terraform/modules/network/main.tf | 78 +++++++++---------- tp-cloud/terraform/modules/network/outputs.tf | 19 +++-- .../terraform/modules/network/variables.tf | 17 ++-- 5 files changed, 118 insertions(+), 62 deletions(-) diff --git a/tp-cloud/terraform/environments/dev/main.tf b/tp-cloud/terraform/environments/dev/main.tf index e69de29..f5fce1a 100644 --- a/tp-cloud/terraform/environments/dev/main.tf +++ b/tp-cloud/terraform/environments/dev/main.tf @@ -0,0 +1,23 @@ +terraform { + required_providers { + google = { + source = "hashicorp/google" + version = "~> 6.12.0" + } + } +} + +provider "google" { + project = var.project_id + region = var.region +} + +module "network" { + source = "../../modules/network" + project_name = var.project_name + region = var.region + frontend_cidr = var.frontend_cidr + backend_cidr = var.backend_cidr + database_cidr = var.database_cidr + ssh_source_ranges = var.ssh_source_ranges +} \ No newline at end of file diff --git a/tp-cloud/terraform/environments/dev/variables.tf b/tp-cloud/terraform/environments/dev/variables.tf index e69de29..061096f 100644 --- a/tp-cloud/terraform/environments/dev/variables.tf +++ b/tp-cloud/terraform/environments/dev/variables.tf @@ -0,0 +1,43 @@ +# définissez toutes les variables nécessaires avec des valeurs par défaut appropriées. + +variable "project_name" { + description = "Nom du projet" + type = string + default = "Projet1" +} + +variable "region" { + description = "Region du projet" + type = string + default = "europe-west2" +} + +variable "frontend_cidr" { + description = "CIDR for frontend subnet" + type = string + default = "10.0.1.0/24" +} + +variable "backend_cidr" { + description = "CIDR for backend subnet" + type = string + default = "10.0.2.0/24" +} + +variable "database_cidr" { + description = "CIDR for database subnet" + type = string + default = "10.0.3.0/24" +} + +variable "ssh_source_ranges" { + description = "" + type = string + default = "0.0.0.0/0" +} + +variable "project_id" { + description = "ID du projet" + type = string + default = "projet1-478713" +} \ No newline at end of file diff --git a/tp-cloud/terraform/modules/network/main.tf b/tp-cloud/terraform/modules/network/main.tf index 08a1f9d..4dc0e68 100644 --- a/tp-cloud/terraform/modules/network/main.tf +++ b/tp-cloud/terraform/modules/network/main.tf @@ -1,33 +1,33 @@ -resource "google_compute_network" "vpc" { - name = "${var.project_name}-vpc" +resource "google_compute_network" "vpc_terraform" { + name = "vpc-terraform" auto_create_subnetworks = false } -resource "google_compute_subnetwork" "frontend" { - name = "${var.project_name}-frontend" + +resource "google_compute_subnetwork" "subnet_frontend" { + name = "frontend" + network = google_compute_network.vpc_terraform.id ip_cidr_range = var.frontend_cidr region = var.region - network = google_compute_network.vpc.id } -resource "google_compute_subnetwork" "backend" { - name = "${var.project_name}-backend" +resource "google_compute_subnetwork" "subnet_backend" { + name = "backend" + network = google_compute_network.vpc_terraform.id ip_cidr_range = var.backend_cidr region = var.region - network = google_compute_network.vpc.id } -resource "google_compute_subnetwork" "database" { - name = "${var.project_name}-database" +resource "google_compute_subnetwork" "subnet_database" { + name = "database" + network = google_compute_network.vpc_terraform.id ip_cidr_range = var.database_cidr region = var.region - network = google_compute_network.vpc.id } -# HTTP/HTTPS vers frontend -resource "google_compute_firewall" "frontend_http" { - name = "${var.project_name}-fw-frontend-http" - network = google_compute_network.vpc.id +resource "google_compute_firewall" "allow_user_frontend" { + name = "allow-user-frontend" + network = google_compute_network.vpc_terraform.id allow { protocol = "tcp" @@ -38,24 +38,9 @@ resource "google_compute_firewall" "frontend_http" { target_tags = ["frontend"] } -# SSH -resource "google_compute_firewall" "ssh" { - name = "${var.project_name}-fw-ssh" - network = google_compute_network.vpc.id - - allow { - protocol = "tcp" - ports = ["22"] - } - - source_ranges = var.ssh_source_ranges - target_tags = ["ssh"] -} - -# Frontend → Backend (8000) -resource "google_compute_firewall" "frontend_backend" { - name = "${var.project_name}-fw-frontend-backend" - network = google_compute_network.vpc.id +resource "google_compute_firewall" "allow_frontend_backend" { + name = "allow-frontend-backend" + network = google_compute_network.vpc_terraform.id allow { protocol = "tcp" @@ -63,13 +48,25 @@ resource "google_compute_firewall" "frontend_backend" { } source_tags = ["frontend"] - target_tags = ["backend"] + target_tags = ["backend"] } -# Backend → Database (3306) -resource "google_compute_firewall" "backend_database" { - name = "${var.project_name}-fw-backend-database" - network = google_compute_network.vpc.id +resource "google_compute_firewall" "allow_ssh_all" { + name = "allow-ssh-all" + network = google_compute_network.vpc_terraform.id + + allow { + protocol = "tcp" + ports = ["22"] + } + + source_ranges = ["0.0.0.0/0"] + target_tags = ["ssh"] +} + +resource "google_compute_firewall" "allow_backend_database" { + name = "allow-backend-database" + network = google_compute_network.vpc_terraform.id allow { protocol = "tcp" @@ -77,6 +74,5 @@ resource "google_compute_firewall" "backend_database" { } source_tags = ["backend"] - target_tags = ["database"] -} - + target_tags = ["database"] +} \ No newline at end of file diff --git a/tp-cloud/terraform/modules/network/outputs.tf b/tp-cloud/terraform/modules/network/outputs.tf index 6a124a7..48cab24 100644 --- a/tp-cloud/terraform/modules/network/outputs.tf +++ b/tp-cloud/terraform/modules/network/outputs.tf @@ -1,12 +1,11 @@ -output "vpc_id" { - value = google_compute_network.vpc.id -} - -output "subnets" { - value = { - frontend = google_compute_subnetwork.frontend.id - backend = google_compute_subnetwork.backend.id - database = google_compute_subnetwork.database.id - } +output "vpc_terraform_output" { + value = google_compute_network.vpc_terraform.id } +output "list_id" { + value = { + frontend = google_compute_subnetwork.subnet_frontend.id + backend = google_compute_subnetwork.subnet_backend.id + database = google_compute_subnetwork.subnet_database.id + } +} \ No newline at end of file diff --git a/tp-cloud/terraform/modules/network/variables.tf b/tp-cloud/terraform/modules/network/variables.tf index 80146e2..9355af5 100644 --- a/tp-cloud/terraform/modules/network/variables.tf +++ b/tp-cloud/terraform/modules/network/variables.tf @@ -1,34 +1,29 @@ -variable "projet1-478713" { +variable "project_name" { + description = "Nom du projet" type = string - description = "projet1-478713" } variable "region" { + description = "Region du projet" type = string - description = "Région GCP" - default = "europe-west1" } variable "frontend_cidr" { description = "CIDR for frontend subnet" type = string - default = "10.0.1.0/24" } variable "backend_cidr" { description = "CIDR for backend subnet" type = string - default = "10.0.2.0/24" } variable "database_cidr" { description = "CIDR for database subnet" type = string - default = "10.0.3.0/24" } variable "ssh_source_ranges" { - type = list(string) - default = ["0.0.0.0/0"] -} - + description = "" + type = string +} \ No newline at end of file