Our goal with these templates is to make it as easy as possible to
deploy a Moodle on Azure cluster that can be customized to your
specific needs. To that end we provide a great manay configuration
options. This document attempts to document all these parameters,
however, like all documentation it can sometimes fall behind. For a
canonical reference you should review the azuredeploy.json
file.
To make it a litte easier to read azuredeploy.json
you might want to
run the following commands which will extract the necessary
information and display it in a more readable form.
sudo apt install jq
jq -r '.parameters | to_entries[] | "### " + .key + "\n\n" + .value.metadata.description + "\n\nType: " + .value.type + "\n\nPossible Values: " + (.value.allowedValues | @text) + "\n\nDefault: " + (.value.defaultValue | @text) + "\n\n"' azuredeploy.json
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.
Type: string
Possible Values: null
Default: https://raw.githubusercontent.com/Azure/Moodle/master/
The sasToken required to access _artifactsLocation. When the template is deployed using the accompanying scripts, a sasToken will be automatically generated.
Type: securestring
Possible Values: null
Default:
Switch to process or bypass all scripts/extensions
Type: bool
Possible Values: null
Default: true
Switch to configure AzureBackup and enlist VM's
Type: bool
Possible Values: null
Default: false
Switch to deploy a redis cache or not. Note that certain versions of Moodle (e.g., 3.1) don't work well with Redis, so use this only for known well-working Moodle versions (e.g., 3.4).
Type: bool
Possible Values: null
Default: false
Switch to deploy a virtual network gateway or not
Type: bool
Possible Values: null
Default: false
Switch to install Moodle Object FS plugins (with Azure Blob storage)
Type: bool
Possible Values: null
Default: false
Switch to install Moodle Office 365 plugins. As of May 22, 2018, O365 plugins for Moodle 3.5 haven't been released, so to set this true, you must set the moodleVersion to 3.4 or below.
Type: bool
Possible Values: null
Default: false
(Should be used only for Moodle 3.4 & 3.3) Switch to install Moodle GDPR plugins. Note these require Moodle versions 3.4.2+ or 3.3.5+ and these are included by default in Moodle 3.5. So if you choose MOODLE_35_STABLE as your moodleVersion, do not set this to true.
Type: bool
Possible Values: null
Default: false
Switch to create a local copy of /moodle/html or not
Type: bool
Possible Values: null
Default: true
Switch to create a DDoS protection plan
Type: bool
Possible Values: null
Default: false
Switch to enable Azure Accelerated Networking on the controller VM. Default to false because currently the default controller VM SKU (D1) doesn't support AN. Change this to true if you set the controller VM SKU to eligibible ones (e.g., D2) for better performance.
Type: bool
Possible Values: null
Default: false
Switch to enable Azure Accelerated Networking on all other VMs. Default to true because currently the default controller VM SKU for all other VMS (D2) does support AN. Change this to false if you set the SKU of any other VMs to an ineligibible one (e.g., D1) to avoid deployment failure.
Type: bool
Possible Values: null
Default: true
Indicates where https termination occurs. 'VMSS' is for https termination at the VMSS instance VMs (using nginx https proxy). 'AppGw' is for https termination with an Azure Application Gateway. When selecting this, you need to specify all appGw* parameters. 'None' is for testing only with no https. 'None' may not be used with a separately configured https termination layer. If you want to use the 'None' option with your separately configured https termination layer, you'll need to update your Moodle config.php manually for $cfg->wwwroot and $cfg->sslproxy.
Type: string
Possible Values: ["VMSS","AppGw","None"]
Default: VMSS
URL for Moodle site
Type: string
Possible Values: null
Default: www.example.org
The Moodle version you want to install.
Type: string
Possible Values: ["MOODLE_35_STABLE","MOODLE_34_STABLE","v3.4.3","v3.4.2","v3.4.1","MOODLE_33_STABLE","MOODLE_32_STABLE","MOODLE_31_STABLE","MOODLE_30_STABLE","MOODLE_29_STABLE"]
Default: MOODLE_35_STABLE
ssh public key
Type: string
Possible Values: null
Default: null
ssh user name
Type: string
Possible Values: null
Default: azureadmin
VM size for the controller VM
Type: string
Possible Values: null
Default: Standard_DS1_v2
Web server type
Type: string
Possible Values: ["apache","nginx"]
Default: apache
VM size for autoscaled web VMs
Type: string
Possible Values: null
Default: Standard_DS2_v2
Maximum number of autoscaled web VMs
Type: int
Possible Values: null
Default: 10
Minimum (also initial) number of autoscaled web VMs
Type: int
Possible Values: null
Default: 1
Azure storage type for all VMs' OS disks. With htmlLocalCopySwith true, Premium_LRS (SSD) is strongly recommended, as PHP files will be served from OS disks.
Type: string
Possible Values: ["Premium_LRS","Standard_LRS"]
Default: Premium_LRS
Database type
Type: string
Possible Values: ["postgres","mysql","mssql"]
Default: mysql
Database admin username
Type: string
Possible Values: null
Default: dbadmin
MySql/Postgresql vCores. For Basic tier, only 1 & 2 are allowed. For GeneralPurpose tier, 2, 4, 8, 16, 32 are allowed. For MemoryOptimized, 2, 4, 8, 16 are allowed.
Type: int
Possible Values: [1,2,4,8,16,32]
Default: 2
MySql/Postgresql storage size in GB. Minimum 5GB, increase by 1GB, up to 1TB (1024 GB)
Type: int
Possible Values: null
Default: 125
MySql/Postgresql sku tier
Type: string
Possible Values: ["Basic","GeneralPurpose","MemoryOptimized"]
Default: GeneralPurpose
MySql/Postgresql sku hardware family. Central US is Gen4 only, so make sure to change this parameter to Gen4 if your deployment is on Central US.
Type: string
Possible Values: ["Gen4","Gen5"]
Default: Gen5
Mysql version
Type: string
Possible Values: ["5.6","5.7"]
Default: 5.7
Postgresql version
Type: string
Possible Values: ["9.5","9.6"]
Default: 9.6
MySql/Postgresql SSL connection
Type: string
Possible Values: ["Disabled","Enabled"]
Default: Disabled
MS SQL database service object names
Type: string
Possible Values: ["S1","S2","S3","S4","S5","S6","S7","S9"]
Default: S1
MS SQL database size
Type: string
Possible Values: ["100MB","250MB","500MB","1GB","2GB","5GB","10GB","20GB","30GB","40GB","50GB","100GB","250GB","300GB","400GB","500GB","750GB","1024GB"]
Default: 250GB
MS SQL DB edition
Type: string
Possible Values: ["Basic","Standard"]
Default: Standard
Mssql version
Type: string
Possible Values: ["12.0"]
Default: 12.0
File server type: GlusterFS, NFS, and NFS-HA (2-VM highly available NFS cluster)
Type: string
Possible Values: ["gluster","nfs","nfs-ha","nfs-byo"]
Default: nfs
IP address and export path of the BYO-NFS share when fileServerType == nfs-byo. E.g., 172.16.1.8:/msazure
Type: string
Possible Values: null
Default:
Size per disk for gluster nodes or nfs server
Type: int
Possible Values: null
Default: 127
Number of disks in raid0 per gluster node or nfs server
Type: int
Possible Values: null
Default: 4
VM size for the gluster or NFS-HA nodes
Type: string
Possible Values: null
Default: Standard_DS2_v2
(VMSS https termination only) Azure Resource Manager resource ID of the Key Vault in case you stored your SSL cert in an Azure Key Vault (Note that this Key Vault must have been pre-created on the same Azure region where this template is being deployed). Leave this blank if you didn't. Resource ID example: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/xxx/providers/Microsoft.KeyVault/vaults/yyy. This value can be obtained from keyvault.sh output if you used the script to store your SSL cert in your Key Vault.
Type: string
Possible Values: null
Default:
(VMSS https termination only) Azure Key Vault URL for your stored SSL cert. This value can be obtained from keyvault.sh output if you used the script to store your SSL cert in your Key Vault. This parameter is ignored if the keyVaultResourceId parameter is blank.
Type: string
Possible Values: null
Default:
(VMSS https termination only) Thumbprint of your stored SSL cert. This value can be obtained from keyvault.sh output if you used the script to store your SSL cert in your Key Vault. This parameter is ignored if the keyVaultResourceId parameter is blank.
Type: string
Possible Values: null
Default:
(VMSS https termination only) Azure Key Vault URL for your stored CA (Certificate Authority) cert. This value can be obtained from keyvault.sh output if you used the script to store your CA cert in your Key Vault. This parameter is ignored if the keyVaultResourceId parameter is blank.
Type: string
Possible Values: null
Default:
(VMSS https termination only) Thumbprint of your stored CA cert. This value can be obtained from keyvault.sh output if you used the script to store your CA cert in your Key Vault. This parameter is ignored if the keyVaultResourceId parameter is blank.
Type: string
Possible Values: null
Default:
(App Gateway https termination only) Azure Key Vault URL for your stored SSL cert, again for App Gateway https termination case only. (Note that this Key Vault must have been pre-created on the same Azure region where this template is being deployed). Leave this blank if you didn't. Resource ID example: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/xxx/providers/Microsoft.KeyVault/vaults/yyy.
Type: string
Possible Values: null
Default:
(App Gateway https termination only) Name of the Azure Key Vault secret that's stored in the previously specified Key Vault as a PFX certificate (with no password) for your site's SSL cert. This secret must be pre-populated in the specified Key Vault with the matching name.
Type: string
Possible Values: null
Default:
(App Gateway https termination only) Name of the Applicate Gateway SKU
Type: string
Possible Values: ["Standard_Small","Standard_Medium","Standard_Large","WAF_Medium","WAF_Large"]
Default: Standard_Medium
(App Gateway https termination only) Tier of the Applicate Gateway
Type: string
Possible Values: ["Standard","WAF"]
Default: Standard
(App Gateway https termination only) Capacity instance count) of the Applicate Gateway
Type: int
Possible Values: null
Default: 2
Storage Account type. This storage account is only for the Moodle ObjectFS plugin and/or the (currently disabled) Azure Files file share option
Type: string
Possible Values: ["Standard_LRS","Standard_GRS","Standard_ZRS"]
Default: Standard_LRS
options of moodle global search
Type: string
Possible Values: ["none","azure","elastic"]
Default: none
options of enabling tika service for file searching in moodle
Type: string
Possible Values: ["none","tika"]
Default: none
the search service level you want to create.
Type: string
Possible Values: ["free","basic","standard","standard2","standard3"]
Default: basic
Replicas distribute search workloads across the service. You need 2 or more to support high availability (applies to Basic and Standard only).
Type: int
Possible Values: null
Default: 3
Partitions allow for scaling of document count as well as faster indexing by sharding your index over multiple Azure Search units.
Type: int
Possible Values: [1,2,3,4,6,12]
Default: 1
Applicable only for azureSearchSku set to standard3. You can set this property to enable a single, high density partition that allows up to 1000 indexes, which is much higher than the maximum indexes allowed for any other azureSearchSku.
Type: string
Possible Values: ["default","highDensity"]
Default: default
VM size for the elastic search nodes
Type: string
Possible Values: null
Default: Standard_DS2_v2
VM size for the tika search nodes
Type: string
Possible Values: null
Default: Standard_DS2_v2
Azure Resource ID of the Azure virtual network where you want to deploy your Moodle resources. A vnet resource ID is of the following format: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx/resourceGroups/gggg/providers/Microsoft.Network/virtualNetworks/vvvv. Note that this virtual network must be on the same Azure location as this template deployment location. If this parameter is blank, a new Azure virtual network will be created and used. In that case, the address space of the newly created virtual network will be */16 of the following vNetAddressSpace parameter value below.
Type: string
Possible Values: null
Default:
Address range for the Moodle virtual network and various subnets - presumed /16 for a newly created vnet in case customVnetId is blank. Further subneting (a number of */24 subnets starting from the xxx.yyy.zzz.0/24 will be created on a newly created vnet or your BYO-vnet (specified in customVnetId parameter).
Type: string
Possible Values: null
Default: 172.31.0.0
Virtual network gateway type
Type: string
Possible Values: ["Vpn","ER"]
Default: Vpn
Virtual network gateway vpn type
Type: string
Possible Values: ["RouteBased","PolicyBased"]
Default: RouteBased
Loadbalancer SKU
Type: string
Possible Values: ["Basic","Standard"]
Default: Basic
Azure Location for all resources.
Type: string
Possible Values: null
Default: [resourceGroup().location]