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¶
- A virtual network and subnet that meet the Azure network prerequisites
- The Azure CLI signed in with
az login, as an identity that holds the Azure permissions the provider needs - Terraform 1.11 or later
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¶
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.