90 lines
2.6 KiB
Terraform
90 lines
2.6 KiB
Terraform
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)
|
|
# }
|