Skip to content

Deploy a basic Azure cluster

When you finish, a three-node Qumulo cluster runs in your Azure subnet, and you can sign in to its web UI.

Before you start

Warning

The cluster subnet needs the Microsoft.Storage and Microsoft.KeyVault service endpoints before the first apply. Check for both under Virtual networks > your virtual network > Settings > Service endpoints.

1. Copy the configuration

Save this as main.tf in an empty directory.

terraform {
  required_version = ">= 1.11"
  required_providers {
    qumulo = {
      source  = "qumulo-terraform-registry.s3.us-east-1.amazonaws.com/qumulo/qumulo"
      version = "~> 1.0"
    }
  }
}

provider "qumulo" {
  azure {
    subscription_id = "00000000-0000-0000-0000-000000000000" # <-- Replace with your subscription ID
  }
}

resource "qumulo_filesystem_azure" "cluster" {
  cluster_name             = "qumulo"
  deployment_name          = "qumulo"
  location                 = "eastus2" # <-- Replace with your region
  resource_group_name      = "rg-qumulo"
  subnet_id                = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-network/providers/Microsoft.Network/virtualNetworks/vnet-main/subnets/subnet-qumulo" # <-- Replace with your subnet resource ID
  node_count               = 3
  vm_type                  = "Standard_L8s_v3"
  cluster_product_type     = "HOT"
  storage_replication_type = "LRS"
  storage_class            = "STANDARD"
  admin_password           = "YourSecurePassword123!" # <-- Replace with your admin password
  allow_cidrs              = ["10.0.0.0/8"]           # <-- Replace with your client networks
  deletion_protection      = true
}

output "endpoint_ips" {
  value = qumulo_filesystem_azure.cluster.endpoint_ips
}

output "web_ui" {
  value = "https://${qumulo_filesystem_azure.cluster.endpoint_ips[0]}"
}

Replace the five values marked <-- Replace, and leave the rest as written. The provider creates the rg-qumulo resource group if it does not exist yet.

The configuration uses locally redundant storage, so it deploys in any region, including one without availability zones. It also turns on deletion_protection, so terraform destroy refuses to run until you set deletion_protection = false and apply.

2. Apply

terraform init -upgrade
terraform plan
terraform apply

The plan ends with Plan: 1 to add, 0 to change, 0 to destroy. The apply runs for up to 90 minutes and ends with Apply complete! Resources: 1 added, 0 changed, 0 destroyed., followed by the endpoint_ips and web_ui outputs.

3. Check the cluster

Open the web_ui address in a browser on a network inside allow_cidrs, and accept the cluster's self-signed certificate. Sign in as admin with the password you set, and the web UI shows the cluster named qumulo.

Next

Spread the cluster across availability zones with Deploy a production Azure cluster, or look up any attribute in the qumulo_filesystem_azure reference. If a step fails, see Troubleshoot an Azure deployment.