forked from MsftArgHacks/Terraform
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tf
127 lines (121 loc) · 3.53 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
//Backend Example.
terraform {
backend "azurerm" {
resource_group_name = "terraform"
storage_account_name = "hackterraform"
container_name = "tfstate"
key = "prod.terraform.tfstate"
}
required_providers {
azurerm = {
version = "~> 2.19"
}
}
}
//Provider example
provider "azurerm" {
features {}
}
//Generation of ramdom String
resource "random_string" "str" {
length = 3
special = false
upper = false
number = false
}
//Declaration of Locals Variables.
locals {
sqlserver_name = "haargsql"
common_tags = {
environment = "${var.prefix}"
project = "${var.project}"
Terraform = "true"
Environment = "dev"
Owner = "test-user"
}
extra_tags = {
network = "HackTest"
extra = "Terraform"
}
}
//RG
module "RGroups" {
source = "./Modules/RGroups"
tupla_rgname_lc = var.tupla_rgname_lc
}
//Log Analytics
module "LogAnalitycs" {
source = "./Modules/LogAnalitycs"
name = "mshack"
depends_on = [module.RGroups] // Dependencia Explicita.
resource_group_name = join("," , module.RGroups.name[*].RGEU2001.name) // Dependencia implicita
location = join("," , module.RGroups.name[*].RGEU2001.location) // Dependencia implicita
sku = "Free"
retention_in_days = 7
tags = merge(local.common_tags, local.extra_tags)
solutions = [
{
solution_name = "AzureActivity",
publisher = "Microsoft",
product = "OMSGallery/AzureActivity",
},
]
}
//SQLServer
module "SQLServer" {
source = "./Modules/SQLServer"
depends_on = [module.RGroups, module.LogAnalitycs]
location = join("," , module.RGroups.name[*].RGEU2001.location)
sc_name = "holaychao"
sqlserver_name = local.sqlserver_name == null ? random_string.str.result : local.sqlserver_name
db_name = "demomssqldb"
sql_database_edition = "Standard"
sqldb_service_objective_name = "S1"
resource_group_name = join("," , module.RGroups.name[*].RGEU2001.name)
log_analytics_workspace_id = module.LogAnalitycs.resource_id
log_retention_days = 7
firewall_rules = [
{
name = "access-to-azure"
start_ip_address = "0.0.0.0"
end_ip_address = "0.0.0.0"
},
{
name = "desktop-ip"
start_ip_address = "190.233.207.107"
end_ip_address = "190.233.207.107"
}
]
#initialize_sql_script_execution = true
#sqldb_init_script_file = "../artifacts/db-init-sample.sql"
tags = merge(local.common_tags, local.extra_tags)
}
//AppServices
module "Appservice" {
for_each = var.tupla_rgname_lc
source = "./Modules/AppServices"
depends_on = [module.RGroups, module.SQLServer]
asp_name = "${each.value.location}${random_string.str.result}asp"
wa_name = "${each.value.location}${random_string.str.result}app"
location = each.value.location
resource_group_name = each.value.name
sku = {
tier = "Standard"
size = "S1"
}
site_config = {
dotnet_framework_version = "v4.0"
scm_type = "LocalGit"
}
app_settings = {
foo = "bar"
}
connection_string = [{
name = "SQLServer"
type = "SQLAzure"
value = module.SQLServer.connection_string
}]
app_insights_name = "${random_string.str.result}app_insights"
application_insights_type = "web"
//workspace_id = module.LogAnalitycs.workspace_id
}