diff --git a/releases/R2022b/LICENSE.md b/releases/R2022b/LICENSE.md
deleted file mode 100644
index 53e4061..0000000
--- a/releases/R2022b/LICENSE.md
+++ /dev/null
@@ -1,13 +0,0 @@
-MATHWORKS CLOUD REFERENCE ARCHITECTURE LICENSE
-
-The files in this GitHub repository refer to commercial software products and services, virtual machine images, and related materials of The MathWorks, Inc. (“MathWorks Programs”). MathWorks Programs are separately licensed under the MathWorks Software License Agreement, available in the desktop installation of the MathWorks Programs or in the virtual machine image. The files in this GitHub repository may also refer to third-party software licensed under separate terms provided by such third parties.
-
-The following license terms apply only to the files in this GitHub repository, including files in this folder and its subfolders, and do not apply to MathWorks Programs. References to “software” and “code” in the following license terms refer to the files in this GitHub repository.
-
-Copyright (c) 2022, The MathWorks, Inc.
-All rights reserved.
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-3. In all cases, the software is, and all modifications and derivatives of the software shall be, licensed to you solely for use in conjunction with MathWorks products and service offerings.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/releases/R2022b/README.md b/releases/R2022b/README.md
deleted file mode 100644
index 2b71885..0000000
--- a/releases/R2022b/README.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# MATLAB Web App Server on Microsoft Azure - R2022b
-Follow these steps to deploy the R2022b MATLAB Web App Server reference architecture on Microsoft Azure. To deploy reference architectures for other releases, see [Deploy Reference Architecture for Your Release](/README.md#deploy-reference-architecture-for-your-release).
-
-## Step 1. Launch Template
-To deploy resources on Azure, click **Deploy to Azure**. The Azure Portal open in your web browser.
-
-
-
-> MATLAB Release: R2022b
-
-
Note: Creating resources on Azure can take up to 10 minutes.
-
-## Step 2. Configure Cloud Resources
-Provide values for parameters in the custom deployment template on the Azure Portal:
-
-| Parameter Name | Value |
-|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **Subscription** | Choose an Azure subscription to use for purchasing resources.Example: `VERTHAM Dev`
|
-| **Resource group** | Choose a name for the resource group that will hold the resources. Example: `Saveros`
|
-| **Region** | Choose the region to start resources in. Ensure that you select a location which supports your requested instance types. To check which services are supported in each location, see [Azure Region Services](). Example: `East US`
|
-| **Server VM Instance Size** | Specify the size of the VM you plan on using for deployment. Each MATLAB Web App Server instance runs on a VM and each instance will run multiple workers. We recommend you choose a VM size where the number of cores on your VM match the number of MATLAB workers per VM you plan on using. The template defaults to: `Standard_D4s_v3`. This configuration has 4 vCPUs and 16 GiB of Memory. For more information, see Azure [documentation](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes-general). Example: `Standard_D4s_v3`
|
-| **Operating System**| Choose the operating system for the server. Your options are `Windows` or `Linux`. |
-|**Deploy to New or Existing Virtual Network**| Specify whether you want to create a `new` virtual network for your deployment or use an `existing` one. When deploying to a new virtual network, by default, the ports listed [here](/README.md#ports-to-open-in-existing-virtual-network) are opened. Depending on your security requirements, you can choose to close ports 22 and 3389 after the deployment is complete. |
-| **Name of Virtual Network Where MATLAB Web App Server Will Be Deployed** | Specify the name of the virtual network where the server will be deployed.- If deploying to a new virtual network, you can use the default `webapp-refarch-vnet` name or specify a new name for the virtual network.
- If deploying to an existing virtual network, the name you specify must match the name of an existing virtual network.
|
-| **Resource Group Name of Virtual Network** | - If deploying to a new virtual network, leave the default `resourceGroup().name` value unchanged.
- If deploying to an existing virtual network, specify the name of the resource group containing the existing existing virtual network. For example: `webappserver_rsg`.
|
-| **Virtual Network CIDR Range** | Specify the virtual network CIDR range. For example: `10.0.0.0/16` .- If deploying to a new virtual network, specify a suitable CIDR range to be used for the new virtual network.
- If deploying to an existing virtual network, this must match the CIDR range of the existing virtual network.
|
-| **Name of Subnet for MATLAB Web App Server** | Specify the name of the subnet that the server can use.- If deploying to a new virtual network, this specifies the name of the subnet to be created in the virtual network.
- If deploying to an existing virtual network, this must match the name of a subnet in the existing virtual network.
|
-| **Server Subnet CIDR Range** | Specify subnet CIDR range. This is a CIDR range for the subnet specified above. For example: `10.0.0.0/24` .- If deploying to a new virtual network, specify a suitable CIDR range to be used for the new subnet.
- If deploying to an existing virtual network, this must match the CIDR range of the existing subnet.
|
-| **Specify Private IP Address to VM Hosting MATLAB Web App Server** | Specify an unused private IP address to be assigned to the VM hosting the server. For example: `10.0.0.4` . |
-| **Assign Public IP Address to VM Hosting MATLAB Web App Server** | Select `Yes` if you want to assign a public IP address to the VM hosting the server. Otherwise, select `No`. If you select 'No', you must create a new virtual machine and add it to the same virtual network as the MATLAB Web App Server deployment. The ability to access the web apps home page or remotely connect to the server machine can be accomplished only through this virtual machine.|
-| **IP Addresses Permitted to Remote into Server VM in CIDR Notation** | Specify the range of IP addresses in CIDR notation that can remote into the VM hosting MATLAB Web App Server and administer it. The format for CIDR addresses is IP Address/Mask. Example: `x.x.x.x/32`
You may also specify a comma separated list of CIDR addresses (no spaces). *Example*: `x.x.x.x/32,x.x.x.x/32`
- To determine your IP address, you can search for **"what is my ip address"** on the web. The mask determines the number of IP addresses to include.
- A mask of 32 is a single IP address.
- Use a [CIDR calculator](https://www.ipaddressguide.com/cidr) if you need a range of more than one IP address.
- You may need to contact your IT administrator to determine which address is appropriate.
**NOTE:** Restricting access to the server using an IP address is not a form of authentication. MATLAB Web App Server supports authentication using OIDC. For details, see [Authentication](https://www.mathworks.com/help/webappserver/ug/authentication.html).|
-| **IP Addresses Allowed to Access MATLAB Web App Server Apps Home Page in CIDR Notation** | Specify the range of IP addresses that can access the MATLAB Web App Server apps home page in CIDR notation. The format for CIDR addresses is IP Address/Mask. *Example*: `x.x.x.x/24`
You may also specify a comma separated list of CIDR addresses (no spaces). *Example*: `x.x.x.x/24,z.z.z.z/24`
|
-| **Base64 Encoded SSL Certificate** | Enter a string that is a base64-encoded value of an SSL certificate in PEM format. On Linux, you can Base64 encode a PEM file using the following command in the terminal: ```base64 -w 0 "cert.pem" > "cert.txt"```
On Windows, you can Base64 encode a PEM file with a utility such as openssl or by using the following command in a PowerShell terminal: ```[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("cert.pem")) \| Set-Content -NoNewline -Encoding Ascii "cert.txt"```
You may need to change the filename arguments accordingly. The contents of the output file (here "cert.txt") should be used for this parameter. NOTE:
- MATLAB Web App Server only supports the `.pem` SSL certificate format.
- SSL keys must be 2048 bits in length and must be private.
- Intermediate certificates are not supported by the server.
- SSL certificate should not be password protected.
- Private key should not be password protected.
|
-| **Base64 Encoded SSL Private Key** | Enter a string that is a base64-encoded value of an SSL private key file in PEM format. On Linux, you can Base64 encode a PEM file using the following command in the terminal: ```base64 -w 0 "key.pem" > "key.txt"```
On Windows, you can Base64 encode a PEM file with a utility such as openssl or by using the following command in a PowerShell terminal: ```[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("key.pem")) \| Set-Content -NoNewline -Encoding Ascii "key.txt"```
You may need to change the filename arguments accordingly. The contents of the output file (here `"key.txt"`) should be used for this parameter. |
-| **Username to Remote into Server VM** | Specify a username to use when remoting into server VM hosting MATLAB Web App Server. The username must be at least 7 characters long. This username is also used to login to the network license manager portal. For example: `webappadmin`. You cannot use `admin` as a username. |
-| **Password to Remote into Server VM and Network License Manager Web Interface** | Specify a password to use when remoting into server VM hosting MATLAB Web App Server. This password is also used to login to the network license manager portal. Password requirements are: - Must be between 12-123 characters.
- Have uppercase and lowercase characters.
- Have a digit.
- Have a special character.
|
-| **Deploy Network License Manager** | Select whether you want to deploy the Network License Manager for MATLAB to manage your license files. Selecting 'Yes' deploys the Network License Manager for MATLAB reference architecture. Select 'No' if you want to use an existing license manager. When using an existing license manager, the MATLAB Web App Server deployment and the license manager must be in the same virtual network.|
-
-Click **Create** to begin the deployment. This can take up to 10 minutes.
-
-## Step 3. Upload License File
-1. In the Azure Portal, click **Resource
- groups** and select the resource group containing your cluster resources.
-1. Select **Deployments** from the left pane and click **Microsoft.Template**.
-1. Click **Outputs**. Copy the parameter value for **networkLicenseManagerURL** and paste it in a browser.
-1. Log in using the username and password you specified in the [Configure Cloud Resources](#step-2-configure-cloud-resources) step of the deployment process.
-1. Follow the instructions in the Network License Manager for MATLAB dashboard to upload your MATLAB Web App Server license.
-
-
-## Step 4. Open the MATLAB Web App Server Apps Home Page
-1. In the Azure Portal, click **Resource
- groups** and select the resource group you created for this deployment from the list.
-1. Select **Deployments** from the left pane and click **Microsoft.Template**.
-1. Click **Outputs** from the left pane. Copy the parameter value for **webAppServerURL** and paste it in a browser.
-
-You are now ready to use MATLAB Web App Server on Azure.
-
-To run applications on MATLAB Web App Server, you need to create applications using MATLAB Compiler. For more information, see [Create Web App](https://www.mathworks.com/help/compiler/webapps/create-and-deploy-a-web-app.html) in the MATLAB Compiler documentation.
-
-# Get Network License Manager MAC Address
->**NOTE:**The network license manager MAC address is available only after the deployment to the cloud is complete.
-To get the MAC address of the network license manager:
-1. Log in to the Network License Manager for MATLAB dashboard using the username and password you specified in the [Configure Cloud Resources](#step-2-configure-cloud-resources) step of the deployment process.
-1. Click **Administration** and then **License**.
-1. Copy the license server MAC address displayed at the top.
-
-# Upload Apps
-1. Select the `webapp` storage account resource from the resource group where MATLAB Web App Server was deployed.
-1. Select `File shares` from the left navigation pane under the `Data storage` category.
-1. Select the `webapps` file share and click the `ctfs` folder.
-1. Click `Upload` to browse and upload your app by following the prompts.
-
-# View Log Files
-1. Select the `webapp` storage account resource from the resource group where MATLAB Web App Server was deployed.
-1. Select `File shares` from the left navigation pane under the `Data storage` category.
-1. Select the `webapps` file share and click the `logs` folder to view the logs.
diff --git a/releases/R2022b/scripts/initLinux.sh b/releases/R2022b/scripts/initLinux.sh
deleted file mode 100644
index 4a46a22..0000000
--- a/releases/R2022b/scripts/initLinux.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash -ex
-# Copyright the MathWorks Inc 2020
-# This script
-# 1. include storage account information to dynamicOption
-# 2. start controller
-while getopts "n:f:k:s:c:p:" opt; do
- case ${opt} in
- n) storageAccountName="$OPTARG";;
- f) resourceGroup="$OPTARG";;
- k) subscriptionID="$OPTARG";;
- s) enableSSL="$OPTARG";;
- c) certFile="$OPTARG";;
- p) privateKeyFile="$OPTARG";;
- esac
-done
-
-JSONCMD='
-{
- "storageAccountName": "'"$storageAccountName"'",
- "resourceGroup": "'"$resourceGroup"'",
- "subscriptionID": "'"$subscriptionID"'",
- "enableSSL": "'"$enableSSL"'",
- "certFile": "'"$certFile"'",
- "privateKeyFile": "'"$privateKeyFile"'"
-}
-'
-
-myPath=/MathWorks/controller/config/dynamicOptions.json
-rm $myPath
-
-#load json string into dynamic option file
-echo $JSONCMD >> $myPath
-
-#to allow web app server to listen on port 443
-sudo sysctl net.ipv4.ip_unprivileged_port_start=0
-
-#start controller
-node /MathWorks/controller/index.js &
\ No newline at end of file
diff --git a/releases/R2022b/scripts/initWindows.ps1 b/releases/R2022b/scripts/initWindows.ps1
deleted file mode 100644
index ff17fbc..0000000
--- a/releases/R2022b/scripts/initWindows.ps1
+++ /dev/null
@@ -1,41 +0,0 @@
-<#
- .SYNOPSIS
- This Script runs on master head node start, it is used in the ARM template to pass around the storage account name, key
- as well as the mpsEndpoint. It saves the result to local disk and restarts the main nodeJS dashboard process running on the VM
-#>
-
-Param (
- [Parameter(Mandatory=$true)]
- [String]$storageAccountName,
- [Parameter(Mandatory=$true)]
- [String]$resourceGroup,
- [Parameter(Mandatory=$true)]
- [String]$subscriptionID,
- [Parameter(Mandatory=$true)]
- [String]$enableSSL,
- [Parameter(Mandatory=$true)]
- [String]$certFile,
- [Parameter(Mandatory=$true)]
- [String]$privateKeyFile
-)
-
-$myObj = New-Object System.Object
-
-$myObj | Add-Member -type NoteProperty -name storageAccountName -value $storageAccountName
-$myObj | Add-Member -type NoteProperty -name resourceGroup -value $resourceGroup
-$myObj | Add-Member -type NoteProperty -name subscriptionID -value $subscriptionID
-$myObj | Add-Member -type NoteProperty -name enableSSL -value $enableSSL
-$myObj | Add-Member -type NoteProperty -name certFile -value $certFile
-$myObj | Add-Member -type NoteProperty -name privateKeyFile -value $privateKeyFile
-
-$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
-
-$myContent = $myObj | ConvertTo-Json -Depth 100
-$myPath = "c:\\MathWorks\\controller\\config\\dynamicOptions.json"
-[System.IO.File]::WriteAllLines($myPath, $myContent, $Utf8NoBomEncoding)
-
-# stop windows services from using port 80
-net stop http /y
-
-# Start the main service that performs bootstrapping and attaching the file share
-Start-Process -FilePath "node" -ArgumentList("c:\\MathWorks\\controller\\index.js")
diff --git a/releases/R2022b/templates/azuredeploy-existing-vnet-R2022b.json b/releases/R2022b/templates/azuredeploy-existing-vnet-R2022b.json
deleted file mode 100644
index d7fcccb..0000000
--- a/releases/R2022b/templates/azuredeploy-existing-vnet-R2022b.json
+++ /dev/null
@@ -1,330 +0,0 @@
-{
- "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {
- "instanceType": {
- "type": "string",
- "defaultValue": "Standard_B1ms",
- "minLength": 1,
- "metadata": {
- "description": "Azure instance type, see https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes."
- }
- },
- "clientIPAddress": {
- "type": "string",
- "minLength": 1,
- "metadata": {
- "description": "IP address range that can be used access the license manager. This must be a valid IP CIDR range of the form x.x.x.x/x. Use the value <your_public_ip_address>/32 to restrict access to only your computer."
- }
- },
- "adminUsername": {
- "defaultValue": "manager",
- "minLength": 7,
- "type": "String",
- "metadata": {
- "description": "Admin username, this is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "adminPassword": {
- "type": "securestring",
- "metadata": {
- "description": "Admin password for the chosen username. This is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "virtualNetworkResourceID": {
- "type": "string",
- "metadata": {
- "description": "Resource ID of an existing virtual network to deploy your server into."
- }
- },
- "subnetName": {
- "type": "string",
- "metadata": {
- "description": "Name of an existing subnet within your virtual network to deploy your server into."
- }
- }
- },
- "variables": {
- "clientIPAddress": "[split(parameters('clientIPAddress'), ',')]",
- "namingPrefix": "netlm",
- "artifactsBase": "C:/Windows/Temp/",
- "addressPrefix": "10.0.0.0/16",
- "subnetPrefix": "10.0.0.0/24",
- "newOrExistingVirtualNetwork": "Existing",
- "virtualNetworkCreateName": "[concat(variables('namingPrefix'), '-vnet')]",
- "subnetCreateName": "[concat(variables('namingPrefix'), '-subnet')]",
- "virtualNetworkName": "[if(equals(variables('newOrExistingVirtualNetwork'),'Existing'),last(split(parameters('virtualNetworkResourceID'),'/')),variables('virtualNetworkCreateName'))]",
- "subnetName": "[if(equals(variables('newOrExistingVirtualNetwork'),'Existing'),parameters('subnetName'),variables('subnetCreateName'))]",
- "subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), variables('subnetName'))]",
- "subnetId": "[if(equals(variables('newOrExistingVirtualNetwork'),'New'),variables('subnetRef'),concat(parameters('virtualNetworkResourceID'), '/subnets/', parameters('subnetName')))]",
- "cuaTrackingNum": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "serverMachineName": "[concat(take(variables('namingPrefix'), 8), '-server')]",
- "publisher": "mathworks-inc",
- "offer": "license-manager-ref-arch-win",
- "sku": "netlm-windows-mktplace-win-sku-r2022b",
- "version": "latest",
- "imageReference": {
- "publisher": "[variables('publisher')]",
- "offer": "[variables('offer')]",
- "sku": "[variables('sku')]",
- "version": "[variables('version')]"
- },
- "plan": {
- "name": "[variables('sku')]",
- "publisher": "[variables('publisher')]",
- "product": "[variables('offer')]"
- },
- "serverIPName": "[concat(variables('serverMachineName'), '-ip')]",
- "dnsLabelPrefix": "[concat('azure-', uniqueString(resourceGroup().id))]",
- "publicIpTimeout": "20",
- "networkSecurityGroupName": "[concat(variables('namingPrefix'), '-nsg')]",
- "serverNICName": "[concat(variables('serverMachineName'), '-nic')]",
- "serverIPConfigName": "[concat(variables('serverMachineName'), '-ipconfig')]",
- "scriptsUrl": "C:/Windows/Temp/",
- "startScript": "startserver.ps1",
- "fileUris": [
- "[concat(variables('scriptsUrl'), variables('startScript'))]"
- ],
- "scriptExe": "[concat(variables('artifactsBase'), variables('startScript'))]",
- "installCommand": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('scriptExe'))]",
- "tagsForAll": {
- "provider": "[variables('cuaTrackingNum')]"
- }
- },
- "resources": [
- {
- "name": "[variables('virtualNetworkName')]",
- "type": "Microsoft.Network/virtualNetworks",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "addressSpace": {
- "addressPrefixes": [
- "[variables('addressPrefix')]"
- ]
- },
- "subnets": [
- {
- "name": "[variables('subnetCreateName')]",
- "properties": {
- "addressPrefix": "[variables('subnetPrefix')]"
- }
- }
- ]
- },
- "condition": "[equals(variables('newOrExistingVirtualNetwork'),'New')]"
- },
- {
- "name": "[variables('serverIPName')]",
- "type": "Microsoft.Network/publicIPAddresses",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publicIPAllocationMethod": "Static",
- "dnsSettings": {
- "domainNameLabel": "[concat(variables('serverMachineName'), variables('dnsLabelPrefix'))]"
- },
- "idleTimeoutInMinutes": "[variables('publicIpTimeout')]"
- }
- },
- {
- "name": "[variables('networkSecurityGroupName')]",
- "type": "Microsoft.Network/networkSecurityGroups",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "securityRules": [
- {
- "name": "default-allow-rdp",
- "properties": {
- "priority": 1000,
- "sourceAddressPrefixes": "[variables('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "3389",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-https",
- "properties": {
- "priority": 1010,
- "sourceAddressPrefixes": "[variables('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "443",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-netlm",
- "properties": {
- "priority": 1020,
- "sourceAddressPrefixes": "[variables('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "27000-27010",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-internal-traffic",
- "properties": {
- "priority": 1030,
- "sourceAddressPrefix": "VirtualNetwork",
- "protocol": "Tcp",
- "destinationPortRange": "*",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "VirtualNetwork"
- }
- },
- {
- "name": "allow-ssh",
- "properties": {
- "description": "allow-ssh",
- "protocol": "TCP",
- "sourcePortRange": "*",
- "destinationPortRange": "22",
- "sourceAddressPrefixes": "[variables('clientIPAddress')]",
- "destinationAddressPrefix": "*",
- "access": "Allow",
- "priority": 1040,
- "direction": "Inbound",
- "sourcePortRanges": [],
- "destinationPortRanges": [],
- "destinationAddressPrefixes": []
- }
- }
- ]
- }
- },
- {
- "name": "[variables('serverNICName')]",
- "type": "Microsoft.Network/networkInterfaces",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/publicIpAddresses', variables('serverIPName'))]",
- "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "ipConfigurations": [
- {
- "name": "[variables('serverIPConfigName')]",
- "properties": {
- "subnet": {
- "id": "[variables('subnetId')]"
- },
- "privateIPAllocationMethod": "Dynamic",
- "publicIpAddress": {
- "id": "[resourceId('Microsoft.Network/publicIpAddresses', variables('serverIPName'))]"
- }
- }
- }
- ],
- "networkSecurityGroup": {
- "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- }
- }
- },
- {
- "name": "[variables('serverMachineName')]",
- "type": "Microsoft.Compute/virtualMachines",
- "apiVersion": "2022-08-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "plan": "[variables('plan')]",
- "properties": {
- "osProfile": {
- "computerName": "[variables('serverMachineName')]",
- "adminUsername": "[parameters('adminUsername')]",
- "adminPassword": "[parameters('adminPassword')]",
- "windowsConfiguration": {
- "provisionVmAgent": "true"
- }
- },
- "hardwareProfile": {
- "vmSize": "[parameters('instanceType')]"
- },
- "storageProfile": {
- "imageReference": "[variables('imageReference')]",
- "osDisk": {
- "createOption": "fromImage",
- "managedDisk": {
- "storageAccountType": "Premium_LRS"
- }
- }
- },
- "networkProfile": {
- "networkInterfaces": [
- {
- "id": "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- }
- ]
- }
- }
- },
- {
- "name": "[concat(variables('serverMachineName'), '/Installation')]",
- "type": "Microsoft.Compute/virtualMachines/extensions",
- "apiVersion": "2022-08-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publisher": "Microsoft.Compute",
- "type": "CustomScriptExtension",
- "typeHandlerVersion": "1.5",
- "autoUpgradeMinorVersion": true,
- "settings": {
- "fileUris": "[variables('fileUris')]"
- },
- "protectedSettings": {
- "commandToExecute": "[concat(variables('installCommand'),' -DNS ', reference(variables('serverIPName')).dnsSettings.fqdn)]"
- }
- }
- },
- {
- "name": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "type": "Microsoft.Resources/deployments",
- "apiVersion": "2020-10-01",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "properties": {
- "mode": "Incremental",
- "template": {
- "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "resources": []
- }
- }
- }
- ],
- "outputs": {
- "NetworkLicenseManagerAddress": {
- "value": "[concat('https://', reference(variables('serverIPName')).dnsSettings.fqdn)]",
- "type": "string"
- }
- }
-}
diff --git a/releases/R2022b/templates/mainTemplate.json b/releases/R2022b/templates/mainTemplate.json
deleted file mode 100644
index b4a12d0..0000000
--- a/releases/R2022b/templates/mainTemplate.json
+++ /dev/null
@@ -1,468 +0,0 @@
-{
- "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {
- "Server VM Instance Size": {
- "defaultValue": "Standard_D4_v3",
- "type": "string",
- "metadata": {
- "description": "Specify the size of the VM you want to use for deploying the server."
- }
- },
- "Operating System": {
- "defaultValue": "Windows",
- "allowedValues": [
- "Windows",
- "Linux"
- ],
- "type": "string",
- "metadata": {
- "description": "Choose between Windows or Linux."
- }
- },
- "Deploy to New or Existing Virtual Network": {
- "defaultValue": "new",
- "allowedValues": [
- "new",
- "existing"
- ],
- "type": "string",
- "metadata": {
- "description": "Select whether you want to deploy the server to a new virtual network or an existing one."
- }
- },
- "Name of Virtual Network Where MATLAB Web App Server Will Be Deployed": {
- "defaultValue": "webapp-refarch-vnet",
- "type": "string",
- "metadata": {
- "description": "Specify the name of the virtual network where the server will be deployed. If deploying to a new virtual network, a new virtual network will created with this name. If deploying to an existing virtual network, this name must match the name of an existing virtual network. For example: webappserver-vnet."
- }
- },
- "Resource Group Name Of Virtual Network": {
- "defaultValue": "[resourceGroup().name]",
- "type": "string",
- "metadata": {
- "description": "Specify the name of the Azure resource group if you are deploying to an existing virtual network. If deploying to a new virtual network, keep the value as default resourceGroup().name, which indicates the resource group of this deployment. If deploying to an existing virtual network, this must match the resource group of the existing virtual network specified. For example: webappserver_rsg."
- }
- },
- "Virtual Network CIDR Range": {
- "defaultValue": "10.0.0.0/16",
- "type": "string",
- "metadata": {
- "description": "Specify the virtual network CIDR range. For example: 10.0.0.0/16 . If deploying to a new virtual network, specify a suitable CIDR range to be used for the new virtual network. If deploying to an existing virtual network, this must match the CIDR range of the existing virtual network specified."
- }
- },
- "Name of Subnet for MATLAB Web App Server": {
- "defaultValue": "default",
- "type": "string",
- "metadata": {
- "description": "Specify the name of the subnet that the server can use. If deploying to a new virtual network, this specifies the name of the subnet to be created in the virtual network. If deploying to an existing virtual network, this must match the name of a subnet in the existing virtual network specified."
- }
- },
- "Server Subnet CIDR Range": {
- "defaultValue": "10.0.0.0/24",
- "type": "string",
- "metadata": {
- "description": "Specify subnet CIDR range. This is a CIDR range for the subnet specified above. For example: 10.0.0.0/24 . If deploying to a new virtual network, specify a suitable CIDR range to be used for the new subnet. If deploying to an existing virtual network, this must match the CIDR range of the existing subnet specified."
- }
- },
- "Specify Private IP Address to VM Hosting MATLAB Web App Server": {
- "type": "string",
- "defaultValue": "10.0.0.4",
- "metadata": {
- "description": "Specify an unused private IP address to be assigned to the VM hosting the server. For example: 10.0.0.4 ."
- }
- },
- "Assign Public IP Address to VM Hosting MATLAB Web App Server": {
- "defaultValue": "Yes",
- "allowedValues": [
- "Yes",
- "No"
- ],
- "type": "string",
- "metadata": {
- "description": "Select whether you want to assign a public IP address to the VM hosting the server."
- }
- },
- "IP Addresses Permitted to Remote into Server VM in CIDR Notation": {
- "type": "string",
- "metadata": {
- "description": "Specify the range of IP addresses in CIDR notation that can remote into the VM hosting MATLAB Web App Server and administer it. For example: 123.456.789.111/24 . This can be a comma separated list of CIDR ranges (no spaces), i.e. 123.456.789.111/24,123.456.789.111/24 ."
- }
- },
- "IP Addresses Allowed to Access MATLAB Web App Server Apps Home Page in CIDR Notation": {
- "type": "string",
- "metadata": {
- "description": "Specify the range of IP addresses in CIDR notation that can access the MATLAB Web App Server apps home page. For example: 123.456.789.111/24 . This can be a comma separated list of CIDR ranges (no spaces), i.e. 123.456.789.111/24,123.456.789.111/24 ."
- }
- },
- "Base64 Encoded SSL Certificate": {
- "type": "string",
- "metadata": {
- "description": "Enter a string that is a base64-encoded value of an SSL certificate in PEM format."
- }
- },
- "Base64 Encoded SSL Private Key": {
- "type": "securestring",
- "metadata": {
- "description": "Enter a string that is a base64-encoded value of an SSL private key file in PEM format."
- }
- },
- "Username to Remote into Server VM and Network License Manager Web Interface": {
- "type": "string",
- "metadata": {
- "description": "Specify a username to use when remoting into server VM hosting MATLAB Web App Server. This username is also used to login to the network license manager portal. For example: webappadmin. You cannot use \"admin\" as a username."
- }
- },
- "Password to Remote into Server VM and Network License Manager Web Interface": {
- "type": "securestring",
- "metadata": {
- "description": "Specify a password to use when remoting into server VM hosting MATLAB Web App Server. This password is also used to login to the network license manager portal."
- }
- },
- "Deploy Network License Manager For MATLAB": {
- "defaultValue": "Yes",
- "allowedValues": [
- "Yes",
- "No"
- ],
- "type": "string",
- "metadata": {
- "description": "Select whether you want to deploy a network license manager or not."
- }
- }
- },
- "variables": {
- "providerID": "D36A3EDC-0566-4EE4-86D3-64F20D2DDA06",
- "location": "[resourceGroup().location]",
- "vmName": "webapp-vm",
- "usePublicIPAddresses": "[parameters('Assign Public IP Address to VM Hosting MATLAB Web App Server')]",
- "addressPrefix": "[parameters('Virtual Network CIDR Range')]",
- "serverPrivateIP": "[parameters('Specify Private IP Address to VM Hosting MATLAB Web App Server')]",
- "serverPublicIP": "webapp-public-ip",
- "publicIPprop1": {
- "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('serverPublicIP'))]"
- },
- "webappDNSName": "[concat('webapp',uniqueString(resourceGroup().id))]",
- "networkInterfaceName": "webapp-nic",
- "virtualNetworkID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
- "virtualNetworkResourceGroup": "[parameters('Resource Group Name Of Virtual Network')]",
- "virtualNetworkName": "[parameters('Name of Virtual Network Where MATLAB Web App Server Will Be Deployed')]",
- "subnetName": "[parameters('Name of Subnet for MATLAB Web App Server')]",
- "subnetIP": "[parameters('Server Subnet CIDR Range')]",
- "subnetRef": "[resourceId(variables('virtualNetworkResourceGroup'),'Microsoft.Network/virtualNetworks/subnets',variables('virtualNetworkName'),variables('subnetName'))]",
- "networkSecurityGroupName": "webapp-nsg",
- "adminIP": "[split(parameters('IP Addresses Permitted to Remote into Server VM in CIDR Notation'), ',')]",
- "clientIP": "[split(parameters('IP Addresses Allowed to Access MATLAB Web App Server Apps Home Page in CIDR Notation'), ',')]",
- "newOrExistingVirtualNetwork": "[parameters('Deploy to New or Existing Virtual Network')]",
- "storageAccountName": "[concat('webapp',uniqueString(resourceGroup().id))]",
- "storageAccountType": "Standard_LRS",
- "platform": "[parameters('Operating System')]",
- "WindowsOffer": "matlab-web-app-server-byol-windows",
- "WindowsSKU": "matlab-web-app-server-byol-windows-22b",
- "WindowsSKUVersion": "latest",
- "LinuxOffer": "matlab-web-app-server-byol-linux",
- "LinuxSKU": "matlab-web-app-server-byol-linux-22b",
- "LinuxSKUVersion": "latest",
- "enableSSL": "Yes",
- "certFile": "[if(equals(variables('enableSSL'), 'Yes'), parameters('Base64 Encoded SSL Certificate'), 'NONE')]",
- "privateKeyFile": "[if(equals(variables('enableSSL'), 'Yes'), parameters('Base64 Encoded SSL Private Key'), 'NONE')]",
- "windowsCommand": "[concat('powershell -ExecutionPolicy Unrestricted -File initWindows.ps1 -storageAccountName ', variables('storageAccountName'), ' -resourceGroup ', resourceGroup().name, ' -subscriptionID ', subscription().subscriptionId, ' -enableSSL ', variables('enableSSL'), ' -certFile ', variables('certFile'), ' -privateKeyFile ', variables('privateKeyFile'))]",
- "linuxCommand": "[concat('sudo bash ./initLinux.sh -n ', variables('storageAccountName'), ' -f ', resourceGroup().name, ' -k ', subscription().subscriptionId, ' -s ', variables('enableSSL'), ' -c ', variables('certFile'), ' -p ', variables('privateKeyFile'))]",
- "windowsScriptURL": "https://raw.githubusercontent.com/mathworks-ref-arch/matlab-web-app-server-on-azure/main/releases/R2022b/scripts/initWindows.ps1",
- "linuxScriptURL": "https://raw.githubusercontent.com/mathworks-ref-arch/matlab-web-app-server-on-azure/main/releases/R2022b/scripts/initLinux.sh",
- "roleName": "[guid(resourceGroup().id, deployment().name)]",
- "contributor": "[resourceId('Microsoft.Authorization/roleDefinitions/', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
- "deployNetworkLicenseManager": "[parameters('Deploy Network License Manager For MATLAB')]",
- "flex-arm-template-link": "https://raw.githubusercontent.com/mathworks-ref-arch/matlab-web-app-server-on-azure/main/releases/R2022b/templates/azuredeploy-existing-vnet-R2022b.json",
- "flex-parameters": {
- "instanceType": {
- "value": "Standard_D2s_v3"
- },
- "clientIPAddress": {
- "value": "[parameters('IP Addresses Permitted to Remote into Server VM in CIDR Notation')]"
- },
- "adminUsername": {
- "value": "[parameters('Username to Remote into Server VM and Network License Manager Web Interface')]"
- },
- "adminPassword": {
- "value": "[parameters('Password to Remote into Server VM and Network License Manager Web Interface')]"
- },
- "virtualNetworkResourceID": {
- "value": "[variables('virtualNetworkID')]"
- },
- "subnetName": {
- "value": "[variables('subnetName')]"
- }
- }
- },
- "resources": [
- {
- "type": "Microsoft.Resources/deployments",
- "apiVersion": "2021-04-01",
- "name": "flex-lm-server",
- "dependsOn": [
- "[resourceId('Microsoft.Network/networkInterfaces/',variables('networkInterfaceName'))]",
- "[resourceId('Microsoft.Network/virtualNetworks/',variables('virtualNetworkName'))]"
- ],
- "properties": {
- "mode": "Incremental",
- "templateLink": {
- "uri": "[variables('flex-arm-template-link')]",
- "contentVersion": "1.0.0.0"
- },
- "parameters": "[variables('flex-parameters')]"
- },
- "condition": "[equals(variables('deployNetworkLicenseManager'), 'Yes')]"
- },
- {
- "type": "Microsoft.Compute/virtualMachines",
- "apiVersion": "2022-03-01",
- "name": "[variables('vmName')]",
- "location": "[variables('location')]",
- "dependsOn": [
- "[resourceId('Microsoft.Storage/storageAccounts/',variables('storageAccountName'))]",
- "[resourceId('Microsoft.Network/networkInterfaces/',variables('networkInterfaceName'))]"
- ],
- "identity": {
- "type": "SystemAssigned"
- },
- "plan": {
- "name": "[if(equals(variables('platform'), 'Windows'), variables('WindowsSKU'), variables('LinuxSKU'))]",
- "publisher": "mathworks-inc",
- "product": "[if(equals(variables('platform'), 'Windows'), variables('WindowsOffer'), variables('LinuxOffer'))]"
- },
- "properties": {
- "hardwareProfile": {
- "vmSize": "[parameters('Server VM Instance Size')]"
- },
- "osProfile": {
- "computerName": "[variables('vmName')]",
- "adminUsername": "[parameters('Username to Remote into Server VM and Network License Manager Web Interface')]",
- "adminPassword": "[parameters('Password to Remote into Server VM and Network License Manager Web Interface')]"
- },
- "storageProfile": {
- "imageReference": {
- "publisher": "mathworks-inc",
- "offer": "[if(equals(variables('platform'), 'Windows'), variables('WindowsOffer'), variables('LinuxOffer'))]",
- "sku": "[if(equals(variables('platform'), 'Windows'), variables('WindowsSKU'), variables('LinuxSKU'))]",
- "version": "[if(equals(variables('platform'), 'Windows'), variables('WindowsSKUVersion'), variables('LinuxSKUVersion'))]"
- },
- "osDisk": {
- "createOption": "FromImage",
- "managedDisk": {
- "storageAccountType": "Standard_LRS"
- }
- }
- },
- "networkProfile": {
- "networkInterfaces": [
- {
- "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('networkInterfaceName'))]"
- }
- ]
- }
- },
- "resources": [
- {
- "type": "extensions",
- "apiVersion": "2022-03-01",
- "name": "config-app",
- "location": "[variables('location')]",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines/', variables('vmName'))]",
- "[resourceId('Microsoft.Authorization/roleAssignments/', variables('roleName'))]"
- ],
- "tags": {
- "displayName": "config-app",
- "provider": "[variables('providerID')]"
- },
- "properties": {
- "publisher": "[if(equals(variables('platform'), 'Windows'), 'Microsoft.Compute', 'Microsoft.Azure.Extensions')]",
- "type": "[if(equals(variables('platform'), 'Windows'), 'CustomScriptExtension', 'CustomScript')]",
- "typeHandlerVersion": "[if(equals(variables('platform'), 'Windows'), '1.9', '2.0')]",
- "autoUpgradeMinorVersion": true,
- "settings": {
- "skipDos2Unix": false,
- "timestamp": 123456789
- },
- "protectedSettings": {
- "commandToExecute": "[if(equals(variables('platform'), 'Windows'), variables('windowsCommand'), variables('linuxCommand') )]",
- "fileUris": [
- "[if(equals(variables('platform'), 'Windows'), variables('windowsScriptURL'), variables('linuxScriptURL'))]"
- ]
- }
- }
- }
- ]
- },
- {
- "type": "Microsoft.Authorization/roleAssignments",
- "apiVersion": "2018-09-01-preview",
- "name": "[variables('roleName')]",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
- ],
- "properties": {
- "roleDefinitionId": "[variables('contributor')]",
- "principalId": "[reference(resourceId('Microsoft.Compute/virtualMachines', variables('vmName')),'2022-03-01', 'Full').identity.principalId]",
- "scope": "[resourceGroup().id]",
- "principalType": "ServicePrincipal"
- }
- },
- {
- "type": "Microsoft.Storage/storageAccounts",
- "apiVersion": "2021-09-01",
- "name": "[variables('storageAccountName')]",
- "location": "[variables('location')]",
- "tags": {
- "Description": "Storage account that stores application and config files",
- "provider": "[variables('providerID')]"
- },
- "sku": {
- "name": "[variables('storageAccountType')]"
- },
- "kind": "Storage",
- "properties": {}
- },
- {
- "type": "Microsoft.Network/virtualNetworks",
- "apiVersion": "2022-01-01",
- "name": "[variables('virtualNetworkName')]",
- "location": "[variables('location')]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/networkSecurityGroups/', variables('networkSecurityGroupName'))]"
- ],
- "tags": {
- "Description": "Virtual network for the Web app Server deployment",
- "provider": "[variables('providerID')]"
- },
- "properties": {
- "addressSpace": {
- "addressPrefixes": [
- "[variables('addressPrefix')]"
- ]
- },
- "subnets": [
- {
- "name": "[variables('subnetName')]",
- "properties": {
- "addressPrefix": "[variables('subnetIP')]",
- "networkSecurityGroup": {
- "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- }
- }
- }
- ]
- },
- "condition": "[equals(variables('newOrExistingVirtualNetwork'), 'new')]"
- },
- {
- "type": "Microsoft.Network/networkInterfaces",
- "apiVersion": "2022-01-01",
- "name": "[variables('networkInterfaceName')]",
- "location": "[variables('location')]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/publicIPAddresses/', variables('serverPublicIP'))]",
- "[resourceId('Microsoft.Network/networkSecurityGroups/', variables('networkSecurityGroupName'))]",
- "[resourceId('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"
- ],
- "tags": {
- "Description": "Network Interface Card (NIC) for the web app VM",
- "provider": "[variables('providerID')]"
- },
- "properties": {
- "ipConfigurations": [
- {
- "name": "ipconfig1",
- "properties": {
- "privateIPAddress": "[variables('serverPrivateIP')]",
- "privateIPAllocationMethod": "Static",
- "publicIPAddress": "[if(equals(variables('usePublicIPAddresses'), 'Yes'), variables('publicIPprop1'), json('null'))]",
- "subnet": {
- "id": "[variables('subnetRef')]"
- }
- }
- }
- ],
- "networkSecurityGroup": {
- "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- }
- }
- },
- {
- "type": "Microsoft.Network/networkSecurityGroups",
- "apiVersion": "2022-01-01",
- "name": "[variables('networkSecurityGroupName')]",
- "location": "[variables('location')]",
- "tags": {
- "Description": "Network Security Group to control access to VM",
- "provider": "[variables('providerID')]"
- },
- "properties": {
- "securityRules": [
- {
- "name": "allow-admin",
- "properties": {
- "priority": 1000,
- "sourceAddressPrefixes": "[variables('adminIP')]",
- "protocol": "Tcp",
- "destinationPortRanges": [ "22", "3389", "443" ],
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-client",
- "properties": {
- "priority": 1001,
- "sourceAddressPrefixes": "[variables('clientIP')]",
- "protocol": "Tcp",
- "destinationPortRanges": [ "443" ],
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- }
- ]
- }
- },
- {
- "type": "Microsoft.Network/publicIPAddresses",
- "apiVersion": "2022-01-01",
- "name": "[variables('serverPublicIP')]",
- "location": "[variables('location')]",
- "tags": {
- "Description": "Public IP Address of the MATLAB Production Server Dashboard",
- "provider": "[variables('providerID')]"
- },
- "sku": {
- "name": "Standard"
- },
- "properties": {
- "publicIPAllocationMethod": "Static",
- "dnsSettings": {
- "domainNameLabel": "[variables('webappDNSName')]"
- }
- },
- "condition": "[equals(variables('usePublicIPAddresses'), 'Yes')]"
- }
- ],
- "outputs": {
- "webAppServerURL": {
- "value": "[if(equals(variables('usePublicIPAddresses'), 'Yes'), concat(if(equals(variables('enableSSL'), 'Yes'), 'https://', 'http://'), reference(variables('serverPublicIP')).dnsSettings.fqdn), concat(if(equals(variables('enableSSL'), 'Yes'), 'https://', 'http://'), variables('serverPrivateIP')))]",
- "type": "string"
- },
- "networkLicenseManagerURL": {
- "value": "[if(equals(variables('deployNetworkLicenseManager'), 'Yes'), reference('flex-lm-server').outputs.NetworkLicenseManagerAddress.value, 'none')]",
- "type": "string"
- },
- "webAppsOIDCRedirectURL": {
- "value": "[if(equals(variables('enableSSL'), 'Yes'), if(equals(variables('usePublicIPAddresses'), 'Yes'), concat('https://', reference(variables('serverPublicIP')).dnsSettings.fqdn, ':443/webapps/extauth/callback'), concat('https://', variables('serverPrivateIP'), ':443/webapps/extauth/callback')), 'SSL is not enabled. SSL is required to configure OIDC.')]",
- "type": "string"
- }
- }
-}
\ No newline at end of file
diff --git a/releases/R2023a/templates/azuredeploy-existing-vnet-R2023a.json b/releases/R2023a/templates/azuredeploy-existing-vnet-R2023a.json
deleted file mode 100644
index 42368c3..0000000
--- a/releases/R2023a/templates/azuredeploy-existing-vnet-R2023a.json
+++ /dev/null
@@ -1,330 +0,0 @@
-{
- "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {
- "instanceType": {
- "type": "string",
- "defaultValue": "Standard_B1ms",
- "minLength": 1,
- "metadata": {
- "description": "Azure instance type, see https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes."
- }
- },
- "clientIPAddress": {
- "type": "string",
- "minLength": 1,
- "metadata": {
- "description": "The IP address range that can be used access the license manager. This must be a valid IP CIDR range of the form x.x.x.x/x. Use the value <your_public_ip_address>/32 to restrict access to only your computer."
- }
- },
- "adminUsername": {
- "defaultValue": "manager",
- "minLength": 7,
- "type": "String",
- "metadata": {
- "description": "Admin username, this is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "adminPassword": {
- "type": "securestring",
- "metadata": {
- "description": "Admin password for the chosen username. This is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "virtualNetworkResourceID": {
- "type": "string",
- "metadata": {
- "description": "The Resource ID of an existing virtual network to deploy your server into. Specify this parameter only when deploying with the Existing Virtual Network option."
- }
- },
- "subnetName": {
- "type": "string",
- "metadata": {
- "description": "The name of an existing subnet within your virtual network to deploy your server into. Specify this parameter only when deploying with the Existing Virtual Network option."
- }
- }
- },
- "variables": {
- "namingPrefix": "netlm",
- "artifactsBase": "C:/Windows/Temp/",
- "addressPrefix": "10.0.0.0/16",
- "subnetPrefix": "10.0.0.0/24",
- "newOrExistingVirtualNetwork": "Existing",
- "virtualNetworkCreateName": "[concat(variables('namingPrefix'), '-vnet')]",
- "subnetCreateName": "[concat(variables('namingPrefix'), '-subnet')]",
- "virtualNetworkName": "[if(equals(variables('newOrExistingVirtualNetwork'),'Existing'),last(split(parameters('virtualNetworkResourceID'),'/')),variables('virtualNetworkCreateName'))]",
- "subnetName": "[if(equals(variables('newOrExistingVirtualNetwork'),'Existing'),parameters('subnetName'),variables('subnetCreateName'))]",
- "subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), variables('subnetName'))]",
- "subnetId": "[if(equals(variables('newOrExistingVirtualNetwork'),'New'),variables('subnetRef'),concat(parameters('virtualNetworkResourceID'), '/subnets/', parameters('subnetName')))]",
- "cuaTrackingNum": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "serverMachineName": "[concat(take(variables('namingPrefix'), 8), '-server')]",
- "publisher": "mathworks-inc",
- "offer": "license-manager-ref-arch-win",
- "sku": "license-manager-ref-arch-win-sku-r2023a",
- "version": "1.0.0",
- "imageReference": {
- "publisher": "[variables('publisher')]",
- "offer": "[variables('offer')]",
- "sku": "[variables('sku')]",
- "version": "[variables('version')]"
- },
- "plan": {
- "name": "[variables('sku')]",
- "publisher": "[variables('publisher')]",
- "product": "[variables('offer')]"
- },
- "serverIPName": "[concat(variables('serverMachineName'), '-ip')]",
- "dnsLabelPrefix": "[concat('azure-', uniqueString(resourceGroup().id))]",
- "publicIpTimeout": "20",
- "networkSecurityGroupName": "[concat(variables('namingPrefix'), '-nsg')]",
- "serverNICName": "[concat(variables('serverMachineName'), '-nic')]",
- "serverIPConfigName": "[concat(variables('serverMachineName'), '-ipconfig')]",
- "scriptsUrl": "C:/Windows/Temp/",
- "startScript": "startserver.ps1",
- "fileUris": [
- "[concat(variables('scriptsUrl'), variables('startScript'))]"
- ],
- "scriptExe": "[concat(variables('artifactsBase'), variables('startScript'))]",
- "installCommand": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('scriptExe'))]",
- "tagsForAll": {
- "provider": "[variables('cuaTrackingNum')]"
- }
- },
- "resources": [
- {
- "name": "[variables('virtualNetworkName')]",
- "type": "Microsoft.Network/virtualNetworks",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "addressSpace": {
- "addressPrefixes": [
- "[variables('addressPrefix')]"
- ]
- },
- "subnets": [
- {
- "name": "[variables('subnetCreateName')]",
- "properties": {
- "addressPrefix": "[variables('subnetPrefix')]"
- }
- }
- ]
- },
- "condition": "[equals(variables('newOrExistingVirtualNetwork'),'New')]"
- },
- {
- "name": "[variables('serverIPName')]",
- "type": "Microsoft.Network/publicIPAddresses",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publicIPAllocationMethod": "Static",
- "dnsSettings": {
- "domainNameLabel": "[concat(variables('serverMachineName'), variables('dnsLabelPrefix'))]"
- },
- "idleTimeoutInMinutes": "[variables('publicIpTimeout')]"
- }
- },
- {
- "name": "[variables('networkSecurityGroupName')]",
- "type": "Microsoft.Network/networkSecurityGroups",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "securityRules": [
- {
- "name": "default-allow-rdp",
- "properties": {
- "priority": 1000,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "3389",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-https",
- "properties": {
- "priority": 1010,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "443",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-netlm",
- "properties": {
- "priority": 1020,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "27000-27010",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-internal-traffic",
- "properties": {
- "priority": 1030,
- "sourceAddressPrefix": "VirtualNetwork",
- "protocol": "Tcp",
- "destinationPortRange": "*",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "VirtualNetwork"
- }
- },
- {
- "name": "allow-ssh",
- "properties": {
- "description": "allow-ssh",
- "protocol": "TCP",
- "sourcePortRange": "*",
- "destinationPortRange": "22",
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "destinationAddressPrefix": "*",
- "access": "Allow",
- "priority": 1040,
- "direction": "Inbound",
- "sourcePortRanges": [],
- "destinationPortRanges": [],
- "sourceAddressPrefixes": [],
- "destinationAddressPrefixes": []
- }
- }
- ]
- }
- },
- {
- "name": "[variables('serverNICName')]",
- "type": "Microsoft.Network/networkInterfaces",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/publicIpAddresses', variables('serverIPName'))]",
- "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "ipConfigurations": [
- {
- "name": "[variables('serverIPConfigName')]",
- "properties": {
- "subnet": {
- "id": "[variables('subnetId')]"
- },
- "privateIPAllocationMethod": "Dynamic",
- "publicIpAddress": {
- "id": "[resourceId('Microsoft.Network/publicIpAddresses', variables('serverIPName'))]"
- }
- }
- }
- ],
- "networkSecurityGroup": {
- "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- }
- }
- },
- {
- "name": "[variables('serverMachineName')]",
- "type": "Microsoft.Compute/virtualMachines",
- "apiVersion": "2022-08-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "plan": "[variables('plan')]",
- "properties": {
- "osProfile": {
- "computerName": "[variables('serverMachineName')]",
- "adminUsername": "[parameters('adminUsername')]",
- "adminPassword": "[parameters('adminPassword')]",
- "windowsConfiguration": {
- "provisionVmAgent": "true"
- }
- },
- "hardwareProfile": {
- "vmSize": "[parameters('instanceType')]"
- },
- "storageProfile": {
- "imageReference": "[variables('imageReference')]",
- "osDisk": {
- "createOption": "fromImage",
- "managedDisk": {
- "storageAccountType": "Premium_LRS"
- }
- }
- },
- "networkProfile": {
- "networkInterfaces": [
- {
- "id": "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- }
- ]
- }
- }
- },
- {
- "name": "[concat(variables('serverMachineName'), '/Installation')]",
- "type": "Microsoft.Compute/virtualMachines/extensions",
- "apiVersion": "2022-08-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publisher": "Microsoft.Compute",
- "type": "CustomScriptExtension",
- "typeHandlerVersion": "1.5",
- "autoUpgradeMinorVersion": true,
- "settings": {
- "fileUris": "[variables('fileUris')]"
- },
- "protectedSettings": {
- "commandToExecute": "[concat(variables('installCommand'),' -DNS ', reference(variables('serverIPName')).dnsSettings.fqdn)]"
- }
- }
- },
- {
- "name": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "type": "Microsoft.Resources/deployments",
- "apiVersion": "2020-10-01",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "properties": {
- "mode": "Incremental",
- "template": {
- "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "resources": []
- }
- }
- }
- ],
- "outputs": {
- "NetworkLicenseManagerAddress": {
- "value": "[concat('https://', reference(variables('serverIPName')).dnsSettings.fqdn)]",
- "type": "string"
- }
- }
-}
\ No newline at end of file
diff --git a/releases/R2023a/templates/mainTemplate.json b/releases/R2023a/templates/mainTemplate.json
index ea43738..5e182f4 100644
--- a/releases/R2023a/templates/mainTemplate.json
+++ b/releases/R2023a/templates/mainTemplate.json
@@ -174,12 +174,12 @@
"roleName": "[guid(resourceGroup().id, deployment().name)]",
"contributor": "[resourceId('Microsoft.Authorization/roleDefinitions/', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"deployNetworkLicenseManager": "[parameters('Deploy Network License Manager For MATLAB')]",
- "flex-arm-template-link": "https://raw.githubusercontent.com/mathworks-ref-arch/matlab-web-app-server-on-azure/main/releases/R2023a/templates/azuredeploy-existing-vnet-R2023a.json",
+ "flex-arm-template-link": "https://raw.githubusercontent.com/mathworks-ref-arch/license-manager-for-matlab-on-azure/refs/heads/master/releases/v1/latest/azuredeploy.json",
"flex-parameters": {
"instanceType": {
"value": "Standard_D2s_v3"
},
- "clientIPAddress": {
+ "clientIPAddressList": {
"value": "[parameters('IP Addresses Permitted to Remote into Server VM in CIDR Notation')]"
},
"adminUsername": {
@@ -188,11 +188,14 @@
"adminPassword": {
"value": "[parameters('Password to Remote into Server VM and Network License Manager Web Interface')]"
},
- "virtualNetworkResourceID": {
+ "existingVnetResourceID": {
"value": "[variables('virtualNetworkID')]"
},
- "subnetName": {
+ "existingSubnetName": {
"value": "[variables('subnetName')]"
+ },
+ "createPublicIPAddress":{
+ "value": "[parameters('Assign Public IP Address to VM Hosting MATLAB Web App Server')]"
}
}
},
diff --git a/releases/R2023b/templates/azuredeploy-existing-vnet-R2023b.json b/releases/R2023b/templates/azuredeploy-existing-vnet-R2023b.json
deleted file mode 100644
index bd7d2ce..0000000
--- a/releases/R2023b/templates/azuredeploy-existing-vnet-R2023b.json
+++ /dev/null
@@ -1,326 +0,0 @@
-{
- "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {
- "instanceType": {
- "type": "string",
- "defaultValue": "Standard_B1ms",
- "minLength": 1,
- "metadata": {
- "description": "Azure instance type, see https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes."
- }
- },
- "clientIPAddress": {
- "type": "string",
- "minLength": 1,
- "metadata": {
- "description": "The IP address range that can be used access the license manager. This must be a valid IP CIDR range of the form x.x.x.x/x. Use the value <your_public_ip_address>/32 to restrict access to only your computer."
- }
- },
- "adminUsername": {
- "defaultValue": "manager",
- "minLength": 7,
- "type": "String",
- "metadata": {
- "description": "Admin username, this is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "adminPassword": {
- "type": "securestring",
- "metadata": {
- "description": "Admin password for the chosen username. This is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "virtualNetworkResourceID": {
- "type": "string",
- "metadata": {
- "description": "The Resource ID of an existing virtual network to deploy your server into. Specify this parameter only when deploying with the Existing Virtual Network option."
- }
- },
- "subnetName": {
- "type": "string",
- "metadata": {
- "description": "The name of an existing subnet within your virtual network to deploy your server into. Specify this parameter only when deploying with the Existing Virtual Network option."
- }
- }
- },
- "variables": {
- "namingPrefix": "netlm",
- "artifactsBase": "C:/Windows/Temp/",
- "addressPrefix": "10.0.0.0/16",
- "subnetPrefix": "10.0.0.0/24",
- "newOrExistingVirtualNetwork": "Existing",
- "virtualNetworkCreateName": "[concat(variables('namingPrefix'), '-vnet')]",
- "subnetCreateName": "[concat(variables('namingPrefix'), '-subnet')]",
- "virtualNetworkName": "[if(equals(variables('newOrExistingVirtualNetwork'),'Existing'),last(split(parameters('virtualNetworkResourceID'),'/')),variables('virtualNetworkCreateName'))]",
- "subnetName": "[if(equals(variables('newOrExistingVirtualNetwork'),'Existing'),parameters('subnetName'),variables('subnetCreateName'))]",
- "subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), variables('subnetName'))]",
- "subnetId": "[if(equals(variables('newOrExistingVirtualNetwork'),'New'),variables('subnetRef'),concat(parameters('virtualNetworkResourceID'), '/subnets/', parameters('subnetName')))]",
- "cuaTrackingNum": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "serverMachineName": "[concat(take(variables('namingPrefix'), 8), '-server')]",
- "publisher": "mathworks-inc",
- "offer": "license-manager-ref-arch-win",
- "sku": "license-manager-ref-arch-win-sku-r2023b",
- "version": "latest",
- "imageReference": {
- "publisher": "[variables('publisher')]",
- "offer": "[variables('offer')]",
- "sku": "[variables('sku')]",
- "version": "[variables('version')]"
- },
- "plan": {
- "name": "[variables('sku')]",
- "publisher": "[variables('publisher')]",
- "product": "[variables('offer')]"
- },
- "serverIPName": "[concat(variables('serverMachineName'), '-ip')]",
- "dnsLabelPrefix": "[concat('azure-', uniqueString(resourceGroup().id))]",
- "publicIpTimeout": "20",
- "networkSecurityGroupName": "[concat(variables('namingPrefix'), '-nsg')]",
- "serverNICName": "[concat(variables('serverMachineName'), '-nic')]",
- "serverIPConfigName": "[concat(variables('serverMachineName'), '-ipconfig')]",
- "scriptsUrl": "C:/Windows/Temp/",
- "startScript": "startserver.ps1",
- "fileUris": [
- "[concat(variables('scriptsUrl'), variables('startScript'))]"
- ],
- "scriptExe": "[concat(variables('artifactsBase'), variables('startScript'))]",
- "installCommand": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('scriptExe'))]",
- "tagsForAll": {
- "provider": "[variables('cuaTrackingNum')]"
- }
- },
- "resources": [
- {
- "name": "[variables('virtualNetworkName')]",
- "type": "Microsoft.Network/virtualNetworks",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "addressSpace": {
- "addressPrefixes": [
- "[variables('addressPrefix')]"
- ]
- },
- "subnets": [
- {
- "name": "[variables('subnetCreateName')]",
- "properties": {
- "addressPrefix": "[variables('subnetPrefix')]"
- }
- }
- ]
- },
- "condition": "[equals(variables('newOrExistingVirtualNetwork'),'New')]"
- },
- {
- "name": "[variables('serverIPName')]",
- "type": "Microsoft.Network/publicIPAddresses",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publicIPAllocationMethod": "Static",
- "dnsSettings": {
- "domainNameLabel": "[concat(variables('serverMachineName'), variables('dnsLabelPrefix'))]"
- },
- "idleTimeoutInMinutes": "[variables('publicIpTimeout')]"
- }
- },
- {
- "name": "[variables('networkSecurityGroupName')]",
- "type": "Microsoft.Network/networkSecurityGroups",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "securityRules": [
- {
- "name": "default-allow-rdp",
- "properties": {
- "priority": 1000,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "3389",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-https",
- "properties": {
- "priority": 1010,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "443",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-netlm",
- "properties": {
- "priority": 1020,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "27000-27010",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-internal-traffic",
- "properties": {
- "priority": 1030,
- "sourceAddressPrefix": "VirtualNetwork",
- "protocol": "Tcp",
- "destinationPortRange": "*",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "VirtualNetwork"
- }
- },
- {
- "name": "allow-ssh",
- "properties": {
- "description": "allow-ssh",
- "protocol": "TCP",
- "sourcePortRange": "*",
- "destinationPortRange": "22",
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "destinationAddressPrefix": "*",
- "access": "Allow",
- "priority": 1040,
- "direction": "Inbound"
- }
- }
- ]
- }
- },
- {
- "name": "[variables('serverNICName')]",
- "type": "Microsoft.Network/networkInterfaces",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/publicIpAddresses', variables('serverIPName'))]",
- "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "ipConfigurations": [
- {
- "name": "[variables('serverIPConfigName')]",
- "properties": {
- "subnet": {
- "id": "[variables('subnetId')]"
- },
- "privateIPAllocationMethod": "Dynamic",
- "publicIpAddress": {
- "id": "[resourceId('Microsoft.Network/publicIpAddresses', variables('serverIPName'))]"
- }
- }
- }
- ],
- "networkSecurityGroup": {
- "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- }
- }
- },
- {
- "name": "[variables('serverMachineName')]",
- "type": "Microsoft.Compute/virtualMachines",
- "apiVersion": "2022-08-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "plan": "[variables('plan')]",
- "properties": {
- "osProfile": {
- "computerName": "[variables('serverMachineName')]",
- "adminUsername": "[parameters('adminUsername')]",
- "adminPassword": "[parameters('adminPassword')]",
- "windowsConfiguration": {
- "provisionVmAgent": "true"
- }
- },
- "hardwareProfile": {
- "vmSize": "[parameters('instanceType')]"
- },
- "storageProfile": {
- "imageReference": "[variables('imageReference')]",
- "osDisk": {
- "createOption": "fromImage",
- "managedDisk": {
- "storageAccountType": "Premium_LRS"
- }
- }
- },
- "networkProfile": {
- "networkInterfaces": [
- {
- "id": "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- }
- ]
- }
- }
- },
- {
- "name": "[concat(variables('serverMachineName'), '/Installation')]",
- "type": "Microsoft.Compute/virtualMachines/extensions",
- "apiVersion": "2022-08-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publisher": "Microsoft.Compute",
- "type": "CustomScriptExtension",
- "typeHandlerVersion": "1.5",
- "autoUpgradeMinorVersion": true,
- "settings": {
- "fileUris": "[variables('fileUris')]"
- },
- "protectedSettings": {
- "commandToExecute": "[concat(variables('installCommand'),' -DNS ', reference(variables('serverIPName')).dnsSettings.fqdn)]"
- }
- }
- },
- {
- "name": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "type": "Microsoft.Resources/deployments",
- "apiVersion": "2021-04-01",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "properties": {
- "mode": "Incremental",
- "template": {
- "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "resources": []
- }
- }
- }
- ],
- "outputs": {
- "NetworkLicenseManagerAddress": {
- "value": "[concat('https://', reference(variables('serverIPName')).dnsSettings.fqdn)]",
- "type": "string"
- }
- }
-}
\ No newline at end of file
diff --git a/releases/R2023b/templates/mainTemplate.json b/releases/R2023b/templates/mainTemplate.json
index 0904ffe..7bfe7ab 100644
--- a/releases/R2023b/templates/mainTemplate.json
+++ b/releases/R2023b/templates/mainTemplate.json
@@ -174,12 +174,12 @@
"roleName": "[guid(resourceGroup().id, deployment().name)]",
"contributor": "[resourceId('Microsoft.Authorization/roleDefinitions/', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"deployNetworkLicenseManager": "[parameters('Deploy Network License Manager For MATLAB')]",
- "flex-arm-template-link": "https://raw.githubusercontent.com/mathworks-ref-arch/matlab-web-app-server-on-azure/main/releases/R2023b/templates/azuredeploy-existing-vnet-R2023b.json",
+ "flex-arm-template-link": "https://raw.githubusercontent.com/mathworks-ref-arch/license-manager-for-matlab-on-azure/refs/heads/master/releases/v1/latest/azuredeploy.json",
"flex-parameters": {
"instanceType": {
"value": "Standard_D2s_v3"
},
- "clientIPAddress": {
+ "clientIPAddressList": {
"value": "[parameters('IP Addresses Permitted to Remote into Server VM in CIDR Notation')]"
},
"adminUsername": {
@@ -188,11 +188,14 @@
"adminPassword": {
"value": "[parameters('Password to Remote into Server VM and Network License Manager Web Interface')]"
},
- "virtualNetworkResourceID": {
+ "existingVnetResourceID": {
"value": "[variables('virtualNetworkID')]"
},
- "subnetName": {
+ "existingSubnetName": {
"value": "[variables('subnetName')]"
+ },
+ "createPublicIPAddress":{
+ "value": "[parameters('Assign Public IP Address to VM Hosting MATLAB Web App Server')]"
}
}
},
diff --git a/releases/R2024a/templates/azuredeploy-existing-vnet-R2023b.json b/releases/R2024a/templates/azuredeploy-existing-vnet-R2023b.json
deleted file mode 100644
index bd7d2ce..0000000
--- a/releases/R2024a/templates/azuredeploy-existing-vnet-R2023b.json
+++ /dev/null
@@ -1,326 +0,0 @@
-{
- "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {
- "instanceType": {
- "type": "string",
- "defaultValue": "Standard_B1ms",
- "minLength": 1,
- "metadata": {
- "description": "Azure instance type, see https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes."
- }
- },
- "clientIPAddress": {
- "type": "string",
- "minLength": 1,
- "metadata": {
- "description": "The IP address range that can be used access the license manager. This must be a valid IP CIDR range of the form x.x.x.x/x. Use the value <your_public_ip_address>/32 to restrict access to only your computer."
- }
- },
- "adminUsername": {
- "defaultValue": "manager",
- "minLength": 7,
- "type": "String",
- "metadata": {
- "description": "Admin username, this is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "adminPassword": {
- "type": "securestring",
- "metadata": {
- "description": "Admin password for the chosen username. This is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "virtualNetworkResourceID": {
- "type": "string",
- "metadata": {
- "description": "The Resource ID of an existing virtual network to deploy your server into. Specify this parameter only when deploying with the Existing Virtual Network option."
- }
- },
- "subnetName": {
- "type": "string",
- "metadata": {
- "description": "The name of an existing subnet within your virtual network to deploy your server into. Specify this parameter only when deploying with the Existing Virtual Network option."
- }
- }
- },
- "variables": {
- "namingPrefix": "netlm",
- "artifactsBase": "C:/Windows/Temp/",
- "addressPrefix": "10.0.0.0/16",
- "subnetPrefix": "10.0.0.0/24",
- "newOrExistingVirtualNetwork": "Existing",
- "virtualNetworkCreateName": "[concat(variables('namingPrefix'), '-vnet')]",
- "subnetCreateName": "[concat(variables('namingPrefix'), '-subnet')]",
- "virtualNetworkName": "[if(equals(variables('newOrExistingVirtualNetwork'),'Existing'),last(split(parameters('virtualNetworkResourceID'),'/')),variables('virtualNetworkCreateName'))]",
- "subnetName": "[if(equals(variables('newOrExistingVirtualNetwork'),'Existing'),parameters('subnetName'),variables('subnetCreateName'))]",
- "subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), variables('subnetName'))]",
- "subnetId": "[if(equals(variables('newOrExistingVirtualNetwork'),'New'),variables('subnetRef'),concat(parameters('virtualNetworkResourceID'), '/subnets/', parameters('subnetName')))]",
- "cuaTrackingNum": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "serverMachineName": "[concat(take(variables('namingPrefix'), 8), '-server')]",
- "publisher": "mathworks-inc",
- "offer": "license-manager-ref-arch-win",
- "sku": "license-manager-ref-arch-win-sku-r2023b",
- "version": "latest",
- "imageReference": {
- "publisher": "[variables('publisher')]",
- "offer": "[variables('offer')]",
- "sku": "[variables('sku')]",
- "version": "[variables('version')]"
- },
- "plan": {
- "name": "[variables('sku')]",
- "publisher": "[variables('publisher')]",
- "product": "[variables('offer')]"
- },
- "serverIPName": "[concat(variables('serverMachineName'), '-ip')]",
- "dnsLabelPrefix": "[concat('azure-', uniqueString(resourceGroup().id))]",
- "publicIpTimeout": "20",
- "networkSecurityGroupName": "[concat(variables('namingPrefix'), '-nsg')]",
- "serverNICName": "[concat(variables('serverMachineName'), '-nic')]",
- "serverIPConfigName": "[concat(variables('serverMachineName'), '-ipconfig')]",
- "scriptsUrl": "C:/Windows/Temp/",
- "startScript": "startserver.ps1",
- "fileUris": [
- "[concat(variables('scriptsUrl'), variables('startScript'))]"
- ],
- "scriptExe": "[concat(variables('artifactsBase'), variables('startScript'))]",
- "installCommand": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('scriptExe'))]",
- "tagsForAll": {
- "provider": "[variables('cuaTrackingNum')]"
- }
- },
- "resources": [
- {
- "name": "[variables('virtualNetworkName')]",
- "type": "Microsoft.Network/virtualNetworks",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "addressSpace": {
- "addressPrefixes": [
- "[variables('addressPrefix')]"
- ]
- },
- "subnets": [
- {
- "name": "[variables('subnetCreateName')]",
- "properties": {
- "addressPrefix": "[variables('subnetPrefix')]"
- }
- }
- ]
- },
- "condition": "[equals(variables('newOrExistingVirtualNetwork'),'New')]"
- },
- {
- "name": "[variables('serverIPName')]",
- "type": "Microsoft.Network/publicIPAddresses",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publicIPAllocationMethod": "Static",
- "dnsSettings": {
- "domainNameLabel": "[concat(variables('serverMachineName'), variables('dnsLabelPrefix'))]"
- },
- "idleTimeoutInMinutes": "[variables('publicIpTimeout')]"
- }
- },
- {
- "name": "[variables('networkSecurityGroupName')]",
- "type": "Microsoft.Network/networkSecurityGroups",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "securityRules": [
- {
- "name": "default-allow-rdp",
- "properties": {
- "priority": 1000,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "3389",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-https",
- "properties": {
- "priority": 1010,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "443",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-netlm",
- "properties": {
- "priority": 1020,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "27000-27010",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-internal-traffic",
- "properties": {
- "priority": 1030,
- "sourceAddressPrefix": "VirtualNetwork",
- "protocol": "Tcp",
- "destinationPortRange": "*",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "VirtualNetwork"
- }
- },
- {
- "name": "allow-ssh",
- "properties": {
- "description": "allow-ssh",
- "protocol": "TCP",
- "sourcePortRange": "*",
- "destinationPortRange": "22",
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "destinationAddressPrefix": "*",
- "access": "Allow",
- "priority": 1040,
- "direction": "Inbound"
- }
- }
- ]
- }
- },
- {
- "name": "[variables('serverNICName')]",
- "type": "Microsoft.Network/networkInterfaces",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/publicIpAddresses', variables('serverIPName'))]",
- "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "ipConfigurations": [
- {
- "name": "[variables('serverIPConfigName')]",
- "properties": {
- "subnet": {
- "id": "[variables('subnetId')]"
- },
- "privateIPAllocationMethod": "Dynamic",
- "publicIpAddress": {
- "id": "[resourceId('Microsoft.Network/publicIpAddresses', variables('serverIPName'))]"
- }
- }
- }
- ],
- "networkSecurityGroup": {
- "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- }
- }
- },
- {
- "name": "[variables('serverMachineName')]",
- "type": "Microsoft.Compute/virtualMachines",
- "apiVersion": "2022-08-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "plan": "[variables('plan')]",
- "properties": {
- "osProfile": {
- "computerName": "[variables('serverMachineName')]",
- "adminUsername": "[parameters('adminUsername')]",
- "adminPassword": "[parameters('adminPassword')]",
- "windowsConfiguration": {
- "provisionVmAgent": "true"
- }
- },
- "hardwareProfile": {
- "vmSize": "[parameters('instanceType')]"
- },
- "storageProfile": {
- "imageReference": "[variables('imageReference')]",
- "osDisk": {
- "createOption": "fromImage",
- "managedDisk": {
- "storageAccountType": "Premium_LRS"
- }
- }
- },
- "networkProfile": {
- "networkInterfaces": [
- {
- "id": "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- }
- ]
- }
- }
- },
- {
- "name": "[concat(variables('serverMachineName'), '/Installation')]",
- "type": "Microsoft.Compute/virtualMachines/extensions",
- "apiVersion": "2022-08-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publisher": "Microsoft.Compute",
- "type": "CustomScriptExtension",
- "typeHandlerVersion": "1.5",
- "autoUpgradeMinorVersion": true,
- "settings": {
- "fileUris": "[variables('fileUris')]"
- },
- "protectedSettings": {
- "commandToExecute": "[concat(variables('installCommand'),' -DNS ', reference(variables('serverIPName')).dnsSettings.fqdn)]"
- }
- }
- },
- {
- "name": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "type": "Microsoft.Resources/deployments",
- "apiVersion": "2021-04-01",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "properties": {
- "mode": "Incremental",
- "template": {
- "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "resources": []
- }
- }
- }
- ],
- "outputs": {
- "NetworkLicenseManagerAddress": {
- "value": "[concat('https://', reference(variables('serverIPName')).dnsSettings.fqdn)]",
- "type": "string"
- }
- }
-}
\ No newline at end of file
diff --git a/releases/R2024a/templates/mainTemplate.json b/releases/R2024a/templates/mainTemplate.json
index 3ac56e3..fdd999f 100644
--- a/releases/R2024a/templates/mainTemplate.json
+++ b/releases/R2024a/templates/mainTemplate.json
@@ -185,12 +185,12 @@
"roleName": "[guid(resourceGroup().id, deployment().name)]",
"contributor": "[resourceId('Microsoft.Authorization/roleDefinitions/', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"deployNetworkLicenseManager": "[parameters('Deploy Network License Manager For MATLAB')]",
- "flex-arm-template-link": "https://raw.githubusercontent.com/mathworks-ref-arch/license-manager-for-matlab-on-azure/master/releases/R2023b/azuredeploy-existing-vnet-R2023b.json",
+ "flex-arm-template-link": "https://raw.githubusercontent.com/mathworks-ref-arch/license-manager-for-matlab-on-azure/refs/heads/master/releases/v1/latest/azuredeploy.json",
"flex-parameters": {
"instanceType": {
"value": "Standard_D2s_v3"
},
- "clientIPAddress": {
+ "clientIPAddressList": {
"value": "[parameters('IP Addresses Permitted to Remote into Server VM in CIDR Notation')]"
},
"adminUsername": {
@@ -199,11 +199,14 @@
"adminPassword": {
"value": "[parameters('Password to Remote into Server VM and Network License Manager Web Interface')]"
},
- "virtualNetworkResourceID": {
+ "existingVnetResourceID": {
"value": "[variables('virtualNetworkID')]"
},
- "subnetName": {
+ "existingSubnetName": {
"value": "[variables('subnetName')]"
+ },
+ "createPublicIPAddress":{
+ "value": "[parameters('Assign Public IP Address to VM Hosting MATLAB Web App Server')]"
}
},
"publicDns": "[concat(variables('webappDNSName'), '.', variables('location'), '.cloudapp.azure.com')]",
diff --git a/releases/R2024b/templates/azuredeploy-existing-vnet-R2023b.json b/releases/R2024b/templates/azuredeploy-existing-vnet-R2023b.json
deleted file mode 100644
index bd7d2ce..0000000
--- a/releases/R2024b/templates/azuredeploy-existing-vnet-R2023b.json
+++ /dev/null
@@ -1,326 +0,0 @@
-{
- "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {
- "instanceType": {
- "type": "string",
- "defaultValue": "Standard_B1ms",
- "minLength": 1,
- "metadata": {
- "description": "Azure instance type, see https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes."
- }
- },
- "clientIPAddress": {
- "type": "string",
- "minLength": 1,
- "metadata": {
- "description": "The IP address range that can be used access the license manager. This must be a valid IP CIDR range of the form x.x.x.x/x. Use the value <your_public_ip_address>/32 to restrict access to only your computer."
- }
- },
- "adminUsername": {
- "defaultValue": "manager",
- "minLength": 7,
- "type": "String",
- "metadata": {
- "description": "Admin username, this is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "adminPassword": {
- "type": "securestring",
- "metadata": {
- "description": "Admin password for the chosen username. This is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "virtualNetworkResourceID": {
- "type": "string",
- "metadata": {
- "description": "The Resource ID of an existing virtual network to deploy your server into. Specify this parameter only when deploying with the Existing Virtual Network option."
- }
- },
- "subnetName": {
- "type": "string",
- "metadata": {
- "description": "The name of an existing subnet within your virtual network to deploy your server into. Specify this parameter only when deploying with the Existing Virtual Network option."
- }
- }
- },
- "variables": {
- "namingPrefix": "netlm",
- "artifactsBase": "C:/Windows/Temp/",
- "addressPrefix": "10.0.0.0/16",
- "subnetPrefix": "10.0.0.0/24",
- "newOrExistingVirtualNetwork": "Existing",
- "virtualNetworkCreateName": "[concat(variables('namingPrefix'), '-vnet')]",
- "subnetCreateName": "[concat(variables('namingPrefix'), '-subnet')]",
- "virtualNetworkName": "[if(equals(variables('newOrExistingVirtualNetwork'),'Existing'),last(split(parameters('virtualNetworkResourceID'),'/')),variables('virtualNetworkCreateName'))]",
- "subnetName": "[if(equals(variables('newOrExistingVirtualNetwork'),'Existing'),parameters('subnetName'),variables('subnetCreateName'))]",
- "subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), variables('subnetName'))]",
- "subnetId": "[if(equals(variables('newOrExistingVirtualNetwork'),'New'),variables('subnetRef'),concat(parameters('virtualNetworkResourceID'), '/subnets/', parameters('subnetName')))]",
- "cuaTrackingNum": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "serverMachineName": "[concat(take(variables('namingPrefix'), 8), '-server')]",
- "publisher": "mathworks-inc",
- "offer": "license-manager-ref-arch-win",
- "sku": "license-manager-ref-arch-win-sku-r2023b",
- "version": "latest",
- "imageReference": {
- "publisher": "[variables('publisher')]",
- "offer": "[variables('offer')]",
- "sku": "[variables('sku')]",
- "version": "[variables('version')]"
- },
- "plan": {
- "name": "[variables('sku')]",
- "publisher": "[variables('publisher')]",
- "product": "[variables('offer')]"
- },
- "serverIPName": "[concat(variables('serverMachineName'), '-ip')]",
- "dnsLabelPrefix": "[concat('azure-', uniqueString(resourceGroup().id))]",
- "publicIpTimeout": "20",
- "networkSecurityGroupName": "[concat(variables('namingPrefix'), '-nsg')]",
- "serverNICName": "[concat(variables('serverMachineName'), '-nic')]",
- "serverIPConfigName": "[concat(variables('serverMachineName'), '-ipconfig')]",
- "scriptsUrl": "C:/Windows/Temp/",
- "startScript": "startserver.ps1",
- "fileUris": [
- "[concat(variables('scriptsUrl'), variables('startScript'))]"
- ],
- "scriptExe": "[concat(variables('artifactsBase'), variables('startScript'))]",
- "installCommand": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('scriptExe'))]",
- "tagsForAll": {
- "provider": "[variables('cuaTrackingNum')]"
- }
- },
- "resources": [
- {
- "name": "[variables('virtualNetworkName')]",
- "type": "Microsoft.Network/virtualNetworks",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "addressSpace": {
- "addressPrefixes": [
- "[variables('addressPrefix')]"
- ]
- },
- "subnets": [
- {
- "name": "[variables('subnetCreateName')]",
- "properties": {
- "addressPrefix": "[variables('subnetPrefix')]"
- }
- }
- ]
- },
- "condition": "[equals(variables('newOrExistingVirtualNetwork'),'New')]"
- },
- {
- "name": "[variables('serverIPName')]",
- "type": "Microsoft.Network/publicIPAddresses",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publicIPAllocationMethod": "Static",
- "dnsSettings": {
- "domainNameLabel": "[concat(variables('serverMachineName'), variables('dnsLabelPrefix'))]"
- },
- "idleTimeoutInMinutes": "[variables('publicIpTimeout')]"
- }
- },
- {
- "name": "[variables('networkSecurityGroupName')]",
- "type": "Microsoft.Network/networkSecurityGroups",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "securityRules": [
- {
- "name": "default-allow-rdp",
- "properties": {
- "priority": 1000,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "3389",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-https",
- "properties": {
- "priority": 1010,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "443",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-netlm",
- "properties": {
- "priority": 1020,
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "protocol": "Tcp",
- "destinationPortRange": "27000-27010",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-internal-traffic",
- "properties": {
- "priority": 1030,
- "sourceAddressPrefix": "VirtualNetwork",
- "protocol": "Tcp",
- "destinationPortRange": "*",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "VirtualNetwork"
- }
- },
- {
- "name": "allow-ssh",
- "properties": {
- "description": "allow-ssh",
- "protocol": "TCP",
- "sourcePortRange": "*",
- "destinationPortRange": "22",
- "sourceAddressPrefix": "[parameters('clientIPAddress')]",
- "destinationAddressPrefix": "*",
- "access": "Allow",
- "priority": 1040,
- "direction": "Inbound"
- }
- }
- ]
- }
- },
- {
- "name": "[variables('serverNICName')]",
- "type": "Microsoft.Network/networkInterfaces",
- "apiVersion": "2022-05-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/publicIpAddresses', variables('serverIPName'))]",
- "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "ipConfigurations": [
- {
- "name": "[variables('serverIPConfigName')]",
- "properties": {
- "subnet": {
- "id": "[variables('subnetId')]"
- },
- "privateIPAllocationMethod": "Dynamic",
- "publicIpAddress": {
- "id": "[resourceId('Microsoft.Network/publicIpAddresses', variables('serverIPName'))]"
- }
- }
- }
- ],
- "networkSecurityGroup": {
- "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- }
- }
- },
- {
- "name": "[variables('serverMachineName')]",
- "type": "Microsoft.Compute/virtualMachines",
- "apiVersion": "2022-08-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "plan": "[variables('plan')]",
- "properties": {
- "osProfile": {
- "computerName": "[variables('serverMachineName')]",
- "adminUsername": "[parameters('adminUsername')]",
- "adminPassword": "[parameters('adminPassword')]",
- "windowsConfiguration": {
- "provisionVmAgent": "true"
- }
- },
- "hardwareProfile": {
- "vmSize": "[parameters('instanceType')]"
- },
- "storageProfile": {
- "imageReference": "[variables('imageReference')]",
- "osDisk": {
- "createOption": "fromImage",
- "managedDisk": {
- "storageAccountType": "Premium_LRS"
- }
- }
- },
- "networkProfile": {
- "networkInterfaces": [
- {
- "id": "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- }
- ]
- }
- }
- },
- {
- "name": "[concat(variables('serverMachineName'), '/Installation')]",
- "type": "Microsoft.Compute/virtualMachines/extensions",
- "apiVersion": "2022-08-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publisher": "Microsoft.Compute",
- "type": "CustomScriptExtension",
- "typeHandlerVersion": "1.5",
- "autoUpgradeMinorVersion": true,
- "settings": {
- "fileUris": "[variables('fileUris')]"
- },
- "protectedSettings": {
- "commandToExecute": "[concat(variables('installCommand'),' -DNS ', reference(variables('serverIPName')).dnsSettings.fqdn)]"
- }
- }
- },
- {
- "name": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "type": "Microsoft.Resources/deployments",
- "apiVersion": "2021-04-01",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "properties": {
- "mode": "Incremental",
- "template": {
- "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "resources": []
- }
- }
- }
- ],
- "outputs": {
- "NetworkLicenseManagerAddress": {
- "value": "[concat('https://', reference(variables('serverIPName')).dnsSettings.fqdn)]",
- "type": "string"
- }
- }
-}
\ No newline at end of file
diff --git a/releases/R2024b/templates/mainTemplate.json b/releases/R2024b/templates/mainTemplate.json
index daab80c..9577682 100644
--- a/releases/R2024b/templates/mainTemplate.json
+++ b/releases/R2024b/templates/mainTemplate.json
@@ -185,7 +185,7 @@
"roleName": "[guid(resourceGroup().id, deployment().name)]",
"contributor": "[resourceId('Microsoft.Authorization/roleDefinitions/', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"deployNetworkLicenseManager": "[parameters('Deploy Network License Manager For MATLAB')]",
- "flex-arm-template-link": "https://raw.githubusercontent.com/mathworks-ref-arch/license-manager-for-matlab-on-azure/master/releases/R2024b/azuredeploy-R2024b.json",
+ "flex-arm-template-link": "https://raw.githubusercontent.com/mathworks-ref-arch/license-manager-for-matlab-on-azure/refs/heads/master/releases/v1/latest/azuredeploy.json",
"flex-parameters": {
"instanceType": {
"value": "Standard_D2s_v3"
diff --git a/releases/R2025a/templates/azuredeploy-existing-vnet-R2025a.json b/releases/R2025a/templates/azuredeploy-existing-vnet-R2025a.json
deleted file mode 100644
index 792b9eb..0000000
--- a/releases/R2025a/templates/azuredeploy-existing-vnet-R2025a.json
+++ /dev/null
@@ -1,354 +0,0 @@
-{
- "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {
- "instanceType": {
- "type": "string",
- "defaultValue": "Standard_B1ms",
- "minLength": 1,
- "metadata": {
- "description": "Azure instance type, see https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes."
- }
- },
- "clientIPAddressList": {
- "type": "string",
- "defaultValue": "",
- "minLength": 7,
- "metadata": {
- "description": "A list of comma separated IP address ranges that can be used to access the license manager. These must be valid IP CIDR ranges of the form x.x.x.x/x. Use the value <your_client_ip_address>/32 to restrict access to only your computer."
- }
- },
- "adminUsername": {
- "defaultValue": "manager",
- "minLength": 7,
- "type": "String",
- "metadata": {
- "description": "Admin username, this is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "adminPassword": {
- "type": "securestring",
- "metadata": {
- "description": "Admin password for the chosen username. This is used to login to the Network License Manager for MATLAB dashboard."
- }
- },
- "existingVnetResourceID": {
- "defaultValue": "",
- "type": "string",
- "metadata": {
- "description": "Use this optional parameter to specify the Resource ID of an existing virtual network to deploy your server into. Specify this parameter only when you deploy using the Existing Virtual Network option."
- }
- },
- "existingSubnetName": {
- "defaultValue": "",
- "type": "string",
- "metadata": {
- "description": "Use this optional parameter to specify the name of an existing subnet within your virtual network to deploy your server into. Specify this parameter only when you deploy using the Existing Virtual Network option."
- }
- },
- "createPublicIPAddress": {
- "type": "string",
- "defaultValue": "Yes",
- "allowedValues": [
- "Yes",
- "No"
- ],
- "metadata": {
- "description": "Choose whether to create a public IP address for the VM."
- }
- }
- },
- "variables": {
- "namingPrefix": "netlm",
- "artifactsBase": "C:/Windows/Temp/",
- "addressPrefix": "10.0.0.0/16",
- "subnetPrefix": "10.0.0.0/24",
- "newOrExistingVirtualNetwork": "[if(equals(parameters('existingVnetResourceID'), ''), 'new', 'existing')]",
- "newVnetName": "[concat(variables('namingPrefix'), '-vnet')]",
- "newSubnetName": "[concat(variables('namingPrefix'), '-subnet')]",
- "virtualNetworkName": "[if(equals(variables('newOrExistingVirtualNetwork'),'existing'), last(split(parameters('existingVnetResourceID'),'/')), variables('newVnetName'))]",
- "subnetName": "[if(equals(variables('newOrExistingVirtualNetwork'),'existing'), parameters('existingSubnetName'), variables('newSubnetName'))]",
- "subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), variables('subnetName'))]",
- "subnetId": "[if(equals(variables('newOrExistingVirtualNetwork'),'new'), variables('subnetRef'), concat(parameters('existingVnetResourceID'), '/subnets/', parameters('existingSubnetName')))]",
- "createPublicIPAddress": "[if(equals(parameters('createPublicIPAddress'), 'Yes'), bool('true'), bool('false'))]",
- "cuaTrackingNum": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "serverMachineName": "[concat(take(variables('namingPrefix'), 8), '-server')]",
- "publisher": "mathworks-inc",
- "offer": "license-manager-ref-arch-win",
- "sku": "license-manager-ref-arch-win-sku-r2025a-test",
- "version": "latest",
- "imageReference": {
- "publisher": "[variables('publisher')]",
- "offer": "[variables('offer')]",
- "sku": "[variables('sku')]",
- "version": "[variables('version')]"
- },
- "plan": {
- "name": "[variables('sku')]",
- "publisher": "[variables('publisher')]",
- "product": "[variables('offer')]"
- },
- "publicIPName": "[concat(variables('serverMachineName'), '-ip')]",
- "dnsLabelPrefix": "[concat('azure-', uniqueString(resourceGroup().id))]",
- "publicIpTimeout": "20",
- "networkSecurityGroupName": "[concat(variables('namingPrefix'), '-nsg')]",
- "serverNICName": "[concat(variables('serverMachineName'), '-nic')]",
- "serverIPConfigName": "[concat(variables('serverMachineName'), '-ipconfig')]",
- "nicIpConfigurationWithPublicIP": [
- {
- "name": "[variables('serverIPConfigName')]",
- "properties": {
- "subnet": {
- "id": "[variables('subnetId')]"
- },
- "privateIPAllocationMethod": "Dynamic",
- "publicIpAddress": {
- "id": "[resourceId('Microsoft.Network/publicIpAddresses', variables('publicIPName'))]"
- }
- }
- }
- ],
- "nicIpConfigurationWithoutPublicIP": [
- {
- "name": "[variables('serverIPConfigName')]",
- "properties": {
- "subnet": {
- "id": "[variables('subnetId')]"
- },
- "privateIPAllocationMethod": "Dynamic"
- }
- }
- ],
- "scriptsUrl": "C:/Windows/Temp/",
- "startScript": "startserver.ps1",
- "fileUris": [
- "[concat(variables('scriptsUrl'), variables('startScript'))]"
- ],
- "scriptExe": "[concat(variables('artifactsBase'), variables('startScript'))]",
- "installCommand": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('scriptExe'))]",
- "tagsForAll": {
- "provider": "[variables('cuaTrackingNum')]"
- }
- },
- "resources": [
- {
- "condition": "[equals(variables('newOrExistingVirtualNetwork'),'new')]",
- "name": "[variables('virtualNetworkName')]",
- "type": "Microsoft.Network/virtualNetworks",
- "apiVersion": "2023-11-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "addressSpace": {
- "addressPrefixes": [
- "[variables('addressPrefix')]"
- ]
- },
- "subnets": [
- {
- "name": "[variables('subnetName')]",
- "properties": {
- "addressPrefix": "[variables('subnetPrefix')]"
- }
- }
- ]
- }
- },
- {
- "condition": "[variables('createPublicIPAddress')]",
- "name": "[variables('publicIPName')]",
- "type": "Microsoft.Network/publicIPAddresses",
- "apiVersion": "2023-11-01",
- "location": "[resourceGroup().location]",
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publicIPAllocationMethod": "Static",
- "dnsSettings": {
- "domainNameLabel": "[concat(variables('serverMachineName'), variables('dnsLabelPrefix'))]"
- },
- "idleTimeoutInMinutes": "[variables('publicIpTimeout')]"
- }
- },
- {
- "name": "[variables('networkSecurityGroupName')]",
- "type": "Microsoft.Network/networkSecurityGroups",
- "apiVersion": "2023-11-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "securityRules": [
- {
- "name": "default-allow-rdp",
- "properties": {
- "priority": 1000,
- "sourceAddressPrefixes": "[split(replace(parameters('clientIPAddressList'),' ', ''), ',')]",
- "protocol": "TCP",
- "destinationPortRange": "3389",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-https",
- "properties": {
- "priority": 1010,
- "sourceAddressPrefixes": "[split(replace(parameters('clientIPAddressList'),' ', ''), ',')]",
- "protocol": "TCP",
- "destinationPortRange": "443",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-netlm",
- "properties": {
- "priority": 1020,
- "sourceAddressPrefixes": "[split(replace(parameters('clientIPAddressList'),' ', ''), ',')]",
- "protocol": "TCP",
- "destinationPortRange": "27000-27010",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "*"
- }
- },
- {
- "name": "allow-internal-traffic",
- "properties": {
- "priority": 1030,
- "sourceAddressPrefix": "VirtualNetwork",
- "protocol": "TCP",
- "destinationPortRange": "*",
- "access": "Allow",
- "direction": "Inbound",
- "sourcePortRange": "*",
- "destinationAddressPrefix": "VirtualNetwork"
- }
- },
- {
- "name": "allow-ssh",
- "properties": {
- "description": "allow-ssh",
- "protocol": "TCP",
- "sourcePortRange": "*",
- "destinationPortRange": "22",
- "sourceAddressPrefixes": "[split(replace(parameters('clientIPAddressList'),' ', ''), ',')]",
- "destinationAddressPrefix": "*",
- "access": "Allow",
- "priority": 1040,
- "direction": "Inbound"
- }
- }
- ]
- }
- },
- {
- "name": "[variables('serverNICName')]",
- "type": "Microsoft.Network/networkInterfaces",
- "apiVersion": "2023-11-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]",
- "[resourceId('Microsoft.Network/publicIpAddresses', variables('publicIPName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "ipConfigurations": "[variables(if(variables('createPublicIPAddress'), 'nicIpConfigurationWithPublicIP', 'nicIpConfigurationWithoutPublicIP'))]",
- "networkSecurityGroup": {
- "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
- }
- }
- },
- {
- "name": "[variables('serverMachineName')]",
- "type": "Microsoft.Compute/virtualMachines",
- "apiVersion": "2023-09-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "plan": "[variables('plan')]",
- "properties": {
- "osProfile": {
- "computerName": "[variables('serverMachineName')]",
- "adminUsername": "[parameters('adminUsername')]",
- "adminPassword": "[parameters('adminPassword')]",
- "windowsConfiguration": {
- "provisionVmAgent": "true"
- }
- },
- "hardwareProfile": {
- "vmSize": "[parameters('instanceType')]"
- },
- "storageProfile": {
- "imageReference": "[variables('imageReference')]",
- "osDisk": {
- "createOption": "fromImage",
- "managedDisk": {
- "storageAccountType": "Premium_LRS"
- }
- }
- },
- "networkProfile": {
- "networkInterfaces": [
- {
- "id": "[resourceId('Microsoft.Network/networkInterfaces', variables('serverNICName'))]"
- }
- ]
- }
- }
- },
- {
- "name": "[concat(variables('serverMachineName'), '/Installation')]",
- "type": "Microsoft.Compute/virtualMachines/extensions",
- "apiVersion": "2023-09-01",
- "location": "[resourceGroup().location]",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "tags": "[variables('tagsForAll')]",
- "properties": {
- "publisher": "Microsoft.Compute",
- "type": "CustomScriptExtension",
- "typeHandlerVersion": "1.5",
- "autoUpgradeMinorVersion": true,
- "settings": {
- "fileUris": "[variables('fileUris')]"
- },
- "protectedSettings": {
- "commandToExecute": "[if(variables('createPublicIPAddress'), concat(variables('installCommand'),' -DNS ', reference(variables('publicIPName'), '2023-06-01').dnsSettings.fqdn), concat(variables('installCommand'),' -DNS ', reference(variables('serverNICName'), '2023-06-01').ipConfigurations[0].properties.privateIPAddress))]"
- }
- }
- },
- {
- "name": "pid-3519fce2-01d2-4019-90dc-b6566eacbe89-partnercenter",
- "type": "Microsoft.Resources/deployments",
- "apiVersion": "2023-07-01",
- "dependsOn": [
- "[resourceId('Microsoft.Compute/virtualMachines', variables('serverMachineName'))]"
- ],
- "properties": {
- "mode": "Incremental",
- "template": {
- "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "resources": []
- }
- }
- }
- ],
- "outputs": {
- "NetworkLicenseManagerAddress": {
- "value": "[if(variables('createPublicIPAddress'), concat('https://', reference(variables('publicIPName')).dnsSettings.fqdn), concat('https://', reference(variables('serverNICName'), '2023-06-01').ipConfigurations[0].properties.privateIPAddress))]",
- "type": "string"
- }
- }
- }
\ No newline at end of file