terraform { required_providers { google = { source = "hashicorp/google" version = "~> 6.12.0" } } } provider "google" { project = var.project_id region = var.region } # ------------------------ # Module NETWORK # ------------------------ 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 } # ------------------------ # Module COMPUTE # ------------------------ module "compute" { source = "../../modules/compute" instance_type = var.instance_type zone = var.zone frontend_subnet_id = module.network.subnet_ids["frontend"] backend_subnet_id = module.network.subnet_ids["backend"] database_subnet_id = module.network.subnet_ids["database"] } # ------------------------ # Module IAM # ------------------------ module "iam" { source = "../../modules/iam" project_id = var.project_id } # ------------------------ # Fichier template Ansible # ------------------------ data "templatefile" "ansible_cfg" { template = file("../../template/ansible.cfg.tpl") vars = { frontend_ip = module.compute.frontend_public_ip backend_ip = module.compute.internal_ips["backend"] db_ip = module.compute.internal_ips["database"] } }