extensions_sql_server_virtual_machines.tf (50 lines of code) (raw):

locals { log_analytics_policies = { mdc-log-analytics-arc1-autoprovisioning-sql = { definition_display_name = "[Preview]: Configure Azure Arc-enabled Windows machines with Log Analytics agents connected to default Log Analytics workspace" } mdc-log-analytics-arc2-autoprovisioning-sql = { definition_display_name = "[Preview]: Configure Azure Arc-enabled Linux machines with Log Analytics agents connected to default Log Analytics workspace" } } log_analytics_roles = { sql-server-virtual-machines-arc1-role-1 = { name = "Contributor" policy = "mdc-log-analytics-arc1-autoprovisioning-sql" } sql-server-virtual-machines-arc2-role-1 = { name = "Contributor" policy = "mdc-log-analytics-arc2-autoprovisioning-sql" } } sql_server_virtual_machines_enabled = contains(local.plans_without_databases, "SqlServerVirtualMachines") && !contains(var.mdc_plans_list, "VirtualMachines") } # Enabling extension - Log Analytics for arc data "azurerm_policy_definition" "la_policies" { for_each = local.sql_server_virtual_machines_enabled ? local.log_analytics_policies : {} display_name = each.value.definition_display_name } resource "azurerm_subscription_policy_assignment" "sql" { for_each = local.sql_server_virtual_machines_enabled ? local.log_analytics_policies : {} name = each.key policy_definition_id = data.azurerm_policy_definition.la_policies[each.key].id subscription_id = data.azurerm_subscription.current.id display_name = each.value.definition_display_name location = var.location identity { type = "SystemAssigned" } depends_on = [ azurerm_security_center_subscription_pricing.asc_plans["SqlServerVirtualMachines"] ] } # Enabling Log Analytics Roles data "azurerm_role_definition" "la_roles" { for_each = local.sql_server_virtual_machines_enabled ? local.log_analytics_roles : {} name = each.value.name scope = data.azurerm_subscription.current.id } resource "azurerm_role_assignment" "va_auto_provisioning_la_role" { for_each = local.sql_server_virtual_machines_enabled ? local.log_analytics_roles : {} principal_id = azurerm_subscription_policy_assignment.sql[each.value.policy].identity[0].principal_id scope = data.azurerm_subscription.current.id role_definition_id = data.azurerm_role_definition.la_roles[each.key].id }