diff --git a/terraform/environments/dev/main.tf b/terraform/environments/dev/main.tf new file mode 100644 index 0000000..e69de29 diff --git a/terraform/environments/dev/outputs.tf b/terraform/environments/dev/outputs.tf new file mode 100644 index 0000000..e69de29 diff --git a/terraform/environments/dev/variables.tf b/terraform/environments/dev/variables.tf new file mode 100644 index 0000000..6798c3b --- /dev/null +++ b/terraform/environments/dev/variables.tf @@ -0,0 +1,45 @@ +variable "project_name" { + type = string + description = "but3-iac" + default = "Automaticsearch" +} + +variable "region" { + type = string + description = "Région dans laquelle déployer les ressources" + default = "europe-west9-b" +} + +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 = string + description = "Plages d’adresses autorisées à se connecter en SSH" + default = "0.0.0.0/0" + +} + + +variable "project_id"{ + description = "id du projet" + type = string + default = "automaticsearch-477610" + + +} \ No newline at end of file diff --git a/terraform/modules/compute/main.tf b/terraform/modules/compute/main.tf new file mode 100644 index 0000000..e69de29 diff --git a/terraform/modules/compute/outputs.tf b/terraform/modules/compute/outputs.tf new file mode 100644 index 0000000..e69de29 diff --git a/terraform/modules/compute/variables.tf b/terraform/modules/compute/variables.tf new file mode 100644 index 0000000..e69de29 diff --git a/terraform/modules/iam/main.tf b/terraform/modules/iam/main.tf new file mode 100644 index 0000000..e69de29 diff --git a/terraform/modules/iam/outputs.tf b/terraform/modules/iam/outputs.tf new file mode 100644 index 0000000..e69de29 diff --git a/terraform/modules/iam/variables.tf b/terraform/modules/iam/variables.tf new file mode 100644 index 0000000..e69de29 diff --git a/terraform/modules/network/main.tf b/terraform/modules/network/main.tf new file mode 100644 index 0000000..000ca18 --- /dev/null +++ b/terraform/modules/network/main.tf @@ -0,0 +1,87 @@ +resource "google_compute_network" "vpc" { + name = "mon-vpc" + auto_create_subnetworks = false +} + +# Sous-réseau +resource "google_compute_subnetwork" "frontend" { + name = "mon-frontend" + network = google_compute_network.vpc.id + ip_cidr_range = "10.0.1.0/24" + region = var.region +} + +resource "google_compute_subnetwork" "backend" { + name = "mon-backend" + network = google_compute_network.vpc.id + ip_cidr_range = "10.0.2.0/24" + region = var.region +} + +resource "google_compute_subnetwork" "database" { + name = "mon-database" + network = google_compute_network.vpc.id + ip_cidr_range = "10.0.3.0/24" + region = var.region +} + +resource "google_compute_firewall" "ssh_firewall" { + name = "mon_ssh" + network = google_compute_network.vpc.id + + allow { + protocol = "tcp" + ports = ["22"] + } + + source_ranges = ["0.0.0.0/0"] + target_tags = ["ssh"] + +} + + +resource "google_compute_firewall" "frontend_firewall" { + name = "allow-http" + network = google_compute_network.vpc.id + + allow { + protocol = "tcp" + ports = ["80", "443"] + } + + source_ranges = ["0.0.0.0/0"] + target_tags = ["frontend"] + +} + +resource "google_compute_firewall" "backend_firewall" { + name = "allow-http" + network = google_compute_network.vpc.id + + allow { + protocol = "tcp" + ports = ["8000"] + } + + source_ranges = ["frontend"] + target_tags = ["backend"] + +} + +resource "google_compute_firewall" "database_firewall" { + name = "allow-http" + network = google_compute_network.vpc.id + + allow { + protocol = "tcp" + ports = ["3306"] + } + + source_ranges = ["backend"] + target_tags = ["database"] + +} + + + + diff --git a/terraform/modules/network/outputs.tf b/terraform/modules/network/outputs.tf new file mode 100644 index 0000000..1cd189c --- /dev/null +++ b/terraform/modules/network/outputs.tf @@ -0,0 +1,17 @@ +output "vpc_terraform" { + description = "ID du VPC créé" + value = google_compute_instance.vpc.id + +} + + +output "subnet_ids" { + description = "Map des IDs des sous-réseaux" + value = { + + frontend = google_compute_subnetwork.frontend.id + backend = google_compute_subnetwork.backend.id + database = google_compute_subnetwork.database.id + } + +} diff --git a/terraform/modules/network/variables.tf b/terraform/modules/network/variables.tf new file mode 100644 index 0000000..0834a98 --- /dev/null +++ b/terraform/modules/network/variables.tf @@ -0,0 +1,36 @@ +variable "project_name" { + type = string + description = "but3-iac" + +} + +variable "region" { + type = string + description = "Région dans laquelle déployer les ressources" + +} + +variable "frontend_cidr" { + description = "CIDR for frontend subnet" + type = string + +} + +variable "backend_cidr" { + description = "CIDR for backend subnet" + type = string + +} + +variable "database_cidr" { + description = "CIDR for database subnet" + type = string + +} + +variable "ssh_source_ranges" { + type = string + description = "Plages d’adresses autorisées à se connecter en SSH" + + +}