Skip Navigation

Moodle autoscale with db/redis

Last updated: 28-12-2017

Deploys an autoscaling Moodle cluster with objectfs storage, Azure redis, Azure MySQL/Postgres, and Elasticsearch. Can be configured for very small or very large sites. Deploys frontend components to a private network with a jumphost to access nodes. Requires keyed SSH access.

This Azure Resource Manager (ARM) template was created by a member of the community and not by Microsoft. Each ARM template is licensed to you under a licence agreement by its owner, not Microsoft. Microsoft is not responsible for ARM templates provided and licensed by community members and does not screen for security, compatibility or performance. Community ARM templates are not supported under any Microsoft support programme or service and are made available AS IS without warranty of any kind.

Parameters

Parameter Name Description
_artifactsLocation The base URI where artifacts required by this template are located. When the template is deployed using the accompanying scripts, a private location in the subscription will be used and this value will be automatically generated.
_artifactsLocationSasToken The sasToken required to access _artifactsLocation. When the template is deployed using the accompanying scripts, a sasToken will be automatically generated.
applyScriptsSwitch Switch to process or bypass all scripts/extensions
azureBackupSwitch Switch to configure AzureBackup and enlist VM's
vnetGwDeploySwitch Switch to deploy a virtual network gateway or not
installO365pluginsSwitch Switch to install Moodle Office 365 plugins
installElasticSearchSwitch Switch to install Moodle ElasticSearch plugins & VMs
storageAccountType Storage Account type
dbServerType Database type
fileServerType File server type: GlusterFS, Azure Files (CIFS)--disabled due to too slow perf, NFS--not highly available
webServerType Web server type
controllerVmSku VM size for the controller node
autoscaleVmSku VM size for autoscaled nodes
autoscaleVmCount Maximum number of autoscaled nodes
elasticVmSku VM size for the elastic search nodes
firewallRuleName Database firewall rule name
gatewaySubnet name for Virtual network gateway subnet
gatewayType Virtual network gateway type
glusterVmSku VM size for the gluster nodes
fileServerDiskSize Size per disk for gluster nodes or nfs server
fileServerDiskCount Number of disks in raid0 per gluster node or nfs server
moodleVersion The Moodle version you want to install.
dbLogin Database admin username
siteURL URL for Moodle site
skuCapacityDTU MySql/Postgresql database trasaction units
skuFamily MySql/Postgresql sku family
skuName MySql/Postgresql sku name
skuSizeMB MySql/Postgresql sku size in MB. For Basic tier, minimum 50GB, increased by 125GB up to 1TB. For Standard tier, minimum 125GB, increase by 125GB up to 1TB
skuTier MySql/Postgresql sku tier
sshPublicKey ssh public key
sshUsername ssh user name
sslEnforcement MySql/Postgresql SSL connection
postgresVersion Postgresql version
mysqlVersion Mysql version
vNetAddressSpace Address range for the Moodle virtual network - presumed /16 - further subneting during vnet creation
vpnType Virtual network gateway vpn type
location Location for all resources.

Use the template

PowerShell

New-AzureRmResourceGroupDeployment -Name <deployment-name> -ResourceGroupName <resource-group-name> -TemplateUri https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/moodle-scalable-cluster-ubuntu/azuredeploy.json
Install and configure Azure PowerShell

Command line

azure config mode arm
azure group deployment create <my-resource-group> <my-deployment-name> --template-uri https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/moodle-scalable-cluster-ubuntu/azuredeploy.json
Install and Configure the Azure Cross-Platform Command-Line Interface