terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "4.52.0" } } } provider "azurerm" { features {} subscription_id = "0c8b6184-985d-4f31-b57e-c91f921241bd" # JP Personal sub } resource "azurerm_resource_group" "rg" { name = var.resource_group_name location = var.location } resource "azurerm_storage_account" "storage" { name = var.storage_account_name resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location account_tier = "Standard" account_replication_type = "LRS" } resource "azurerm_storage_container" "terraform_state" { name = "terraform-state" storage_account_id = azurerm_storage_account.storage.id } data "http" "my_ip" { url = "https://checkip.amazonaws.com/" } locals { my_ip = chomp(data.http.my_ip.response_body) ssh_public_key = file("~/.ssh/id_rsa.pub") storage_account_url = "https://${azurerm_storage_account.storage.name}.blob.core.windows.net" } module "network" { source = "../../modules/network" vnet_name = "vnet" resource_group_name = var.resource_group_name location = var.location address_space = ["10.0.0.0/16"] subnets = { public = "10.0.1.0/24", private = "10.0.2.0/24" } environment = var.environment project = var.project_name } module "sql_server" { source = "../../modules/database" resource_group_name = var.resource_group_name location = var.location environment = var.environment sql_admin_password = var.sql_admin_password sql_server_name = var.sql_server_name olap_database_name = var.olap_database_name oltp_database_name = var.oltp_database_name } module "data_factory" { source = "../../modules/data_factory" resource_group_name = var.resource_group_name location = var.location environment = var.environment storage_account_url = local.storage_account_url data_factory_name = var.data_factory_name sql_admin_password = var.sql_admin_password sql_server_name = var.sql_server_name olap_database_name = var.olap_database_name oltp_database_name = var.oltp_database_name } # module "compute" { # source = "../../modules/compute" # resource_group_name = var.resource_group_name # location = var.location # subnet_id = module.network.subnet_ids["public"] # vm_size = "Standard_B1s" # admin_username = "demo" # ssh_public_key = file("~/.ssh/id_rsa.pub") # ex_ip = chomp(data.http.my_ip.response_body) # }