diff --git a/quickstart/101-analysis-services-create/main.tf b/quickstart/101-analysis-services-create/main.tf new file mode 100644 index 00000000..af1c6128 --- /dev/null +++ b/quickstart/101-analysis-services-create/main.tf @@ -0,0 +1,29 @@ +resource "random_pet" "rg_name" { + prefix = var.resource_group_name_prefix +} + +resource "azurerm_resource_group" "rg" { + name = random_pet.rg_name.id + location = var.resource_group_location +} + +resource "random_string" "azurerm_analysis_services_server_name" { + length = 25 + upper = false + numeric = false + special = false +} + +resource "azurerm_analysis_services_server" "server" { + name = random_string.azurerm_analysis_services_server_name.result + resource_group_name = azurerm_resource_group.rg.name + location = azurerm_resource_group.rg.location + sku = var.sku + backup_blob_container_uri = var.backup_blob_container_uri + + ipv4_firewall_rule { + name = "AllowFromAll" + range_start = "0.0.0.0" + range_end = "255.255.255.255" + } +} diff --git a/quickstart/101-analysis-services-create/outputs.tf b/quickstart/101-analysis-services-create/outputs.tf new file mode 100644 index 00000000..7aa1895d --- /dev/null +++ b/quickstart/101-analysis-services-create/outputs.tf @@ -0,0 +1,7 @@ +output "resource_group_name" { + value = azurerm_resource_group.rg.name +} + +output "azurerm_analysis_services_server_name" { + value = azurerm_analysis_services_server.server.name +} diff --git a/quickstart/101-analysis-services-create/providers.tf b/quickstart/101-analysis-services-create/providers.tf new file mode 100644 index 00000000..9db91bd4 --- /dev/null +++ b/quickstart/101-analysis-services-create/providers.tf @@ -0,0 +1,16 @@ +terraform { + required_version = ">=0.12" + required_providers { + azurerm = { + source = "hashicorp/azurerm" + version = "~>3.0" + } + random = { + source = "hashicorp/random" + version = "~>3.0" + } + } +} +provider "azurerm" { + features {} +} \ No newline at end of file diff --git a/quickstart/101-analysis-services-create/readme.md b/quickstart/101-analysis-services-create/readme.md new file mode 100644 index 00000000..a8f82aab --- /dev/null +++ b/quickstart/101-analysis-services-create/readme.md @@ -0,0 +1,19 @@ +# Azure Analysis Services server + +This template deploys an Azure Analysis Services server. + +## Terraform resource types + +- [random_pet](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/pet) +- [azurerm_resource_group](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) +- [azurerm_analysis_services_server](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/analysis_services_server) + +## Variables + +| Name | Description | Default | +|-|-|-| +| `resource_group_name_prefix` | Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription. | rg | +| `resource_group_location` | Location of the resource group. | eastus | +| `server_name` | Name of the Azure Analysis Services server. | | +| `sku` | SKU name of the Azure Analysis Services server to create. | S0 | +| `backup_blob_container_uri` | SAS URI to a private Azure Blob Storage container with read, write and list permissions. | null | diff --git a/quickstart/101-analysis-services-create/variables.tf b/quickstart/101-analysis-services-create/variables.tf new file mode 100644 index 00000000..e26140da --- /dev/null +++ b/quickstart/101-analysis-services-create/variables.tf @@ -0,0 +1,30 @@ +variable "resource_group_location" { + type = string + default = "eastus" + description = "Location for all resources." +} + +variable "resource_group_name_prefix" { + type = string + default = "rg" + description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." +} + +variable "azurerm_analysis_services_server_name_prefix" { + type = string + default = "mys" + description = "Prefix of the Azure Analysis Services Server name that's combined with a random string to create a unique server name in your Azure subscription." +} + +variable "sku" { + type = string + description = "The sku name of the Azure Analysis Services server to create. Choose from: B1, B2, D1, S0, S1, S2, S3, S4, S8, S9. Some skus are region specific. See https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-overview#availability-by-region" + default = "S0" +} + +variable "backup_blob_container_uri" { + type = string + description = "The SAS URI to a private Azure Blob Storage container with read, write and list permissions. Required only if you intend to use the backup/restore functionality. See https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-backup" + default = null +} +