This template deploys a Linux VMSS using the latest Linux image, adds data volumes, and then encrypts the data volumes of each Linux VMSS instance. It also deploys a jumpbox with a public IP address in the same virtual network as the Linux VMSS instances with private IP addresses. This allows connecting to the jumpbox via its public IP address, and then connecting to the Linux VMSS instances via private IP addresses.
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.
|vmssName||String used as a base for naming resources. Must be 3-61 characters in length and globally unique across Azure. A hash is prepended to this string for some resources, and resource-specific information is appended.|
|vmSku||Size of VMs in the VM Scale Set (7GB or more RAM suggested for Linux)|
|instanceCount||Number of VM instances (100 or less).|
|adminUsername||Admin username on all VMs.|
|adminPassword||Admin password on all VMs.|
|keyVaultName||Name of the KeyVault to place the volume encryption key|
|keyVaultResourceGroup||Resource group of the KeyVault|
|keyEncryptionKeyURL||URL of the KeyEncryptionKey used to encrypt the volume encryption key. The Valut is assumed to be in keyVaultResourceGroup|
|keyEncryptionAlgorithm||Key encryption algorithm used to wrap with KeyEncryptionKeyURL|
|volumeType||Type of the volume to perform encryption operation (Linux VMSS only supports Data)|
|forceUpdateTag||Pass in an unique value like a GUID everytime the operation needs to be force run|
Use the template
New-AzureRmResourceGroupDeployment -Name <deployment-name> -ResourceGroupName <resource-group-name> -TemplateUri https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/201-encrypt-vmss-linux-jumpbox/azuredeploy.jsonInstall and configure Azure PowerShell
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/201-encrypt-vmss-linux-jumpbox/azuredeploy.jsonInstall and Configure the Azure Cross-Platform Command-Line Interface