From 7b89ae8999afadd0bf33fe83fe8aeacf7e69be1e Mon Sep 17 00:00:00 2001 From: Mahima Bakshi Date: Wed, 24 Sep 2025 10:25:52 -0400 Subject: [PATCH 1/7] Added script files --- releases/R2023b/scripts/initAdminVM.sh | 84 +++++++++++++++++ releases/R2023b/scripts/scriptScaleSet.ps1 | 55 +++++++++++ releases/R2023b/scripts/scriptScaleSet.sh | 3 + releases/R2024a/scripts/initAdminVM.sh | 104 +++++++++++++++++++++ releases/R2024a/scripts/scriptScaleSet.ps1 | 55 +++++++++++ releases/R2024a/scripts/scriptScaleSet.sh | 23 +++++ releases/R2024b/scripts/initAdminVM.sh | 104 +++++++++++++++++++++ releases/R2024b/scripts/scriptScaleSet.ps1 | 55 +++++++++++ releases/R2024b/scripts/scriptScaleSet.sh | 23 +++++ releases/R2025a/scripts/initAdminVM.sh | 104 +++++++++++++++++++++ releases/R2025a/scripts/scriptScaleSet.ps1 | 55 +++++++++++ releases/R2025a/scripts/scriptScaleSet.sh | 23 +++++ 12 files changed, 688 insertions(+) create mode 100644 releases/R2023b/scripts/initAdminVM.sh create mode 100644 releases/R2023b/scripts/scriptScaleSet.ps1 create mode 100644 releases/R2023b/scripts/scriptScaleSet.sh create mode 100644 releases/R2024a/scripts/initAdminVM.sh create mode 100644 releases/R2024a/scripts/scriptScaleSet.ps1 create mode 100644 releases/R2024a/scripts/scriptScaleSet.sh create mode 100644 releases/R2024b/scripts/initAdminVM.sh create mode 100644 releases/R2024b/scripts/scriptScaleSet.ps1 create mode 100644 releases/R2024b/scripts/scriptScaleSet.sh create mode 100644 releases/R2025a/scripts/initAdminVM.sh create mode 100644 releases/R2025a/scripts/scriptScaleSet.ps1 create mode 100644 releases/R2025a/scripts/scriptScaleSet.sh diff --git a/releases/R2023b/scripts/initAdminVM.sh b/releases/R2023b/scripts/initAdminVM.sh new file mode 100644 index 0000000..2daf401 --- /dev/null +++ b/releases/R2023b/scripts/initAdminVM.sh @@ -0,0 +1,84 @@ +#!/bin/bash + +WORKSPACE=/opt/mathworks + +# $0 is the file name + +storageAccountName="$1" +dbConnectionString="$2" +mpsEndpoint="$3" +CIDRRange="$4" +cloudPlatform="$5" +osPlatform="$6" +ikey="$7" +resourceGroup="$8" +subscriptionID="$9" +userName="${10}" +passWord="${11}" +redisName="${12}" +gatewayPrivateIP="${13}" +offerType="${14}" + +azEnvironment=$(sudo curl -s -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2021-02-01" | jq -r '.compute.azEnvironment') + +echo "$storageAccountName" +echo "$dbConnectionString" +echo "$mpsEndpoint" +echo "$CIDRRange" +echo "$cloudPlatform" +echo "$osPlatform" +echo "$ikey" +echo "$resourceGroup" +echo "$subscriptionID" +echo "$userName" +echo "$redisName" +echo "$gatewayPrivateIP" +echo "$offerType" +echo "$azEnvironment" + +JSONCMD=' +{ + "storageAccountName": "'"$storageAccountName"'", + "dbConnectionString": "'"$dbConnectionString"'", + "mpsEndPoint": "'"$mpsEndpoint"'", + "CIDRRange": "'"$CIDRRange"'", + "cloudPlatform": "'"$cloudPlatform"'", + "osPlatform": "'"$osPlatform"'", + "ikey": "'"$ikey"'", + "resourceGroup": "'"$resourceGroup"'", + "subscriptionID": "'"$subscriptionID"'", + "redisCacheName": "'"$redisName"'", + "gatewayPrivateIP": "'"$gatewayPrivateIP"'", + "offerType": "'"$offerType"'", + "azEnvironment": "'"$azEnvironment"'" +} +' + +destination=$WORKSPACE/controller/dynamicOptions.json +rm $destination + +echo $JSONCMD >> $destination + +echo "Written Config File successfully" + +cd $WORKSPACE/cloud/main +node $WORKSPACE/cloud/main/server/hash_pw.js "${userName}" "${passWord}" "${passWord}" + +echo "Written sudo passwd successfully" + +cp ./.shadow ./bin/. + +echo "Copied shadow file" + +systemctl restart refarchcontroller + +echo "Restarted daemon successfully!" + + +# chown to this user /opt/mathworks +# Clear history +history -c + +echo "Cleared History!" +# File Location +#https://mwstorage24.blob.core.windows.net/azuretemplates/initVm.sh \ No newline at end of file diff --git a/releases/R2023b/scripts/scriptScaleSet.ps1 b/releases/R2023b/scripts/scriptScaleSet.ps1 new file mode 100644 index 0000000..13679b3 --- /dev/null +++ b/releases/R2023b/scripts/scriptScaleSet.ps1 @@ -0,0 +1,55 @@ +<# + .SYNOPSIS + This Script runs on MPS instances +#> + +# Param ( +# [Parameter(Mandatory=$False)][string]$SERVER_MODE +# ) + +# disable automatic updates +Echo "disabling automatic updates" +$service = Get-WmiObject Win32_Service -Filter 'Name="wuauserv"' +if ($service) +{ + if ($service.StartMode -ne "Disabled") + { + $result = $service.ChangeStartMode("Disabled").ReturnValue + if($result) + { + Echo "Failed to disable the 'wuauserv' service. The return value was $result." + } + else {Echo "Success to disable the 'wuauserv' service."} + + if ($service.State -eq "Running") + { + $result = $service.StopService().ReturnValue + if ($result) + { + Echo "Failed to stop the 'wuauserv' service. The return value was $result." + } + else {Echo "Success to stop the 'wuauserv' service."} + } + } + else {Echo "The 'wuauserv' service is already disabled."} +} +else {Echo "Failed to retrieve the service 'wuauserv'."} + +#Disable Automatic Windows Updates +Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU -Name AUOptions -Value 1 + +# exclude .ctf file from windows defender scanning +#Add-MpPreference -ExclusionExtension ".ctf" + +#Get-ChildItem "C:\Program Files\MATLAB\MATLAB Runtime\" -Directory | +# ForEach-Object { +# Echo ($_.FullName + '\bin\win64\extractCTF.exe') +# Add-MpPreference -ExclusionProcess ($_.FullName + '\bin\win64\extractCTF.exe') +# } + +Stop-Service -Name Spooler -Force + +Set-Service -Name Spooler -StartupType Disabled + +# Execute reboot required for domain join +#Restart-Computer \ No newline at end of file diff --git a/releases/R2023b/scripts/scriptScaleSet.sh b/releases/R2023b/scripts/scriptScaleSet.sh new file mode 100644 index 0000000..0756b4d --- /dev/null +++ b/releases/R2023b/scripts/scriptScaleSet.sh @@ -0,0 +1,3 @@ +#! /bin/bash +#Put your extra commands here +ls \ No newline at end of file diff --git a/releases/R2024a/scripts/initAdminVM.sh b/releases/R2024a/scripts/initAdminVM.sh new file mode 100644 index 0000000..84558b9 --- /dev/null +++ b/releases/R2024a/scripts/initAdminVM.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +WORKSPACE=/opt/mathworks + +LOG_DIR=/var/log/custom_script +LOG_FILE=$LOG_DIR/custom_script.log + +# Create log directory and file +sudo mkdir -p $LOG_DIR +sudo touch $LOG_FILE +sudo chmod 666 $LOG_FILE + +# $0 is the file name + +storageAccountName="$1" +dbConnectionString="$2" +mpsEndpoint="$3" +CIDRRange="$4" +cloudPlatform="$5" +osPlatform="$6" +ikey="$7" +resourceGroup="$8" +subscriptionID="$9" +userName="${10}" +passWord="${11}" +redisName="${12}" +gatewayPrivateIP="${13}" +offerType="${14}" + +azEnvironment=$(sudo curl -s -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2021-02-01" | jq -r '.compute.azEnvironment') + +echo "$storageAccountName" +echo "$dbConnectionString" +echo "$mpsEndpoint" +echo "$CIDRRange" +echo "$cloudPlatform" +echo "$osPlatform" +echo "$ikey" +echo "$resourceGroup" +echo "$subscriptionID" +echo "$userName" +echo "$redisName" +echo "$gatewayPrivateIP" +echo "$offerType" +echo "$azEnvironment" + +JSONCMD=' +{ + "storageAccountName": "'"$storageAccountName"'", + "dbConnectionString": "'"$dbConnectionString"'", + "mpsEndPoint": "'"$mpsEndpoint"'", + "CIDRRange": "'"$CIDRRange"'", + "cloudPlatform": "'"$cloudPlatform"'", + "osPlatform": "'"$osPlatform"'", + "ikey": "'"$ikey"'", + "resourceGroup": "'"$resourceGroup"'", + "subscriptionID": "'"$subscriptionID"'", + "redisCacheName": "'"$redisName"'", + "gatewayPrivateIP": "'"$gatewayPrivateIP"'", + "offerType": "'"$offerType"'", + "azEnvironment": "'"$azEnvironment"'" +} +' + +destination=$WORKSPACE/controller/dynamicOptions.json +rm $destination + +echo $JSONCMD >> $destination + +echo "Written Config File successfully" + +cd $WORKSPACE/cloud/main +node $WORKSPACE/cloud/main/server/hash_pw.js "${userName}" "${passWord}" "${passWord}" + +echo "Written sudo passwd successfully" + +cp ./.shadow ./bin/. + +echo "Copied shadow file" + +# Update package lists and log errors +sudo apt-get update 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt update failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +# Install openssh-server and log errors +sudo apt-get install -y openssh-server 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt install failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +systemctl restart refarchcontroller + +echo "Restarted daemon successfully!" + + +# chown to this user /opt/mathworks +# Clear history +history -c + +echo "Cleared History!" +# File Location +#https://mwstorage24.blob.core.windows.net/azuretemplates/initVm.sh \ No newline at end of file diff --git a/releases/R2024a/scripts/scriptScaleSet.ps1 b/releases/R2024a/scripts/scriptScaleSet.ps1 new file mode 100644 index 0000000..13679b3 --- /dev/null +++ b/releases/R2024a/scripts/scriptScaleSet.ps1 @@ -0,0 +1,55 @@ +<# + .SYNOPSIS + This Script runs on MPS instances +#> + +# Param ( +# [Parameter(Mandatory=$False)][string]$SERVER_MODE +# ) + +# disable automatic updates +Echo "disabling automatic updates" +$service = Get-WmiObject Win32_Service -Filter 'Name="wuauserv"' +if ($service) +{ + if ($service.StartMode -ne "Disabled") + { + $result = $service.ChangeStartMode("Disabled").ReturnValue + if($result) + { + Echo "Failed to disable the 'wuauserv' service. The return value was $result." + } + else {Echo "Success to disable the 'wuauserv' service."} + + if ($service.State -eq "Running") + { + $result = $service.StopService().ReturnValue + if ($result) + { + Echo "Failed to stop the 'wuauserv' service. The return value was $result." + } + else {Echo "Success to stop the 'wuauserv' service."} + } + } + else {Echo "The 'wuauserv' service is already disabled."} +} +else {Echo "Failed to retrieve the service 'wuauserv'."} + +#Disable Automatic Windows Updates +Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU -Name AUOptions -Value 1 + +# exclude .ctf file from windows defender scanning +#Add-MpPreference -ExclusionExtension ".ctf" + +#Get-ChildItem "C:\Program Files\MATLAB\MATLAB Runtime\" -Directory | +# ForEach-Object { +# Echo ($_.FullName + '\bin\win64\extractCTF.exe') +# Add-MpPreference -ExclusionProcess ($_.FullName + '\bin\win64\extractCTF.exe') +# } + +Stop-Service -Name Spooler -Force + +Set-Service -Name Spooler -StartupType Disabled + +# Execute reboot required for domain join +#Restart-Computer \ No newline at end of file diff --git a/releases/R2024a/scripts/scriptScaleSet.sh b/releases/R2024a/scripts/scriptScaleSet.sh new file mode 100644 index 0000000..6b4f442 --- /dev/null +++ b/releases/R2024a/scripts/scriptScaleSet.sh @@ -0,0 +1,23 @@ +#! /bin/bash +#Put your extra commands here +LOG_DIR=/var/log/custom_script +LOG_FILE=$LOG_DIR/custom_script.log + +# Create log directory and file +sudo mkdir -p $LOG_DIR +sudo touch $LOG_FILE +sudo chmod 666 $LOG_FILE + +# Update package lists and log errors +sudo apt-get update 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt update failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +# Install openssh-server and log errors +sudo apt-get install -y openssh-server 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt install failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +ls \ No newline at end of file diff --git a/releases/R2024b/scripts/initAdminVM.sh b/releases/R2024b/scripts/initAdminVM.sh new file mode 100644 index 0000000..84558b9 --- /dev/null +++ b/releases/R2024b/scripts/initAdminVM.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +WORKSPACE=/opt/mathworks + +LOG_DIR=/var/log/custom_script +LOG_FILE=$LOG_DIR/custom_script.log + +# Create log directory and file +sudo mkdir -p $LOG_DIR +sudo touch $LOG_FILE +sudo chmod 666 $LOG_FILE + +# $0 is the file name + +storageAccountName="$1" +dbConnectionString="$2" +mpsEndpoint="$3" +CIDRRange="$4" +cloudPlatform="$5" +osPlatform="$6" +ikey="$7" +resourceGroup="$8" +subscriptionID="$9" +userName="${10}" +passWord="${11}" +redisName="${12}" +gatewayPrivateIP="${13}" +offerType="${14}" + +azEnvironment=$(sudo curl -s -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2021-02-01" | jq -r '.compute.azEnvironment') + +echo "$storageAccountName" +echo "$dbConnectionString" +echo "$mpsEndpoint" +echo "$CIDRRange" +echo "$cloudPlatform" +echo "$osPlatform" +echo "$ikey" +echo "$resourceGroup" +echo "$subscriptionID" +echo "$userName" +echo "$redisName" +echo "$gatewayPrivateIP" +echo "$offerType" +echo "$azEnvironment" + +JSONCMD=' +{ + "storageAccountName": "'"$storageAccountName"'", + "dbConnectionString": "'"$dbConnectionString"'", + "mpsEndPoint": "'"$mpsEndpoint"'", + "CIDRRange": "'"$CIDRRange"'", + "cloudPlatform": "'"$cloudPlatform"'", + "osPlatform": "'"$osPlatform"'", + "ikey": "'"$ikey"'", + "resourceGroup": "'"$resourceGroup"'", + "subscriptionID": "'"$subscriptionID"'", + "redisCacheName": "'"$redisName"'", + "gatewayPrivateIP": "'"$gatewayPrivateIP"'", + "offerType": "'"$offerType"'", + "azEnvironment": "'"$azEnvironment"'" +} +' + +destination=$WORKSPACE/controller/dynamicOptions.json +rm $destination + +echo $JSONCMD >> $destination + +echo "Written Config File successfully" + +cd $WORKSPACE/cloud/main +node $WORKSPACE/cloud/main/server/hash_pw.js "${userName}" "${passWord}" "${passWord}" + +echo "Written sudo passwd successfully" + +cp ./.shadow ./bin/. + +echo "Copied shadow file" + +# Update package lists and log errors +sudo apt-get update 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt update failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +# Install openssh-server and log errors +sudo apt-get install -y openssh-server 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt install failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +systemctl restart refarchcontroller + +echo "Restarted daemon successfully!" + + +# chown to this user /opt/mathworks +# Clear history +history -c + +echo "Cleared History!" +# File Location +#https://mwstorage24.blob.core.windows.net/azuretemplates/initVm.sh \ No newline at end of file diff --git a/releases/R2024b/scripts/scriptScaleSet.ps1 b/releases/R2024b/scripts/scriptScaleSet.ps1 new file mode 100644 index 0000000..13679b3 --- /dev/null +++ b/releases/R2024b/scripts/scriptScaleSet.ps1 @@ -0,0 +1,55 @@ +<# + .SYNOPSIS + This Script runs on MPS instances +#> + +# Param ( +# [Parameter(Mandatory=$False)][string]$SERVER_MODE +# ) + +# disable automatic updates +Echo "disabling automatic updates" +$service = Get-WmiObject Win32_Service -Filter 'Name="wuauserv"' +if ($service) +{ + if ($service.StartMode -ne "Disabled") + { + $result = $service.ChangeStartMode("Disabled").ReturnValue + if($result) + { + Echo "Failed to disable the 'wuauserv' service. The return value was $result." + } + else {Echo "Success to disable the 'wuauserv' service."} + + if ($service.State -eq "Running") + { + $result = $service.StopService().ReturnValue + if ($result) + { + Echo "Failed to stop the 'wuauserv' service. The return value was $result." + } + else {Echo "Success to stop the 'wuauserv' service."} + } + } + else {Echo "The 'wuauserv' service is already disabled."} +} +else {Echo "Failed to retrieve the service 'wuauserv'."} + +#Disable Automatic Windows Updates +Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU -Name AUOptions -Value 1 + +# exclude .ctf file from windows defender scanning +#Add-MpPreference -ExclusionExtension ".ctf" + +#Get-ChildItem "C:\Program Files\MATLAB\MATLAB Runtime\" -Directory | +# ForEach-Object { +# Echo ($_.FullName + '\bin\win64\extractCTF.exe') +# Add-MpPreference -ExclusionProcess ($_.FullName + '\bin\win64\extractCTF.exe') +# } + +Stop-Service -Name Spooler -Force + +Set-Service -Name Spooler -StartupType Disabled + +# Execute reboot required for domain join +#Restart-Computer \ No newline at end of file diff --git a/releases/R2024b/scripts/scriptScaleSet.sh b/releases/R2024b/scripts/scriptScaleSet.sh new file mode 100644 index 0000000..6b4f442 --- /dev/null +++ b/releases/R2024b/scripts/scriptScaleSet.sh @@ -0,0 +1,23 @@ +#! /bin/bash +#Put your extra commands here +LOG_DIR=/var/log/custom_script +LOG_FILE=$LOG_DIR/custom_script.log + +# Create log directory and file +sudo mkdir -p $LOG_DIR +sudo touch $LOG_FILE +sudo chmod 666 $LOG_FILE + +# Update package lists and log errors +sudo apt-get update 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt update failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +# Install openssh-server and log errors +sudo apt-get install -y openssh-server 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt install failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +ls \ No newline at end of file diff --git a/releases/R2025a/scripts/initAdminVM.sh b/releases/R2025a/scripts/initAdminVM.sh new file mode 100644 index 0000000..84558b9 --- /dev/null +++ b/releases/R2025a/scripts/initAdminVM.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +WORKSPACE=/opt/mathworks + +LOG_DIR=/var/log/custom_script +LOG_FILE=$LOG_DIR/custom_script.log + +# Create log directory and file +sudo mkdir -p $LOG_DIR +sudo touch $LOG_FILE +sudo chmod 666 $LOG_FILE + +# $0 is the file name + +storageAccountName="$1" +dbConnectionString="$2" +mpsEndpoint="$3" +CIDRRange="$4" +cloudPlatform="$5" +osPlatform="$6" +ikey="$7" +resourceGroup="$8" +subscriptionID="$9" +userName="${10}" +passWord="${11}" +redisName="${12}" +gatewayPrivateIP="${13}" +offerType="${14}" + +azEnvironment=$(sudo curl -s -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2021-02-01" | jq -r '.compute.azEnvironment') + +echo "$storageAccountName" +echo "$dbConnectionString" +echo "$mpsEndpoint" +echo "$CIDRRange" +echo "$cloudPlatform" +echo "$osPlatform" +echo "$ikey" +echo "$resourceGroup" +echo "$subscriptionID" +echo "$userName" +echo "$redisName" +echo "$gatewayPrivateIP" +echo "$offerType" +echo "$azEnvironment" + +JSONCMD=' +{ + "storageAccountName": "'"$storageAccountName"'", + "dbConnectionString": "'"$dbConnectionString"'", + "mpsEndPoint": "'"$mpsEndpoint"'", + "CIDRRange": "'"$CIDRRange"'", + "cloudPlatform": "'"$cloudPlatform"'", + "osPlatform": "'"$osPlatform"'", + "ikey": "'"$ikey"'", + "resourceGroup": "'"$resourceGroup"'", + "subscriptionID": "'"$subscriptionID"'", + "redisCacheName": "'"$redisName"'", + "gatewayPrivateIP": "'"$gatewayPrivateIP"'", + "offerType": "'"$offerType"'", + "azEnvironment": "'"$azEnvironment"'" +} +' + +destination=$WORKSPACE/controller/dynamicOptions.json +rm $destination + +echo $JSONCMD >> $destination + +echo "Written Config File successfully" + +cd $WORKSPACE/cloud/main +node $WORKSPACE/cloud/main/server/hash_pw.js "${userName}" "${passWord}" "${passWord}" + +echo "Written sudo passwd successfully" + +cp ./.shadow ./bin/. + +echo "Copied shadow file" + +# Update package lists and log errors +sudo apt-get update 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt update failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +# Install openssh-server and log errors +sudo apt-get install -y openssh-server 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt install failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +systemctl restart refarchcontroller + +echo "Restarted daemon successfully!" + + +# chown to this user /opt/mathworks +# Clear history +history -c + +echo "Cleared History!" +# File Location +#https://mwstorage24.blob.core.windows.net/azuretemplates/initVm.sh \ No newline at end of file diff --git a/releases/R2025a/scripts/scriptScaleSet.ps1 b/releases/R2025a/scripts/scriptScaleSet.ps1 new file mode 100644 index 0000000..13679b3 --- /dev/null +++ b/releases/R2025a/scripts/scriptScaleSet.ps1 @@ -0,0 +1,55 @@ +<# + .SYNOPSIS + This Script runs on MPS instances +#> + +# Param ( +# [Parameter(Mandatory=$False)][string]$SERVER_MODE +# ) + +# disable automatic updates +Echo "disabling automatic updates" +$service = Get-WmiObject Win32_Service -Filter 'Name="wuauserv"' +if ($service) +{ + if ($service.StartMode -ne "Disabled") + { + $result = $service.ChangeStartMode("Disabled").ReturnValue + if($result) + { + Echo "Failed to disable the 'wuauserv' service. The return value was $result." + } + else {Echo "Success to disable the 'wuauserv' service."} + + if ($service.State -eq "Running") + { + $result = $service.StopService().ReturnValue + if ($result) + { + Echo "Failed to stop the 'wuauserv' service. The return value was $result." + } + else {Echo "Success to stop the 'wuauserv' service."} + } + } + else {Echo "The 'wuauserv' service is already disabled."} +} +else {Echo "Failed to retrieve the service 'wuauserv'."} + +#Disable Automatic Windows Updates +Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU -Name AUOptions -Value 1 + +# exclude .ctf file from windows defender scanning +#Add-MpPreference -ExclusionExtension ".ctf" + +#Get-ChildItem "C:\Program Files\MATLAB\MATLAB Runtime\" -Directory | +# ForEach-Object { +# Echo ($_.FullName + '\bin\win64\extractCTF.exe') +# Add-MpPreference -ExclusionProcess ($_.FullName + '\bin\win64\extractCTF.exe') +# } + +Stop-Service -Name Spooler -Force + +Set-Service -Name Spooler -StartupType Disabled + +# Execute reboot required for domain join +#Restart-Computer \ No newline at end of file diff --git a/releases/R2025a/scripts/scriptScaleSet.sh b/releases/R2025a/scripts/scriptScaleSet.sh new file mode 100644 index 0000000..6b4f442 --- /dev/null +++ b/releases/R2025a/scripts/scriptScaleSet.sh @@ -0,0 +1,23 @@ +#! /bin/bash +#Put your extra commands here +LOG_DIR=/var/log/custom_script +LOG_FILE=$LOG_DIR/custom_script.log + +# Create log directory and file +sudo mkdir -p $LOG_DIR +sudo touch $LOG_FILE +sudo chmod 666 $LOG_FILE + +# Update package lists and log errors +sudo apt-get update 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt update failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +# Install openssh-server and log errors +sudo apt-get install -y openssh-server 2>> $LOG_FILE +if [ $? -ne 0 ]; then + echo "apt install failed. Check the log file at $LOG_FILE" | tee -a $LOG_FILE +fi + +ls \ No newline at end of file From 4e187e56d3447b04606007961d76ed048b506e97 Mon Sep 17 00:00:00 2001 From: Mahima Bakshi Date: Wed, 24 Sep 2025 11:05:44 -0400 Subject: [PATCH 2/7] Updated the reference of script folder to staging branch --- releases/R2023b/templates/azuredeploy23b.json | 2 +- releases/R2024a/templates/azuredeploy24a.json | 2 +- releases/R2024b/templates/azuredeploy24b.json | 2 +- releases/R2025a/templates/azuredeploy25a.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/R2023b/templates/azuredeploy23b.json b/releases/R2023b/templates/azuredeploy23b.json index 612a946..0d4bcaa 100644 --- a/releases/R2023b/templates/azuredeploy23b.json +++ b/releases/R2023b/templates/azuredeploy23b.json @@ -282,7 +282,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/master/releases/R2023b/scripts/", + "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2023b/scripts", "_artifactsLocationSasToken":"" }, "resources": [ diff --git a/releases/R2024a/templates/azuredeploy24a.json b/releases/R2024a/templates/azuredeploy24a.json index 2375ab9..0ee6415 100644 --- a/releases/R2024a/templates/azuredeploy24a.json +++ b/releases/R2024a/templates/azuredeploy24a.json @@ -282,7 +282,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/master/releases/R2024a/scripts/", + "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2024a/scripts", "_artifactsLocationSasToken":"" }, "resources": [ diff --git a/releases/R2024b/templates/azuredeploy24b.json b/releases/R2024b/templates/azuredeploy24b.json index 83e2c64..0e92134 100644 --- a/releases/R2024b/templates/azuredeploy24b.json +++ b/releases/R2024b/templates/azuredeploy24b.json @@ -282,7 +282,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/master/releases/R2024b/scripts/", + "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2024b/scripts", "_artifactsLocationSasToken":"" }, "resources": [ diff --git a/releases/R2025a/templates/azuredeploy25a.json b/releases/R2025a/templates/azuredeploy25a.json index 3a1d79f..cd29a5f 100644 --- a/releases/R2025a/templates/azuredeploy25a.json +++ b/releases/R2025a/templates/azuredeploy25a.json @@ -305,7 +305,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation": "https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/master/releases/R2025a/scripts/", + "_artifactsLocation": "https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2025a/scripts", "_artifactsLocationSasToken": "" }, "resources": [ From 8f4c635d19e00196f1ea69a5ceaec23ce39758dc Mon Sep 17 00:00:00 2001 From: Mahima Bakshi Date: Wed, 24 Sep 2025 11:38:21 -0400 Subject: [PATCH 3/7] Corrected script links --- releases/R2023b/templates/azuredeploy23b.json | 2 +- releases/R2024a/templates/azuredeploy24a.json | 2 +- releases/R2024b/templates/azuredeploy24b.json | 2 +- releases/R2025a/templates/azuredeploy25a.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/R2023b/templates/azuredeploy23b.json b/releases/R2023b/templates/azuredeploy23b.json index 0d4bcaa..009f843 100644 --- a/releases/R2023b/templates/azuredeploy23b.json +++ b/releases/R2023b/templates/azuredeploy23b.json @@ -282,7 +282,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2023b/scripts", + "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2023b/scripts/", "_artifactsLocationSasToken":"" }, "resources": [ diff --git a/releases/R2024a/templates/azuredeploy24a.json b/releases/R2024a/templates/azuredeploy24a.json index 0ee6415..4fa8cac 100644 --- a/releases/R2024a/templates/azuredeploy24a.json +++ b/releases/R2024a/templates/azuredeploy24a.json @@ -282,7 +282,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2024a/scripts", + "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2024a/scripts/", "_artifactsLocationSasToken":"" }, "resources": [ diff --git a/releases/R2024b/templates/azuredeploy24b.json b/releases/R2024b/templates/azuredeploy24b.json index 0e92134..a0d0784 100644 --- a/releases/R2024b/templates/azuredeploy24b.json +++ b/releases/R2024b/templates/azuredeploy24b.json @@ -282,7 +282,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2024b/scripts", + "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2024b/scripts/", "_artifactsLocationSasToken":"" }, "resources": [ diff --git a/releases/R2025a/templates/azuredeploy25a.json b/releases/R2025a/templates/azuredeploy25a.json index cd29a5f..04fc43c 100644 --- a/releases/R2025a/templates/azuredeploy25a.json +++ b/releases/R2025a/templates/azuredeploy25a.json @@ -305,7 +305,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation": "https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2025a/scripts", + "_artifactsLocation": "https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2025a/scripts/", "_artifactsLocationSasToken": "" }, "resources": [ From 785f585e052c7ddb4b4d23676f675c32738325c4 Mon Sep 17 00:00:00 2001 From: Mahima Bakshi Date: Wed, 24 Sep 2025 15:22:24 -0400 Subject: [PATCH 4/7] Updated new VNet healthcheck from master to staging branch --- healthcheck/test_healthcheck_new_vnet.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/healthcheck/test_healthcheck_new_vnet.py b/healthcheck/test_healthcheck_new_vnet.py index c31d00b..618fb45 100644 --- a/healthcheck/test_healthcheck_new_vnet.py +++ b/healthcheck/test_healthcheck_new_vnet.py @@ -40,14 +40,17 @@ def main(tenant_id_arg, client_id_arg, client_secret_arg, subscription_id_arg, u latest_releases = [ re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-1], - re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-2] + re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-2], + re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-3], + re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-4], + re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-5] ] for i in range(2): matlab_release = latest_releases[i] print("Testing Health Check Release: " + matlab_release + "\n") github_base_dir = "https://raw.githubusercontent.com/mathworks-ref-arch" jsonpath = f"{matlab_release}/templates/azuredeploy{matlab_release[3:]}.json" - template_name = f"{github_base_dir}/{ref_arch_name}/master/releases/{jsonpath}" + template_name = f"{github_base_dir}/{ref_arch_name}/staging/releases/{jsonpath}" resource_group_name = "mps-refarch-health-check-" + matlab_release + date.today().strftime('%m-%d-%Y') + str(random.randint(1,101)) ct = datetime.datetime.now() print("Date time before deployment of stack:-", ct) From 8b673e329f6d6135d9156938296d1f739ece37d5 Mon Sep 17 00:00:00 2001 From: Mahima Bakshi Date: Wed, 24 Sep 2025 15:54:03 -0400 Subject: [PATCH 5/7] Altered the range of testing --- healthcheck/test_healthcheck_new_vnet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/healthcheck/test_healthcheck_new_vnet.py b/healthcheck/test_healthcheck_new_vnet.py index 618fb45..421befb 100644 --- a/healthcheck/test_healthcheck_new_vnet.py +++ b/healthcheck/test_healthcheck_new_vnet.py @@ -45,7 +45,7 @@ def main(tenant_id_arg, client_id_arg, client_secret_arg, subscription_id_arg, u re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-4], re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-5] ] - for i in range(2): + for i in range(5): matlab_release = latest_releases[i] print("Testing Health Check Release: " + matlab_release + "\n") github_base_dir = "https://raw.githubusercontent.com/mathworks-ref-arch" From 329b8a174b4412bf5fd2fec34b0f07af452d4234 Mon Sep 17 00:00:00 2001 From: Mahima Bakshi Date: Wed, 24 Sep 2025 19:27:19 -0400 Subject: [PATCH 6/7] Reverted back healthchecks from staging to master --- healthcheck/test_healthcheck_new_vnet.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/healthcheck/test_healthcheck_new_vnet.py b/healthcheck/test_healthcheck_new_vnet.py index 421befb..c31d00b 100644 --- a/healthcheck/test_healthcheck_new_vnet.py +++ b/healthcheck/test_healthcheck_new_vnet.py @@ -40,17 +40,14 @@ def main(tenant_id_arg, client_id_arg, client_secret_arg, subscription_id_arg, u latest_releases = [ re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-1], - re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-2], - re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-3], - re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-4], - re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-5] + re.findall(r"releases/(R\d{4}[ab]\b)", res.text)[-2] ] - for i in range(5): + for i in range(2): matlab_release = latest_releases[i] print("Testing Health Check Release: " + matlab_release + "\n") github_base_dir = "https://raw.githubusercontent.com/mathworks-ref-arch" jsonpath = f"{matlab_release}/templates/azuredeploy{matlab_release[3:]}.json" - template_name = f"{github_base_dir}/{ref_arch_name}/staging/releases/{jsonpath}" + template_name = f"{github_base_dir}/{ref_arch_name}/master/releases/{jsonpath}" resource_group_name = "mps-refarch-health-check-" + matlab_release + date.today().strftime('%m-%d-%Y') + str(random.randint(1,101)) ct = datetime.datetime.now() print("Date time before deployment of stack:-", ct) From 1bc5fb3b32c56998dc4e447eebdb21d4d2ff9d35 Mon Sep 17 00:00:00 2001 From: Mahima Bakshi Date: Wed, 24 Sep 2025 19:32:21 -0400 Subject: [PATCH 7/7] Reverted back template links from staging to master --- releases/R2023b/templates/azuredeploy23b.json | 2 +- releases/R2024a/templates/azuredeploy24a.json | 2 +- releases/R2024b/templates/azuredeploy24b.json | 2 +- releases/R2025a/templates/azuredeploy25a.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/R2023b/templates/azuredeploy23b.json b/releases/R2023b/templates/azuredeploy23b.json index 009f843..612a946 100644 --- a/releases/R2023b/templates/azuredeploy23b.json +++ b/releases/R2023b/templates/azuredeploy23b.json @@ -282,7 +282,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2023b/scripts/", + "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/master/releases/R2023b/scripts/", "_artifactsLocationSasToken":"" }, "resources": [ diff --git a/releases/R2024a/templates/azuredeploy24a.json b/releases/R2024a/templates/azuredeploy24a.json index 4fa8cac..2375ab9 100644 --- a/releases/R2024a/templates/azuredeploy24a.json +++ b/releases/R2024a/templates/azuredeploy24a.json @@ -282,7 +282,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2024a/scripts/", + "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/master/releases/R2024a/scripts/", "_artifactsLocationSasToken":"" }, "resources": [ diff --git a/releases/R2024b/templates/azuredeploy24b.json b/releases/R2024b/templates/azuredeploy24b.json index a0d0784..83e2c64 100644 --- a/releases/R2024b/templates/azuredeploy24b.json +++ b/releases/R2024b/templates/azuredeploy24b.json @@ -282,7 +282,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2024b/scripts/", + "_artifactsLocation":"https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/master/releases/R2024b/scripts/", "_artifactsLocationSasToken":"" }, "resources": [ diff --git a/releases/R2025a/templates/azuredeploy25a.json b/releases/R2025a/templates/azuredeploy25a.json index 04fc43c..3a1d79f 100644 --- a/releases/R2025a/templates/azuredeploy25a.json +++ b/releases/R2025a/templates/azuredeploy25a.json @@ -305,7 +305,7 @@ "value": "[parameters('UsePublicIPAddresses')]" } }, - "_artifactsLocation": "https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/refs/heads/staging/releases/R2025a/scripts/", + "_artifactsLocation": "https://raw.githubusercontent.com/mathworks-ref-arch/matlab-production-server-on-azure/master/releases/R2025a/scripts/", "_artifactsLocationSasToken": "" }, "resources": [