├── .gitignore ├── ASR-for-SAP-HANA-pre-and-post-scripts ├── Readme.md ├── asr4hana_post.sh ├── asr4hana_pre.sh └── customscript.sh ├── AvZone-Latency-Test ├── AvZone-Latency-Test.ps1 └── Readme.md ├── AvZone-Mapping ├── avzone-mapping.ps1 └── readme.md ├── Azure-NVMe-Utils ├── Azure-NVMe-Conversion.ps1 ├── Changelog.md ├── Readme.md └── version.json ├── AzureCloudExcellenceforSAP ├── ACES_AzSAP_Deployment_Checklist.xlsx ├── DeploymentChecklist │ ├── AzSAP_Deployment_Checklist.xlsx │ └── README.md ├── InventoryChecksForSAP │ ├── Azure_Inventory_Checks_SAP_May2022.workbook │ └── README.md ├── QualityCheckv4.zip ├── azsapsca │ ├── README.md │ └── patterns │ │ └── AZSAP │ │ ├── cli-ban.pl │ │ ├── sbdazure-00001.pl │ │ ├── sbdazure-00002.pl │ │ ├── sbdwait-00001.pl │ │ ├── tcptimestamps.py │ │ ├── token.pl │ │ └── totem.pl └── azscadeploy │ ├── README.md │ ├── ansible.cfg │ ├── inventory.ini.sample │ ├── sca.tf │ ├── sca.yml │ └── scadeploy.sh ├── CODE_OF_CONDUCT.md ├── Costmanagement-Dashboard ├── Contoso - Azure Cost Management - GitHub Template - v3.pbit ├── Images │ ├── Contoso-Backgroud-Image1.PNG │ ├── Contoso-Backgroud-Image2.PNG │ ├── Contoso-Backgroud-Image3.PNG │ ├── contoso-logo-black.png │ └── contoso_logo.png ├── Readme.md ├── Release-Notes.pdf ├── Subscription Metadata │ ├── Azure Advisor.csv │ ├── Azure Subscriptions.xlsx │ └── Subscription Metadata.xlsx ├── Theme │ └── Contoso-Theme.json └── readme-images │ ├── applications.jpg │ ├── cost-management-metadata-model.jpg │ ├── costcenter.jpg │ ├── costcomparison.jpg │ ├── github-template-getting-started.jpg │ ├── home.jpg │ ├── meter-detail.jpg │ ├── networking.jpg │ ├── price-sheet.jpg │ ├── regions.jpg │ ├── reserverations.jpg │ └── summary.jpg ├── Get-VM-by-Zones ├── README.md └── get-vms-by-zone.ps1 ├── LICENSE ├── Linux-Always-On-Diagnostics-for-NFS ├── Readme.md ├── sap-aod-0.1.2beta-0.1.2beta.x86_64.rpm └── sha256sums ├── LinuxBestPractices.md ├── Measure-Successfactor-URL-Latency ├── Measure-SFDatacenterResponseTime.ps1 └── README.md ├── Move-VM-from-AvSet-to-AvZone ├── Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper │ ├── Pictures │ │ └── media │ │ │ ├── image1.png │ │ │ ├── image10.png │ │ │ ├── image11.png │ │ │ ├── image12.png │ │ │ ├── image13.png │ │ │ ├── image14.png │ │ │ ├── image15.png │ │ │ ├── image16.png │ │ │ ├── image17.png │ │ │ ├── image18.png │ │ │ ├── image2.png │ │ │ ├── image3.png │ │ │ ├── image30.png │ │ │ ├── image4.png │ │ │ ├── image41.png │ │ │ ├── image5.png │ │ │ ├── image6.png │ │ │ ├── image7.png │ │ │ ├── image8.png │ │ │ └── image9.png │ └── Readme.md ├── Pictures │ └── media │ │ ├── image1.png │ │ ├── image10.png │ │ ├── image11.png │ │ ├── image12.png │ │ ├── image13.png │ │ ├── image14.png │ │ ├── image15.png │ │ ├── image16.png │ │ ├── image17.png │ │ ├── image18.png │ │ ├── image2.png │ │ ├── image3.png │ │ ├── image30.png │ │ ├── image4.png │ │ ├── image41.png │ │ ├── image5.png │ │ ├── image6.png │ │ ├── image7.png │ │ ├── image8.png │ │ └── image9.png └── Readme.md ├── NVMe-Preflight-Check ├── 88-azure-nvme-data-disk.rules ├── azure-nvme-VM-update.ps1 ├── azure-nvme-preflight-check.sh └── readme.md ├── QualityCheck.txt.ps1 ├── QualityCheck ├── MultiRun-Template.csv ├── MultiRun-Template.xlsx ├── QualityCheck.json ├── QualityCheck.ps1 ├── Readme.md ├── SSH-Check │ └── check-ssh-connectivity-user-password.ps1 ├── changelog.md ├── images │ └── qualitycheck-connect.jpg ├── sample │ └── hana-sample.html └── version.json ├── README.md ├── SAP-HANA-NUMA-tempfs ├── readme.md └── set_hana_tmpfs-0.1.1-1.x86_64.rpm ├── SAPCATPublish.code-workspace ├── SECURITY.md ├── Start-Stop-Automation ├── Automation-Backend │ ├── Pictures │ │ └── media │ │ │ ├── Image80.png │ │ │ ├── Image81.png │ │ │ ├── Image82.png │ │ │ ├── Image83.png │ │ │ ├── Image84.png │ │ │ ├── Image85.png │ │ │ ├── Image86.png │ │ │ ├── Image87.png │ │ │ ├── Image88.png │ │ │ ├── Image89.png │ │ │ ├── Image90.png │ │ │ ├── Image91.png │ │ │ ├── Image92.png │ │ │ ├── Image93.png │ │ │ ├── Image94.png │ │ │ ├── Image95.png │ │ │ ├── image1.png │ │ │ ├── image10.png │ │ │ ├── image11.png │ │ │ ├── image12.png │ │ │ ├── image13.png │ │ │ ├── image14.png │ │ │ ├── image15.png │ │ │ ├── image16.png │ │ │ ├── image17.png │ │ │ ├── image18.png │ │ │ ├── image19.png │ │ │ ├── image2.png │ │ │ ├── image20.png │ │ │ ├── image21.png │ │ │ ├── image22.png │ │ │ ├── image23.png │ │ │ ├── image24.png │ │ │ ├── image25.png │ │ │ ├── image26.png │ │ │ ├── image27.png │ │ │ ├── image28.png │ │ │ ├── image29.png │ │ │ ├── image3.png │ │ │ ├── image30.png │ │ │ ├── image31.png │ │ │ ├── image35.png │ │ │ ├── image36.png │ │ │ ├── image37.png │ │ │ ├── image38.png │ │ │ ├── image39.png │ │ │ ├── image4.png │ │ │ ├── image40.png │ │ │ ├── image41.png │ │ │ ├── image42.png │ │ │ ├── image43.png │ │ │ ├── image5.png │ │ │ ├── image50.png │ │ │ ├── image51.png │ │ │ ├── image52.png │ │ │ ├── image53.png │ │ │ ├── image54.png │ │ │ ├── image55.png │ │ │ ├── image56.png │ │ │ ├── image57.png │ │ │ ├── image58.png │ │ │ ├── image59.png │ │ │ ├── image6.png │ │ │ ├── image60.png │ │ │ ├── image61.png │ │ │ ├── image62.png │ │ │ ├── image63.png │ │ │ ├── image64.png │ │ │ ├── image65.png │ │ │ ├── image66.png │ │ │ ├── image67.png │ │ │ ├── image68.png │ │ │ ├── image69.png │ │ │ ├── image7.png │ │ │ ├── image70.png │ │ │ ├── image71.png │ │ │ ├── image72.png │ │ │ ├── image73.png │ │ │ ├── image74.png │ │ │ ├── image75.png │ │ │ ├── image76.png │ │ │ ├── image77.png │ │ │ ├── image8.png │ │ │ └── image9.png │ ├── README.md │ ├── Runbooks │ │ ├── List-SAPHANAInstance.ps1 │ │ ├── List-SAPSystemInstances.ps1 │ │ ├── Start-SAPApplicationServer.ps1 │ │ ├── Start-SAPHANA.ps1 │ │ ├── Start-SAPSystem.ps1 │ │ ├── Stop-SAPApplicationServer.ps1 │ │ ├── Stop-SAPHANA.ps1 │ │ ├── Stop-SAPSystem.ps1 │ │ ├── Tag-SAPCentralJavaSystemHANA.ps1 │ │ ├── Tag-SAPCentralSystemHANA.ps1 │ │ ├── Tag-SAPCentralSystemSQLServer.ps1 │ │ ├── Tag-SAPStandaloneHANA.ps1 │ │ ├── Tag-SAPStandaloneSQLServer.ps1 │ │ ├── Tag-SAPSystemASCSInstanceLinux.ps1 │ │ ├── Tag-SAPSystemASCSInstanceWindows.ps1 │ │ ├── Tag-SAPSystemDVEBMGSInstanceLinux.ps1 │ │ ├── Tag-SAPSystemDVEBMGSInstanceWindows.ps1 │ │ ├── Tag-SAPSystemDialogInstanceLinux.ps1 │ │ ├── Tag-SAPSystemDialogInstanceWindows.ps1 │ │ ├── Tag-SAPSystemJavaApplicationServerInstanceLinux.ps1 │ │ ├── Tag-SAPSystemJavaApplicationServerInstanceWindows.ps1 │ │ ├── Tag-SAPSystemSCSInstanceLinux.ps1 │ │ ├── Tag-SAPSystemSCSInstanceWindows.ps1 │ │ └── Tag-SAPSystemStandaloneHANA.ps1 │ └── SAPAzurePowerShellModules │ │ ├── SAPAzurePowerShellModules.psd1 │ │ └── SAPAzurePowerShellModules.psm1 ├── PowerApp-Frontend │ ├── NotifySAPLabUserAboutShutdown.zip │ ├── README.MD │ ├── ReadPowerAppConfig.json │ ├── SAP-SID-Controller.zip │ ├── SignUpUsers2SAPController.zip │ ├── StartScheduledSIDs.zip │ └── pictures │ │ ├── PowerAppStartEvent.png │ │ ├── logicApp.png │ │ ├── table-connection.png │ │ └── tablestorageview.png └── README.md ├── Tools ├── Tools&Framework ├── ACES_AzSAP_Deployment_Checklist.xlsx ├── DeploymentChecklist │ ├── AzSAP_Deployment_Checklist.xlsx │ └── README.md ├── InventoryChecksForSAP │ ├── Inventory Checks for SAP Public.workbook │ └── README.md ├── README.md ├── azsapsca │ ├── README.md │ └── patterns │ │ └── AZSAP │ │ ├── cli-ban.pl │ │ ├── sbdazure-00001.pl │ │ ├── sbdazure-00002.pl │ │ ├── sbdwait-00001.pl │ │ ├── tcptimestamps.py │ │ ├── token.pl │ │ └── totem.pl └── azscadeploy │ ├── README.md │ ├── ansible.cfg │ ├── inventory.ini.sample │ ├── sca.tf │ ├── sca.yml │ └── scadeploy.sh └── legacy ├── ARMTemplates ├── AzKeyVaultID.png ├── CrossZonal.png ├── DevTest.png ├── Landscapes │ ├── README.MD │ └── createNewEnvironment.ps1 ├── NotZonal.png ├── README.MD ├── Zonal.png ├── baseInfrastructure │ ├── asg.json │ ├── asg.parameters.json │ ├── keyvault.json │ ├── keyvault.parameters.json │ ├── network.json │ ├── network.parameters.json │ ├── ppgavset.json │ └── ppgavset.parameters.json ├── deploymentScripts │ ├── README.MD │ ├── deployInfrastructure.ps1 │ ├── deployLandscape.ps1 │ └── deployNetwork.ps1 └── serverTemplates │ ├── ASCSVM.json │ ├── AppVM.json │ ├── README.md │ ├── WDVM.json │ ├── anyDBProdVM.json │ ├── disks │ ├── AppVMDisks.json │ ├── anyDBProdVMDisks.json │ ├── hanaDevVMDisks.json │ ├── hanaProdVMDisks.json │ └── lvm │ │ ├── anydb-lvm-10datadisks2logdisks.sh │ │ ├── anydb-lvm-13datadisks3logdisks.sh │ │ ├── anydb-lvm-2datadisks.sh │ │ ├── anydb-lvm-3datadisks2logdisks.sh │ │ ├── anydb-lvm-4datadisks2logdisks.sh │ │ ├── anydb-lvm-5datadisks2logdisks.sh │ │ ├── anydb-lvm-8datadisks2logdisks.sh │ │ ├── hana-lvm-3datadisks2logdisks.sh │ │ ├── hana-lvm-3datadisks2logdisks2backupdisks.sh │ │ ├── hana-lvm-3datadisks2logdisks3backupdisks.sh │ │ ├── hana-lvm-4datadisks2logdisks2backupdisks.sh │ │ ├── hana-lvm-4datadisks2logdisks3backupdisks.sh │ │ ├── hana-lvm-5datadisks2logdisks4backupdisks.sh │ │ ├── hana-lvm-8datadisks2logdisks4backupdisks.sh │ │ ├── hanadev-lvm-2datadisks2backupdisks.sh │ │ ├── hanadev-lvm-3datadisks.sh │ │ ├── hanadev-lvm-3datadisks3backupdisks.sh │ │ ├── hanadev-lvm-4datadisks3backupdisks.sh │ │ ├── hanadev-lvm-4datadisks4backupdisks.sh │ │ ├── hanadev-lvm-5datadisks2backupdisks.sh │ │ └── hanadev-lvm-8datadisks4backupdisks.sh │ ├── hanaDevVM.json │ ├── hanaProdVM.json │ └── parameterFiles │ ├── ASCSVM.parameters.json │ ├── README.md │ ├── WDVM.parameters.json │ ├── anyDBProdVM.parameters.json │ ├── appVM.parameters.json │ ├── hanaDevVM.parameters.json │ └── hanaProdVm.parameters.json ├── AssessmentScripts ├── README.MD ├── VMUtilities.psd1 └── VMUtilities.psm1 ├── AzureImageBuilder ├── SLESNetWeaverServerImagFromSharedImageGallery.json ├── SLESNetWeaverServerImageFromManagedImage.json ├── SLESNetWeaverServerImageFromMarketPlace.json ├── aibRoleImageCreation.json ├── aibRoleNetworking.json ├── check-Image-Build-Status.ps1 ├── create-Infrastructure.ps1 ├── create-Shared-Custom-Image.ps1 ├── demoGalleryImageFromCustomImage.ps1 ├── demoGalleryImageFromMarketPlace.ps1 ├── demoGalleryImageNewVersionFromGalleryImage.ps1 └── readme.md ├── Move-AvSet-to-PPG ├── README.md └── Update-AvSet-PPG.png ├── Move-VM-from-AvSet-to-AvZone ├── Move-VM-from-AvSet-to-AvZone.ps1 └── README.md ├── Move-VM-to-AvSet ├── Move-VM-to-AvSet.ps1 ├── README.md └── Update-VM-PPG.png ├── Move-VM-to-PPG ├── Move-VM-to-PPG.ps1 ├── README.md └── Update-VM-PPG.png ├── Move-VMs ├── Check-CopyOperation.ps1 ├── Create-Disks.ps1 ├── Create-VMs.ps1 ├── Export-Disks.ps1 ├── README.md └── runall.ps1 ├── PPG-AvSet-creation ├── Create-AvSet-with-PPG.ps1 └── README.md ├── Rename-VM ├── README.md └── Rename-VM.ps1 └── SharedDiskSamples ├── avset_template.json ├── dsc ├── ConfigureCluster.ps1.zip ├── MSFT_ActiveDirectoryDsc_v4200.zip ├── MSFT_ComputerManagement_v7100.zip └── PrepareClusterNode.ps1.zip ├── parameter.json ├── readme.md └── zonal_template.json /ASR-for-SAP-HANA-pre-and-post-scripts/Readme.md: -------------------------------------------------------------------------------- 1 | # Coordinating with SAP HANA for ASR to do application consistent replications 2 | 3 | When using ASR to replicate an SAP HANA system, to capture application consistent snapshots, ASR needs to coordinate with HANA to quiesce database activities before the snapshot, perform the workflow to capture the storage content, then remove the database snapshot. The coordination between HANA and ASR is done via scripts. Below are examples to demonstrate the foundation of the interaction. Each HANA system serves a company's unique business process and the scripts can and likely do need additional modules and functions to meet those needs. These additional capabilities are the responsibilities of the SAP HANA administrator. 4 | 5 | License 6 | This project is licensed under the MIT License. See the [LICENSE](https://github.com/Azure/SAP-on-Azure-Scripts-and-Utilities/blob/main/LICENSE) file for details. -------------------------------------------------------------------------------- /ASR-for-SAP-HANA-pre-and-post-scripts/asr4hana_post.sh: -------------------------------------------------------------------------------- 1 | #### asr4hana_post.sh 2 | 3 | #!/bin/bash 4 | # Define the path to the DEFAULT.PFL file 5 | PROFILE_PATH="/usr/sap/*/SYS/profile/DEFAULT.PFL" 6 | 7 | for profile in $(ls $PROFILE_PATH 2>/dev/null); do 8 | dbname=$(grep -E "^dbs/hdb/dbname" "$profile" | awk -F'=' '{print $2}'| tr '[:upper:]' '[:lower:]' | tr -d ' ') 9 | if [ -n "$dbname" ]; then 10 | echo "dbname found in $profile: $dbname" 11 | break # exit once the dbname is found 12 | fi 13 | done 14 | # Step 1: Capture the BACKUP_ID into a shell-variable 15 | BACKUP_ID=$(su - "${dbname}adm" -c "hdbsql -U SYSTEMDB -a -x \ 16 | \"SELECT BACKUP_ID FROM M_BACKUP_CATALOG WHERE ENTRY_TYPE_NAME = 'data snapshot' AND STATE_NAME = 'prepared' AND COMMENT = 'internal DB snapshot' LIMIT 1\"") 17 | export BACKUP_ID 18 | # Step 2: Use the BACKUP_ID to confirm the snapshot (marked as SUCCESSFUL) in the backup catalog 19 | su - "${dbname}adm" -c "hdbsql -U SYSTEMDB \"BACKUP DATA FOR FULL SYSTEM CLOSE SNAPSHOT BACKUP_ID $BACKUP_ID SUCCESSFUL 'internal DB snapshot'\"" -------------------------------------------------------------------------------- /ASR-for-SAP-HANA-pre-and-post-scripts/asr4hana_pre.sh: -------------------------------------------------------------------------------- 1 | #### asr4hana_pre.sh 2 | 3 | #!/bin/bash 4 | set -x 5 | # Define the path to the DEFAULT.PFL file 6 | PROFILE_PATH="/usr/sap/*/SYS/profile/DEFAULT.PFL" 7 | 8 | for profile in $(ls $PROFILE_PATH 2>/dev/null); do 9 | dbname=$(grep -E "^dbs/hdb/dbname" "$profile" | awk -F'=' '{print $2}'| tr '[:upper:]' '[:lower:]' | tr -d ' ') 10 | if [ -n "$dbname" ]; then 11 | echo "dbname found in $profile: $dbname" 12 | break # exit once the dbname is found 13 | fi 14 | done 15 | # Use the SID variable in the hdbsql command 16 | sudo su - "${dbname}adm" -c "hdbsql -U SYSTEMDB \"BACKUP DATA FOR FULL SYSTEM CREATE SNAPSHOT COMMENT 'internal DB snapshot';\"" 17 | # hand over process to ASR at this point 18 | exit 0 -------------------------------------------------------------------------------- /ASR-for-SAP-HANA-pre-and-post-scripts/customscript.sh: -------------------------------------------------------------------------------- 1 | #### customscript.sh 2 | 3 | #!/bin/bash 4 | if [ $# -ne 1 ]; then 5 | echo "Usage: $0 [--pre | --post]" 6 | exit 1 7 | elif [ "$1" == "--pre" ]; then 8 | /usr/local/ASR/Vx/scripts/asr4hana_pre.sh 9 | exit 0 10 | elif [ "$1" == "--post" ]; then 11 | /usr/local/ASR/Vx/scripts/asr4hana_post.sh 12 | exit 0 13 | fi -------------------------------------------------------------------------------- /AvZone-Mapping/avzone-mapping.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | .SYNOPSIS 4 | Map logical zones of different subscriptions 5 | 6 | .DESCRIPTION 7 | The script will map the logical zones of multiple subscriptions with each other. 8 | 9 | .LINK 10 | https://github.com/Azure/SAP-on-Azure-Scripts-and-Utilities 11 | 12 | #> 13 | <# 14 | Copyright (c) Microsoft Corporation. 15 | Licensed under the MIT license. 16 | #> 17 | 18 | #requires -version 7.1 19 | #requires -modules Az 20 | 21 | [CmdletBinding()] 22 | param ( 23 | [parameter(Mandatory=$true)][string]$subscriptionId, 24 | [parameter(Mandatory=$true)][string[]]$subscriptionPeers, 25 | [parameter(Mandatory=$true)][string]$region 26 | ) 27 | 28 | # create JSON object for web request with subscriptions 29 | $subscriptionPeersParameter = "" | Select-Object location,subscriptionIds 30 | $subscriptionPeersParameter.location = $region 31 | $subscriptionPeersParameter.subscriptionIds = @() 32 | 33 | foreach ($subscription in $subscriptionPeers) { 34 | $subscriptionPeersParameter.subscriptionIds += "subscriptions/" + $subscription 35 | } 36 | 37 | $subscriptionPeersJson = $subscriptionPeersParameter | ConvertTo-Json 38 | 39 | 40 | # Get Azure Context 41 | 42 | try { 43 | $azContext = Get-AzContext 44 | } 45 | catch { 46 | Write-Host "An error occurred:" 47 | Write-Host "Please check if you are logged on to Azure, you can use Connect-AzAccount to log in" 48 | } 49 | 50 | # get access token for REST call 51 | $azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile 52 | $profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile) 53 | $token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId) 54 | $authHeader = @{ 55 | 'Content-Type'='application/json' 56 | 'Authorization'='Bearer ' + $token.AccessToken 57 | } 58 | 59 | $feature = Get-AzProviderFeature -ProviderNamespace Microsoft.Resources -FeatureName AvailabilityZonePeering 60 | 61 | if ($feature.RegistrationState -eq "Registered") { 62 | # feature registered 63 | # continuing 64 | } 65 | else { 66 | Write-Host "Feature not registered" 67 | Write-Host "Please register feature using:" 68 | Write-Host "Register-AzProviderFeature -FeatureName AvailabilityZonePeering -ProviderNamespace Microsoft.Resources" 69 | exit 70 | } 71 | 72 | 73 | # create parameter 74 | $param = @{ 75 | Uri = "https://management.azure.com/subscriptions/${subscriptionId}/providers/Microsoft.Resources/checkZonePeers/?api-version=2020-01-01"; 76 | Method = 'Post'; 77 | Body = $subscriptionPeersJson; 78 | Headers = $authHeader 79 | } 80 | 81 | 82 | # Invoke the REST API 83 | $response = Invoke-RestMethod @param 84 | 85 | # Output 86 | Write-Host "" 87 | Write-Host "SubscriptionId:" $response.subscriptionId 88 | Write-Host "" 89 | foreach ($i in $response.availabilityZonePeers.availabilityZone) { 90 | foreach ($zone in $response.availabilityZonePeers[$i-1].peers ) { 91 | Write-Host "Zone $i matches zone" $zone.availabilityZone "in" $zone.subscriptionId 92 | } 93 | Write-Host "" 94 | } 95 | 96 | -------------------------------------------------------------------------------- /AvZone-Mapping/readme.md: -------------------------------------------------------------------------------- 1 | # AvZone Mapping 2 | 3 | ## Intro 4 | 5 | Sometimes you need to know which logical zones map to the same physical zone. 6 | This script will help you find out. 7 | 8 | ## Requirements 9 | 10 | - PowerShell 7.1 11 | - The feature AvailabilityZonePeering needs to be enabled 12 | 13 | ## Getting Started 14 | 15 | ### register the feature 16 | 17 | To register the feature you can use Azure CLI 18 | 19 | ```azurecli 20 | az feature show --namespace Microsoft.Resources --name AvailabilityZonePeering --subscription 21 | ``` 22 | 23 | or you can use PowerShell 24 | 25 | ```powershell 26 | Register-AzProviderFeature -FeatureName AvailabilityZonePeering -ProviderNamespace Microsoft.Resources 27 | ``` 28 | 29 | Registration can take some minutes 30 | 31 | ### run the script 32 | 33 | Connect to Azure using 34 | 35 | ```powershell 36 | Connect-AzAccount 37 | ``` 38 | 39 | .\avzone-mapping.ps1' -subscriptionId 232b6759-0000-0000-88c0-757472230e6c -subscriptionPeers 6488549f-1111-1111-a46e-154644e5bedd,e663cc2d-2222-2222-b636-bbd9e4c60fd9 -region eastus 40 | 41 | You can supply one or multiple subscriptions to the subscriptionPeers parameter. 42 | 43 | ### Sample output 44 | 45 | ```powershell 46 | .\avzone-mapping.ps1 -subscriptionId 232b6759-0000-0000-88c0-757472230e6c -subscriptionPeers 6488549f-1111-1111-a46e-154644e5bedd,e663cc2d-2222-2222-b636-bbd9e4c60fd9 -region eastus 47 | 48 | SubscriptionId: 232b6759-0000-0000-88c0-757472230e6c 49 | 50 | Zone 1 matches zone 2 in 6488549f-1111-1111-a46e-154644e5bedd 51 | Zone 1 matches zone 3 in e663cc2d-2222-2222-b636-bbd9e4c60fd9 52 | 53 | Zone 2 matches zone 3 in 6488549f-1111-1111-a46e-154644e5bedd 54 | Zone 2 matches zone 2 in e663cc2d-2222-2222-b636-bbd9e4c60fd9 55 | 56 | Zone 3 matches zone 1 in 6488549f-1111-1111-a46e-154644e5bedd 57 | Zone 3 matches zone 1 in e663cc2d-2222-2222-b636-bbd9e4c60fd9 58 | ``` 59 | -------------------------------------------------------------------------------- /Azure-NVMe-Utils/Changelog.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | This file contains the change log for the PowerShell script. 4 | 5 | ## Version 2025052601 6 | 7 | * add message for v6 SKUs 8 | * add fix for resource disk size comparison 9 | * update the module check to include individual modules instead of "Az" 10 | * add version number and version check 11 | -------------------------------------------------------------------------------- /Azure-NVMe-Utils/Readme.md: -------------------------------------------------------------------------------- 1 | # Azure NVMe Utilities 2 | 3 | ## Overview 4 | 5 | This repository contains a PowerShell scripts (`.ps1`) designed to simplify the conversion of Azure Virtual Machines from SCSI to NVMe and back.. 6 | 7 | ## Prerequisites 8 | 9 | - Azure Subscription and a Virtual Machine that you need to convert from SCSI to NVMe or from NVMe to SCSI 10 | - PowerShell and Az Module installed and configured 11 | - Appropriate permissions to execute scripts on Azure resources 12 | 13 | ## Usage 14 | 15 | To execute the script, open PowerShell as an administrator and follow the steps: 16 | 17 | 1. Install PowerShell or run the script on Azure Cloud Shell 18 | 19 | You can download and learn more about PowerShell on [https://aka.ms/powershell](https://aka.ms/powershell]) 20 | 21 | 2. allow unsigned powershell script files 22 | 23 | ```powershell 24 | Set-ExecutionPolicy -ExecutionPolicy Unrestricted 25 | ``` 26 | 27 | 3. Connect to your Azure Account using 28 | 29 | ```powershell 30 | Connect-AzAccount 31 | ``` 32 | 33 | 4. Make sure that you are connected to your subscription, you can change the subscription using Select 34 | 35 | ```powershell 36 | Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 37 | ``` 38 | 39 | 5. Run the conversion script 40 | 41 | ```powershell 42 | .\Azure-NVMe-Conversion.ps1 43 | ``` 44 | 45 | ## Example 46 | 47 | ```powershell 48 | # Example usage 49 | .\Azure-NVMe-Conversion.ps1 -ResourceGroupName -VMName -NewControllerType -VMSize -StartVM 50 | ``` 51 | 52 | ## Parameters 53 | 54 | | Parameter | Description | Required | 55 | |--------------------------------|------------------------------------------------------------------------------|----------| 56 | | `-ResourceGroupName` | The Resource Group Name of your VM | Yes | 57 | | `-VMName` | The name of your Virtual Machine on Azure | Yes | 58 | | `-NewControllerType` | The storage controller type the VM should get converted to (NVMe or SCSI) | Yes | 59 | | `-VMSize` | Azure VM SKU you want to convert the VM to | Yes | 60 | | `-StartVM` | Start the VM after conversion | No | 61 | | `-IgnoreSKUCheck` | Ignore the check of the VM SKU | No | 62 | | `-IgnoreWindowsVersionCheck` | Ignore the Windows Version check | No | 63 | | `-FixOperatingSystemSettings` | Automatically fix the OS settings using Azure RunCommands | No | 64 | | `-WriteLogfile` | Create a Log File | No | 65 | | `-IgnoreAzureModuleCheck` | Do not run the check for installed Azure modules | No | 66 | 67 | ## Contributing 68 | 69 | Contributions are welcome. Please submit pull requests or open issues for improvements or bug reports. 70 | 71 | ## License 72 | 73 | This project is licensed under the MIT License. See the [LICENSE](../LICENSE) file for details. 74 | -------------------------------------------------------------------------------- /Azure-NVMe-Utils/version.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": 2025052601 3 | } 4 | -------------------------------------------------------------------------------- /AzureCloudExcellenceforSAP/ACES_AzSAP_Deployment_Checklist.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/AzureCloudExcellenceforSAP/ACES_AzSAP_Deployment_Checklist.xlsx -------------------------------------------------------------------------------- /AzureCloudExcellenceforSAP/DeploymentChecklist/AzSAP_Deployment_Checklist.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/AzureCloudExcellenceforSAP/DeploymentChecklist/AzSAP_Deployment_Checklist.xlsx -------------------------------------------------------------------------------- /AzureCloudExcellenceforSAP/QualityCheckv4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/AzureCloudExcellenceforSAP/QualityCheckv4.zip -------------------------------------------------------------------------------- /AzureCloudExcellenceforSAP/azsapsca/README.md: -------------------------------------------------------------------------------- 1 | # azsapsca 2 | 3 | Supportconfig Analysis Appliance Patterns for SAP on Azure 4 | -------------------------------------------------------------------------------- /AzureCloudExcellenceforSAP/azsapsca/patterns/AZSAP/cli-ban.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | # Title: CLI-ban check 4 | # Description: Checks cluster setup for any cli-ban or cli-prefer constraints 5 | # Modified: 2021 Oct 28 6 | 7 | use strict; 8 | use warnings; 9 | use SDP::Core; 10 | use SDP::SUSE; 11 | 12 | @PATTERN_RESULTS = ( 13 | PROPERTY_NAME_CLASS."=AZSAP", 14 | PROPERTY_NAME_CATEGORY."=Database", 15 | PROPERTY_NAME_COMPONENT."=Resource", 16 | PROPERTY_NAME_PATTERN_ID."=$PATTERN_ID", 17 | PROPERTY_NAME_PRIMARY_LINK."=META_LINK_TID", 18 | PROPERTY_NAME_OVERALL."=$GSTATUS", 19 | PROPERTY_NAME_OVERALL_INFO."=None", 20 | "META_LINK_TID=https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/high-availability-guide-suse-pacemaker#cluster-installation" 21 | ); 22 | 23 | 24 | sub checkCliBanConfiguration { 25 | SDP::Core::printDebug('> checkCliBanConfiguration', 'BEGIN'); 26 | my $RCODE = 0; 27 | my $FILE_OPEN = 'ha.txt'; 28 | my $SECTION = 'crm configure show'; 29 | my @CONTENT = (); 30 | my $CONSTRAINT_COUNT = 0; 31 | 32 | if ( SDP::Core::getSection($FILE_OPEN, $SECTION, \@CONTENT) ) { 33 | foreach $_ (@CONTENT) { 34 | next if ( m/^\s*$/ ); # Skip blank lines 35 | if ( /cli-ban/i ) { 36 | SDP::Core::printDebug('cli-ban location constraint', "Found"); 37 | $CONSTRAINT_COUNT++; 38 | } elsif ( /cli-prefer/i ) { 39 | SDP::Core::printDebug('cli-prefer location constraint', "Found"); 40 | $CONSTRAINT_COUNT++; 41 | } 42 | } 43 | if ( $CONSTRAINT_COUNT > 0 ) { 44 | SDP::Core::updateStatus(STATUS_WARNING, "Found: cli-ban or cli-prefer location constraints"); 45 | } else { 46 | SDP::Core::updateStatus(STATUS_SUCCESS, "No cli-ban or cli-prefer location constraints found ") 47 | } 48 | 49 | } else { 50 | SDP::Core::updateStatus(STATUS_ERROR, "ERROR: checkCliBanConfiguration(): Cannot find \"$SECTION\" section in $FILE_OPEN"); 51 | } 52 | SDP::Core::printDebug("< checkCliBanConfiguration", "Returns: $RCODE"); 53 | return $RCODE; 54 | } 55 | 56 | SDP::Core::processOptions(); 57 | checkCliBanConfiguration(); 58 | SDP::Core::printPatternResults(); 59 | 60 | exit; 61 | -------------------------------------------------------------------------------- /AzureCloudExcellenceforSAP/azsapsca/patterns/AZSAP/tcptimestamps.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | 3 | # Title: Check for tcp timestamp value 4 | # Description: make sure tcp timestamp value is correct 5 | # Modified: 2021 Nov 3 6 | # 7 | import os 8 | import Core 9 | 10 | META_CLASS = "AZSAP" 11 | META_CATEGORY = "Kernel" 12 | META_COMPONENT = "Network" 13 | PATTERN_ID = os.path.basename(__file__) 14 | PRIMARY_LINK = "META_LINK_TID" 15 | OVERALL = Core.WARN 16 | OVERALL_INFO = "NOT SET" 17 | OTHER_LINKS = "META_LINK_TID=https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/sap-hana-high-availability#manual-deployment" 18 | 19 | Core.init(META_CLASS, META_CATEGORY, META_COMPONENT, PATTERN_ID, PRIMARY_LINK, OVERALL, OVERALL_INFO, OTHER_LINKS) 20 | 21 | try: 22 | fileOpen = "env.txt" 23 | section = "/sbin/sysctl -a" 24 | VALUE = -1 25 | content = {} 26 | 27 | if Core.getSection(fileOpen, section, content): 28 | for line in content: 29 | if "net.ipv4.tcp_timestamps" in content[line]: 30 | RP_LIST = content[line].split('=') 31 | VALUE = int(RP_LIST[1].strip()) 32 | 33 | if (VALUE == 0): 34 | Core.updateStatus(Core.SUCC , "tcp_timestamps is correctly zero"); 35 | else: 36 | Core.updateStatus(Core.CRIT, "tcp_timestamps should be zero"); 37 | 38 | except Exception as error: 39 | Core.updateStatus(Core.ERROR, "Outside the network scope: " + str(error)) 40 | 41 | Core.printPatternResults() 42 | -------------------------------------------------------------------------------- /AzureCloudExcellenceforSAP/azscadeploy/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | -------------------------------------------------------------------------------- /AzureCloudExcellenceforSAP/azscadeploy/inventory.ini.sample: -------------------------------------------------------------------------------- 1 | [scaservers] 2 | scaVM ansible_port=22 3 | 4 | [scaservers:vars] 5 | ansible_host= 20.83.123.73 6 | ansible_user = azureuser 7 | ansible_private_key_file = pkey.out 8 | ansible_python_interpreter=/usr/bin/python3 9 | -------------------------------------------------------------------------------- /AzureCloudExcellenceforSAP/azscadeploy/scadeploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | retry() { 4 | local -r -i max_attempts="$1"; shift 5 | local -r cmd="$@" 6 | local -i attempt_num=0 7 | local -i resultcode=0 8 | 9 | while true; do 10 | $cmd 11 | resultcode=$? 12 | if [[ $resultcode == 0 ]] 13 | then 14 | return 0 15 | fi 16 | 17 | if (( attempt_num == max_attempts )) 18 | then 19 | echo "Attempt $attempt_num failed and there are no more attempts left!" 20 | return 1 21 | else 22 | echo "Attempt $attempt_num failed! Trying again in $attempt_num seconds..." 23 | sleep $(( attempt_num++ )) 24 | fi 25 | done 26 | } 27 | 28 | export ANSIBLE_HOST_KEY_CHECKING=False 29 | terraform init 30 | terraform plan -out main.tfplan 31 | terraform apply "main.tfplan" 32 | terraform output -raw tls_private_key >pkey.out 33 | chmod 600 pkey.out 34 | az vm show -d -g scaResourceGroup -n scaVM --query publicIps -o tsv > scaIP.txt 35 | SCAIP=`cat scaIP.txt` 36 | SEDCMD="s/20.83.123.73/$SCAIP/g" 37 | cat inventory.ini.sample | sed $SEDCMD > inventory.ini 38 | #before running the ansible playbook, wait just a bit 39 | retry 5 "ansible-playbook -i ./inventory.ini sca.yml" 40 | resultcode=$? 41 | echo $? 42 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Microsoft Open Source Code of Conduct 2 | 3 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). 4 | 5 | Resources: 6 | 7 | - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) 8 | - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) 9 | - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns 10 | -------------------------------------------------------------------------------- /Costmanagement-Dashboard/Contoso - Azure Cost Management - GitHub Template - v3.pbit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/Contoso - Azure Cost Management - GitHub Template - v3.pbit -------------------------------------------------------------------------------- /Costmanagement-Dashboard/Images/Contoso-Backgroud-Image1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/Images/Contoso-Backgroud-Image1.PNG -------------------------------------------------------------------------------- /Costmanagement-Dashboard/Images/Contoso-Backgroud-Image2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/Images/Contoso-Backgroud-Image2.PNG -------------------------------------------------------------------------------- /Costmanagement-Dashboard/Images/Contoso-Backgroud-Image3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/Images/Contoso-Backgroud-Image3.PNG -------------------------------------------------------------------------------- /Costmanagement-Dashboard/Images/contoso-logo-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/Images/contoso-logo-black.png -------------------------------------------------------------------------------- /Costmanagement-Dashboard/Images/contoso_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/Images/contoso_logo.png -------------------------------------------------------------------------------- /Costmanagement-Dashboard/Release-Notes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/Release-Notes.pdf -------------------------------------------------------------------------------- /Costmanagement-Dashboard/Subscription Metadata/Azure Advisor.csv: -------------------------------------------------------------------------------- 1 | Category,Business Impact,Recommendation,Subscription ID,Subscription Name,Resource Group,Resource Name,Resource Type,Updated Date,Potential Benefits,Potential Annual Cost Savings,Potential Cost Savings Currency 2 | Security,High,Subnets should be associated with a Network Security Group,Subscrption GUID #1,Subscription #1,Resource Group #1,default,Subnet,2020-06-23T09:56:15.521Z,Prevent potential security breaches,, 3 | "Cost,High,Buy virtual machine reserved instances to save money over pay-as-you-go costs,Subscrption GUID #2,Subscription #2,Resource Group #2,Standard_D8s_v3 virtual machines in eastus2,Virtual machine,2020-06-23T08:14:36.690Z,""3,346.53 USD savings"",""3,346.53"",USD" 4 | Operational Excellence,Medium,Enforce 'Add or replace a tag on resources' using Azure Policy,Subscrption GUID #3,Subscription #3,Resource Group #3,6f387134-f668-43e5-8589-6f437a88c574,Subscription,2020-06-23T00:00:35.898Z,This specific policy allows for resources to be tagged or for tags to be replaced.,, 5 | "Performance,Medium,Match production Virtual Machines with Production Disk for consistent performance and better latency,Subscrption GUID #4,Subscription #4,Resource Group #4,mue2rheedcd001,Virtual machine,2020-06-23T08:50:18.942Z,""More consistent performance, better latency"",," 6 | Reliability,Medium,Enable virtual machine replication to protect your applications from regional outage,Subscrption GUID #5,Subscription #5,Resource Group #5,mue2rheedcd001,Virtual machine,2020-06-23T08:09:39.385Z,Ensure business continuity in case of any Azure region outage,, 7 | -------------------------------------------------------------------------------- /Costmanagement-Dashboard/Subscription Metadata/Azure Subscriptions.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/Subscription Metadata/Azure Subscriptions.xlsx -------------------------------------------------------------------------------- /Costmanagement-Dashboard/Subscription Metadata/Subscription Metadata.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/Subscription Metadata/Subscription Metadata.xlsx -------------------------------------------------------------------------------- /Costmanagement-Dashboard/Theme/Contoso-Theme.json: -------------------------------------------------------------------------------- 1 | {"name":"Contoso Theme"} -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/applications.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/applications.jpg -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/cost-management-metadata-model.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/cost-management-metadata-model.jpg -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/costcenter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/costcenter.jpg -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/costcomparison.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/costcomparison.jpg -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/github-template-getting-started.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/github-template-getting-started.jpg -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/home.jpg -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/meter-detail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/meter-detail.jpg -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/networking.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/networking.jpg -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/price-sheet.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/price-sheet.jpg -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/regions.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/regions.jpg -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/reserverations.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/reserverations.jpg -------------------------------------------------------------------------------- /Costmanagement-Dashboard/readme-images/summary.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Costmanagement-Dashboard/readme-images/summary.jpg -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Microsoft Corporation. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE 22 | -------------------------------------------------------------------------------- /Linux-Always-On-Diagnostics-for-NFS/Readme.md: -------------------------------------------------------------------------------- 1 | # Linux Always-on-Diagnostics for SLES 2 | 3 | **IMPORTANT: this is a pre-release** 4 | 5 | The Linux Always-on-Diagnostics for SLES is constantly collecting log data and network captures to diagnose errors with NFS shares. 6 | 7 | ## /opt/sap-aod/aod.cfg 8 | 9 | The configuration file is available in /opt/sap-aod/aod.cfg and customers can update the configuration according to their requirements. 10 | 11 | Default values for the configuration files are: 12 | 13 | ``` 14 | AOD_TMPDIR="/tmp" 15 | AOD_INSTALLROOT="/opt" 16 | AOD_PERSISTENT_LOGDIR="/tmp/sap-aod-logs/" 17 | AOD_TMPFS_SZ="256M" 18 | 19 | AOD_NFS_PORT="2049" 20 | AOD_TCPDUMP_BIN="/usr/sbin/tcpdump" 21 | AOD_TCPDUMP_BUFSZ_KB="10240" 22 | AOD_TCPDUMP_SNAPLEN_BYTES=65536 23 | AOD_TCPDUMP_PCAPSZ_MB="2" 24 | AOD_TCPDUMP_MAX_PCAPS="100" 25 | 26 | AOD_LOG_LOOP_SLEEP_SEC="60" 27 | AOD_NUM_LOGS_RETAINED="180" 28 | 29 | AOD_NW_PROBE_ENABLE=1 30 | AOD_NW_PROBE_TIMEOUT_SEC=3 31 | AOD_NW_PROBE_SLEEP_SEC=60 32 | AOD_NW_CAPTURE_ENABLE=0 33 | ``` 34 | 35 | ## Enable automatic collection 36 | 37 | To enable the automatic collection use the systemctl command: 38 | 39 | ``` 40 | sudo systemctl enable aod 41 | ``` 42 | 43 | You can check the status using: 44 | 45 | ``` 46 | sudo systemctl status aod 47 | ``` 48 | -------------------------------------------------------------------------------- /Linux-Always-On-Diagnostics-for-NFS/sap-aod-0.1.2beta-0.1.2beta.x86_64.rpm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Linux-Always-On-Diagnostics-for-NFS/sap-aod-0.1.2beta-0.1.2beta.x86_64.rpm -------------------------------------------------------------------------------- /Linux-Always-On-Diagnostics-for-NFS/sha256sums: -------------------------------------------------------------------------------- 1 | ee2f7238322115ad430c5c61d8535880ed67d51a2b94483a335ff5fae8efd893 sap-aod-0.1.2beta-0.1.2beta.x86_64.rpm 2 | -------------------------------------------------------------------------------- /LinuxBestPractices.md: -------------------------------------------------------------------------------- 1 | # Operational Best Practices 2 | 3 | # Introduction 4 | 5 | This is a collection of hints for managing (mostly) Linux systems. These have resulted from our experience with Linux in Azure, but most are applicable to any scenario. 6 | 7 | # Linux Administration Practices 8 | 9 | 1. The Microsoft documentation for SAP on Azure is a great baseline for configurations. We recommend using those settings and operations unless there is a very good reason not to. When these deviations are made, it’s useful to keep a log of them, and why this deviation was made. 10 | 11 | 1. For network volumes, it’s best to use the Linux automounter, rather than the fstab. This is documented in the Microsoft SAP on Azure documentation. 12 | 13 | 1. Do not use “sudo su - “ to change to root - use the sudo "command". Also, make sure that the sudo command is logging everything that is done. 14 | 15 | 1. Administrators should log into the VMs as their own personal user IDs and use “sudo ” to do administrative activities 16 | 17 | # Terminal Sessions 18 | 19 | 1. Within terminal sessions, it is useful to use headings, colors, etc. to differentiate various environments, SIDs, etc.. Without that, it is very easy to become confused as to which system you are working with. 20 | 21 | 1. The tmux program is useful for working with multiple sessions within a single SSH login. With this tool, it's possible to start long-running sessions, disconnect from ssh and reconnect later. 22 | 23 | 1. Review system log files for errors regularly. A monitoring system such as Azure Log Analytics or Splunk can help with automated identification of issues or unexpected messages. 24 | 25 | 26 | 27 | # Linux Command Shell 28 | 29 | 1. Make sure you are actually using the shell that you think you have. 30 | You can use this command to print the shell name: 31 | ```bash 32 | echo "$SHELL" 33 | ``` 34 | 35 | There are differences between bash, sh, csh, ksh, etc. that can impact shell scripts and your terminal experience. You can change your login shell using the chsh command. 36 | 37 | 1. Shell scripts should start with a line like this to make sure the desired shell processor is used: 38 | 39 | ```bash 40 | #!/bin/bash 41 | ``` 42 | 43 | 1. Review the command completion and editing commands for your shell. Proper use of these features can improve your terminal experience dramatically. 44 | 45 | # NFS Management 46 | 47 | 1. Use the "chatter +i " command for any NFS mount points. This this makes the mount point “immutable”, and will make sure that files are not written to the local volume that should be on the NFS volume. 48 | 49 | 1. If any changes are made to the fstab, do the following: 50 | 51 | * mount -a # this mounts all volumes in the fstab, and will allow you to make sure you haven't typed anything wrong in the fstab 52 | * reboot the VM 53 | * make sure that all of your volumes are mounted 54 | 55 | 1. It is ok to mount subdirectories of an NFS volume. However, when you do that, never delete the mounted subdirectory – this will cause all mounts of the subdirectory to fail, or to be left in an inconsistent state. 56 | 57 | 1. Never use the “umount -l” command. This is meant to be used when you are going to reboot the machine very soon. However, it’s much better to find the processes that are using a volume to be unmounted using the fuser command, and kill those (or remediate as appropriate). 58 | -------------------------------------------------------------------------------- /Measure-Successfactor-URL-Latency/README.md: -------------------------------------------------------------------------------- 1 | # Measure-SFDatacenterResponseTime PowerShell Function 2 | 3 | ## Overview 4 | 5 | The `Measure-SFDatacenterResponseTime` function is a PowerShell script that helps you to measure the response times for different SuccessFactors (SF) data centers. This function is handy for evaluating the performance of SF instances across different geographical locations. 6 | 7 | ## Features 8 | 9 | - Measure response times from your system to different SF data centers. 10 | - Option to ignore SSL certificate validation. 11 | - Option to use a web proxy. 12 | - Data centers with faster response times are listed first. 13 | 14 | ## Usage 15 | 16 | Here is an example of how to call the function: 17 | 18 | ```powershell 19 | Measure-SFDatacenterResponseTime 20 | ``` 21 | 22 | ### Parameters 23 | 24 | - `-Proxy` - Accepts a [System.Net.WebProxy](https://docs.microsoft.com/en-us/dotnet/api/system.net.webproxy?view=netframework-4.8) object. The script will use this proxy when making web requests. This is optional and not required if you're not using a proxy server. 25 | 26 | - `-IgnoreSSL` - Ignore SSL certificate validation. This can be useful in environments with self-signed certificates or for testing purposes. Note that you should not use this option in a production environment as it bypasses important security checks. 27 | 28 | ### Output 29 | 30 | The function outputs a table in the console with the following columns: 31 | 32 | - `datacenter`: SF Data center code 33 | - `region`: Geographical region of the data center 34 | - `address`: Physical address of the data center 35 | - `URL`: URL for the SF instance at the data center 36 | - `respTime(ms)`: Response time in milliseconds from your system to the SF instance at the data center 37 | 38 | ### Example Output 39 | 40 | ``` 41 | datacenter region address URL respTime(ms) 42 | ---------- ------ ------- --- ------------ 43 | DC70 AMER Virginia MS Azure https://performancemanager8.successfactors.com 301.73 44 | DC66 APAC Sydney MS Azure https://performancemanager10.successfactors.com 315.95 45 | ... 46 | ``` 47 | 48 | ## License 49 | 50 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image1.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image10.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image11.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image12.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image13.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image14.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image15.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image16.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image17.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image18.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image2.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image3.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image30.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image4.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image41.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image5.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image6.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image7.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image8.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Move-Regional-SAP-HA-To-Zonal-SAP-HA-WhitePaper/Pictures/media/image9.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image1.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image10.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image11.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image12.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image13.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image14.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image15.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image16.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image17.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image18.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image2.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image3.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image30.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image4.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image41.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image5.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image6.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image7.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image8.png -------------------------------------------------------------------------------- /Move-VM-from-AvSet-to-AvZone/Pictures/media/image9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Move-VM-from-AvSet-to-AvZone/Pictures/media/image9.png -------------------------------------------------------------------------------- /NVMe-Preflight-Check/readme.md: -------------------------------------------------------------------------------- 1 | # Azure NVMe Preflight Check 2 | 3 | Azure NVMe Preflight Check is a bash script that validates and prepares a Linux operating system before moving to NVMe enabled virtual machines. 4 | 5 | NVMe enabled virtual machines provide higher IOPS and throughput for disk drives. 6 | 7 | You can learn more about Azure NVMe enabled virtual machines on [https://learn.microsoft.com/en-us/azure/virtual-machines/enable-nvme-interface](https://learn.microsoft.com/en-us/azure/virtual-machines/enable-nvme-interface) 8 | 9 | ## How to run the script 10 | 11 | ``` 12 | azure-nvme-VM-update.ps1 [-subscription_id] [-resource_group_name] 13 | [-vm_name] [[-disk_controller_change_to] ] [-vm_size_change_to] [[-start_vm_after_update] ] [[-write_logfile] ] [-ignore_vmsku_check] 14 | ``` 15 | 16 | The script has some mandatory parameters: 17 | 18 | | Parameter | Description | 19 | |---|---| 20 | | subscription_id | Subscription ID of VM | 21 | | resource_group_name | Resource Group Name for VM | 22 | | vm_name | Virtual Machine name | 23 | | vm_size_change_to | New VM Size, if you want to stay with existing VM just enter the same VM type | 24 | | disk_controller_change_to | NVMe or SCSI | 25 | | start_vm_after_update | true or false, default is true | 26 | | write_logfile | also store log in file, default false | 27 | | ignore_vmsku_check | ignore the check for VM SKU availability in region | 28 | 29 | 30 | -------------------------------------------------------------------------------- /QualityCheck/MultiRun-Template.csv: -------------------------------------------------------------------------------- 1 | LogonMethod;VMOperatingSystem;VMDatabase;VMRole;AzVMResourceGroup;AzVMName;VMHostname;VMUsername;VMConnectionPort;HighAvailability;HighAvailabilityAgent;DBDataDir;DBLogDir;DBSharedDir;ANFResourceGroup;ANFAccountName;HANADeployment 2 | UserPassword;RedHat;HANA;DB;conf07-ha-agent;hana11;10.0.0.21;pl;;TRUE;FencingAgent;;;;;; 3 | UserPassword;RedHat;HANA;DB;conf07-ha-agent;hana12;10.0.0.22;pl;;TRUE;FencingAgent;;;;;; 4 | -------------------------------------------------------------------------------- /QualityCheck/MultiRun-Template.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/QualityCheck/MultiRun-Template.xlsx -------------------------------------------------------------------------------- /QualityCheck/SSH-Check/check-ssh-connectivity-user-password.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | .SYNOPSIS 4 | SAP on Azure Quality Check - SSH check 5 | 6 | .DESCRIPTION 7 | Script is used to check if SSH connectivity is working and which errors occur 8 | 9 | .LINK 10 | https://github.com/Azure/SAP-on-Azure-Scripts-and-Utilities 11 | 12 | .EXAMPLE 13 | PS> .\check-ssh-connectivity-user-password.ps1 -IPorHostname 10.10.10.10 -SSHPort 22 14 | 15 | #> 16 | <# 17 | Copyright (c) Microsoft Corporation. 18 | Licensed under the MIT license. 19 | #> 20 | 21 | #Requires -Version 7.1 22 | #Requires -Modules @{ ModuleName="Posh-SSH"; ModuleVersion="3.0.0" } 23 | 24 | [CmdletBinding()] 25 | param ( 26 | [parameter(Mandatory=$true)][string]$IPorHostname, 27 | [int]$SSHPort=22 28 | ) 29 | 30 | # getting credentials for SSH user/password 31 | $cred = Get-Credential 32 | 33 | # test TCP connectivity 34 | try { 35 | $tcpconnectivity = New-Object System.Net.Sockets.TcpClient($IPorHostname, $SSHPort) 36 | if ($tcpconnectivity.Connected) { 37 | # connected 38 | Write-Host "TCP port open to $IPorHostname" -ForegroundColor Green 39 | } 40 | else { 41 | Write-Host "TCP port not reachable for $IPorHostname" -ForegroundColor Red 42 | exit 43 | } 44 | } 45 | catch { 46 | Write-Host "TCP port not reachable for $IPorHostname" -ForegroundColor Red 47 | Write-Host $_ 48 | exit 49 | } 50 | # connect using SSH 51 | try { 52 | $sshsession = New-SSHSession -ComputerName $IPorHostname -Credential $cred -Port $SSHPort -AcceptKey 53 | if ($sshsession.Connected -eq $true) { 54 | Write-Host "connected to $IPorHostname" -ForegroundColor Green 55 | Remove-SSHSession $sshsession.SessionId 56 | } 57 | else { 58 | Write-Host "unable to connect to $IPorHostname" -ForegroundColor Red 59 | exit 60 | } 61 | } 62 | catch { 63 | Write-Host "unable to connect to $IPorHostname" -ForegroundColor Red 64 | Write-Host $_ 65 | exit 66 | } 67 | 68 | Write-Host "Script completed successfully" -ForegroundColor Green -------------------------------------------------------------------------------- /QualityCheck/images/qualitycheck-connect.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/QualityCheck/images/qualitycheck-connect.jpg -------------------------------------------------------------------------------- /QualityCheck/version.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": 2025052601 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Scripts 2 | 3 | This repository contains scripts published byt the AzureCAT SAP Deployment team. 4 | 5 | ## Disclaimer 6 | 7 | THE SCRIPTS ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. 8 | 9 | ## Contributing 10 | 11 | This project welcomes contributions and suggestions. Most contributions require you to agree to a 12 | Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us 13 | the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. 14 | 15 | When you submit a pull request, a CLA bot will automatically determine whether you need to provide 16 | a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions 17 | provided by the bot. You will only need to do this once across all repos using our CLA. 18 | 19 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). 20 | For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or 21 | contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. 22 | -------------------------------------------------------------------------------- /SAP-HANA-NUMA-tempfs/readme.md: -------------------------------------------------------------------------------- 1 | # automatic SAP HANA temporary file system configuration 2 | 3 | This RPM package contains a script that automatically configures the temporary file systems required for SAP HANA Fast Restart. 4 | 5 | The script is used to automatically change the temporary file systems, e.g. during a VM resize where the number of NUMA nodes can change. 6 | 7 | It automatically updates the global.ini file for the system as well. 8 | 9 | 10 | ## Files in RPM 11 | 12 | * /etc/sysconfig/set_hana_tmpfs.config 13 | * /usr/lib/systemd/system/set_hana_tmpfs.service 14 | * /usr/sbin/set_hana_tmpfs 15 | 16 | ## Command file parameters 17 | 18 | ``` 19 | OPTION: 20 | --help show help 21 | --version show version 22 | --init create/apply/update Hana tmpfs mountpoints based on numa at boot. Output goes to messages 23 | --apply create/apply/update Hana tmpfs mountpoints based on numa 24 | --show check if solution can be applied 25 | 26 | ``` 27 | 28 | ## Config File Sample 29 | 30 | To specifcy the required paramters please look at /etc/sysconfig/set_hana_tmpfs.config parameter file, which by default contains these options: 31 | 32 | ``` 33 | #Config values 34 | 35 | #SAP System ID: 36 | SID="I" 37 | 38 | # %of memeory to be used for Hana tmpfs. 39 | HANATMPMEMSIZE="100" # % value of memory - calculated on the fly 40 | 41 | #Add own additional mount options for mounting hanatmps 42 | # example - ADDMNTOPTNS="uid=5000,gid=1000,mode=1770" 43 | ADDMNTOPTNS="" 44 | 45 | #Short disable of script 46 | SCRACTIVE="Y" #If Y - then script works otherwise will not do anything 47 | 48 | #Create debugging information - if needed by author 49 | #Debug files are created in /var/log 50 | DEBUG="X" # "DEBUG" 51 | ``` -------------------------------------------------------------------------------- /SAP-HANA-NUMA-tempfs/set_hana_tmpfs-0.1.1-1.x86_64.rpm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/SAP-HANA-NUMA-tempfs/set_hana_tmpfs-0.1.1-1.x86_64.rpm -------------------------------------------------------------------------------- /SAPCATPublish.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | } 6 | ], 7 | "settings": {} 8 | } -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Security 4 | 5 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). 6 | 7 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets Microsoft's [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) of a security vulnerability, please report it to us as described below. 8 | 9 | ## Reporting Security Issues 10 | 11 | **Please do not report security vulnerabilities through public GitHub issues.** 12 | 13 | Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). 14 | 15 | If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). 16 | 17 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). 18 | 19 | Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: 20 | 21 | * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) 22 | * Full paths of source file(s) related to the manifestation of the issue 23 | * The location of the affected source code (tag/branch/commit or direct URL) 24 | * Any special configuration required to reproduce the issue 25 | * Step-by-step instructions to reproduce the issue 26 | * Proof-of-concept or exploit code (if possible) 27 | * Impact of the issue, including how an attacker might exploit the issue 28 | 29 | This information will help us triage your report more quickly. 30 | 31 | If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs. 32 | 33 | ## Preferred Languages 34 | 35 | We prefer all communications to be in English. 36 | 37 | ## Policy 38 | 39 | Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd). 40 | 41 | 42 | -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image80.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image81.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image82.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image83.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image84.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image85.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image86.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image87.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image88.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image89.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image90.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image91.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image92.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image93.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image94.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/Image95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/Image95.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image1.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image10.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image11.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image12.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image13.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image14.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image15.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image16.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image17.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image18.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image19.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image2.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image20.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image21.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image22.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image23.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image24.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image25.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image26.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image27.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image28.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image29.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image3.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image30.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image31.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image35.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image36.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image37.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image38.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image39.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image4.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image40.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image41.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image42.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image43.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image5.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image50.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image51.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image52.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image53.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image54.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image55.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image56.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image57.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image58.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image59.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image6.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image60.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image61.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image62.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image63.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image64.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image65.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image66.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image67.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image68.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image69.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image7.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image70.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image71.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image72.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image73.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image74.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image75.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image76.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image77.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image8.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Pictures/media/image9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/Pictures/media/image9.png -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Runbooks/List-SAPHANAInstance.ps1: -------------------------------------------------------------------------------- 1 | <#PSScriptInfo 2 | 3 | .DESCRIPTION Azure Automation runbook script to list SAP HANA instance with an SAP HANA SID. 4 | 5 | .VERSION 0.0.3 6 | 7 | .GUID 0461bfa0-9b6e-4520-ad6e-a1e0ba0a96ec 8 | 9 | .AUTHOR Goran Condric 10 | 11 | .COMPANYNAME Microsoft 12 | 13 | .COPYRIGHT (c) 2020 Microsoft . All rights reserved. 14 | 15 | .TAGS Azure Automation SAP list SAP HANA system instance Runbook 16 | 17 | .LICENSEURI 18 | 19 | .PROJECTURI 20 | 21 | .ICONURI 22 | 23 | .EXTERNALMODULEDEPENDENCIES 24 | 25 | .REQUIREDSCRIPTS 26 | 27 | .EXTERNALSCRIPTDEPENDENCIES 28 | 29 | .RELEASENOTES 30 | 0.0.1: - Add initial version 31 | 0.0.3: - Add dedpendencies to SAPAzurePowerShellModules module 32 | #> 33 | 34 | #Requires -Module SAPAzurePowerShellModules 35 | 36 | Param( 37 | 38 | [Parameter(Mandatory=$True, HelpMessage="SAP HANA . 3 characters , starts with letter.")] 39 | [ValidateLength(3,3)] 40 | [string] $SAPHANASID, 41 | 42 | [Parameter(Mandatory=$false, HelpMessage="Subscription ID. If null, the current subscription of automation account is used instead.")] 43 | [ValidateLength(36,36)] 44 | [string] $SubscriptionId 45 | ) 46 | 47 | # Deprecated due to using System Managed Identity 48 | #$connection = Get-AutomationConnection -Name AzureRunAsConnection 49 | #Add-AzAccount -ServicePrincipal -Tenant $connection.TenantID -ApplicationId $connection.ApplicationID -CertificateThumbprint $connection.CertificateThumbprint 50 | 51 | # Connect to Azure with Automation Account system-assigned managed identity 52 | # Ensure that you do not inherit an AZ Context in your runbook 53 | Disable-AzContextAutosave -Scope Process | out-null 54 | 55 | # Connect using Managed Service Identity 56 | try { 57 | $AzureContext = (Connect-AzAccount -Identity -WarningAction Ignore).context 58 | } 59 | catch{ 60 | Write-Output "There is no system-assigned user identity. Aborting."; 61 | Write-Error $_.Exception.Message 62 | exit 63 | } 64 | 65 | if ($SubscriptionId){ 66 | $SubscriptionId = $SubscriptionId.trim() 67 | Select-AzSubscription -SubscriptionId $SubscriptionId -ErrorVariable -notPresent -ErrorAction SilentlyContinue -Tenant $AzureContext.Tenant 68 | } 69 | 70 | $SAPHANASID = $SAPHANASID.Trim() 71 | 72 | #Test if Tag 'SAPHANASID' with value $SAPHANASID exist. If not exit 73 | Test-AzSAPHANASIDTagExist -SAPHANASID $SAPHANASID 74 | 75 | # Get DBMS VMs 76 | $SAPSIDDBMSVMs = Get-AzSAPHANAInstances -SAPHANASID $SAPHANASID 77 | 78 | # List SAP DBMS layer VM(s) 79 | Write-Output "" 80 | Write-WithTime "SAP HANA DBMS VM(s):" 81 | Show-AzSAPSIDVMDBMSInstances -SAPVMs $SAPSIDDBMSVMs -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/Runbooks/List-SAPSystemInstances.ps1: -------------------------------------------------------------------------------- 1 | <#PSScriptInfo 2 | 3 | .DESCRIPTION Azure Automation runbook script to list SAP system instances with an SAP SID. 4 | 5 | .VERSION 0.0.3 6 | 7 | .GUID 3550f34f-4dfa-4a06-9007-13f3edd28774 8 | 9 | .AUTHOR Goran Condric 10 | 11 | .COMPANYNAME Microsoft 12 | 13 | .COPYRIGHT (c) 2020 Microsoft . All rights reserved. 14 | 15 | .TAGS Azure Automation SAP list SAP system instances Runbook 16 | 17 | .LICENSEURI 18 | 19 | .PROJECTURI 20 | 21 | .ICONURI 22 | 23 | .EXTERNALMODULEDEPENDENCIES 24 | 25 | .REQUIREDSCRIPTS 26 | 27 | .EXTERNALSCRIPTDEPENDENCIES 28 | 29 | .RELEASENOTES 30 | 0.0.1: - Add initial version 31 | 32 | #> 33 | 34 | #Requires -Module SAPAzurePowerShellModules 35 | 36 | Param( 37 | 38 | [Parameter(Mandatory=$True, HelpMessage="SAP System . 3 characters , starts with letter.")] 39 | [ValidateLength(3,3)] 40 | [string] $SAPSID, 41 | 42 | [Parameter(Mandatory=$false, HelpMessage="Subscription ID. If null, the current subscription of automation account is used instead.")] 43 | [ValidateLength(36,36)] 44 | [string] $SubscriptionId 45 | ) 46 | 47 | # Deprecated due to using System Managed Identity 48 | #$connection = Get-AutomationConnection -Name AzureRunAsConnection 49 | #Add-AzAccount -ServicePrincipal -Tenant $connection.TenantID -ApplicationId $connection.ApplicationID -CertificateThumbprint $connection.CertificateThumbprint 50 | 51 | # Connect to Azure with Automation Account system-assigned managed identity 52 | # Ensure that you do not inherit an AZ Context in your runbook 53 | Disable-AzContextAutosave -Scope Process | out-null 54 | 55 | # Connect using Managed Service Identity 56 | try { 57 | $AzureContext = (Connect-AzAccount -Identity -WarningAction Ignore).context 58 | } 59 | catch{ 60 | Write-Output "There is no system-assigned user identity. Aborting."; 61 | Write-Error $_.Exception.Message 62 | exit 63 | } 64 | 65 | if ($SubscriptionId){ 66 | $SubscriptionId = $SubscriptionId.trim() 67 | Select-AzSubscription -SubscriptionId $SubscriptionId -ErrorVariable -notPresent -ErrorAction SilentlyContinue -Tenant $AzureContext.Tenant 68 | } 69 | 70 | $SAPSID = $SAPSID.Trim() 71 | 72 | #Test if Tag 'SAPSystemSID' with value $SAPSID exist. If not exit 73 | Test-AzSAPSIDTagExist -SAPSID $SAPSID 74 | 75 | # Get SAP Appplication VMs 76 | $SAPSIDApplicationVMs = Get-AzSAPApplicationInstances -SAPSID $SAPSID 77 | 78 | Write-Output "" 79 | 80 | # List SAP Application layer VM 81 | Write-Output "" 82 | Write-WithTime "SAP Application layer VMs:" 83 | Show-AzSAPSIDVMApplicationInstances -SAPVMs $SAPSIDApplicationVMs 84 | 85 | # Get DBMS VMs 86 | $SAPSIDDBMSVMs = Get-AzSAPDBMSInstances -SAPSID $SAPSID 87 | 88 | # List SAP DBMS layer VM(s) 89 | Write-Output "" 90 | Write-WithTime "SAP DBMS layer VM(s):" 91 | Show-AzSAPSIDVMDBMSInstances -SAPVMs $SAPSIDDBMSVMs -------------------------------------------------------------------------------- /Start-Stop-Automation/Automation-Backend/SAPAzurePowerShellModules/SAPAzurePowerShellModules.psd1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/Automation-Backend/SAPAzurePowerShellModules/SAPAzurePowerShellModules.psd1 -------------------------------------------------------------------------------- /Start-Stop-Automation/PowerApp-Frontend/NotifySAPLabUserAboutShutdown.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/PowerApp-Frontend/NotifySAPLabUserAboutShutdown.zip -------------------------------------------------------------------------------- /Start-Stop-Automation/PowerApp-Frontend/SAP-SID-Controller.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/PowerApp-Frontend/SAP-SID-Controller.zip -------------------------------------------------------------------------------- /Start-Stop-Automation/PowerApp-Frontend/SignUpUsers2SAPController.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/PowerApp-Frontend/SignUpUsers2SAPController.zip -------------------------------------------------------------------------------- /Start-Stop-Automation/PowerApp-Frontend/StartScheduledSIDs.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/PowerApp-Frontend/StartScheduledSIDs.zip -------------------------------------------------------------------------------- /Start-Stop-Automation/PowerApp-Frontend/pictures/PowerAppStartEvent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/PowerApp-Frontend/pictures/PowerAppStartEvent.png -------------------------------------------------------------------------------- /Start-Stop-Automation/PowerApp-Frontend/pictures/logicApp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/PowerApp-Frontend/pictures/logicApp.png -------------------------------------------------------------------------------- /Start-Stop-Automation/PowerApp-Frontend/pictures/table-connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/PowerApp-Frontend/pictures/table-connection.png -------------------------------------------------------------------------------- /Start-Stop-Automation/PowerApp-Frontend/pictures/tablestorageview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Start-Stop-Automation/PowerApp-Frontend/pictures/tablestorageview.png -------------------------------------------------------------------------------- /Start-Stop-Automation/README.md: -------------------------------------------------------------------------------- 1 | # SAP On Azure Start / Stop Solution 2 | 3 | This repository contains artifacts published by the AzureCAT SAP Deployment and FastTrack for Azure team. 4 | 5 | ## SAP on Azure Automation Backend 6 | 7 | Here you can check [SAP on Azure Automation Backend documentation and artifacts.](./Automation-Backend). 8 | 9 | ## SAP on Azure PowerApp Frontend 10 | 11 | Here you can check [SAP on Azure PowerApp Frontend documentation and artifacts.](./PowerApp-Frontend). 12 | 13 | ## Disclaimer 14 | 15 | THE SCRIPTS ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. 16 | 17 | -------------------------------------------------------------------------------- /Tools: -------------------------------------------------------------------------------- 1 | The Microsoft Azure Cloud Excellence for SAP [ACES] initiative will enhance the customer experience with SAP On Azure Programs throughout the customer lifecycle. 2 | ACES will benefit Microsoft AzSAP Customers/partners with value-add programs/tools to improve and maintain the high quality of SAP On Azure deployment with an opportunity to 3 | facilitate strong collaboration with AzSAP communities. 4 | -------------------------------------------------------------------------------- /Tools&Framework/ACES_AzSAP_Deployment_Checklist.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Tools&Framework/ACES_AzSAP_Deployment_Checklist.xlsx -------------------------------------------------------------------------------- /Tools&Framework/DeploymentChecklist/AzSAP_Deployment_Checklist.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/Tools&Framework/DeploymentChecklist/AzSAP_Deployment_Checklist.xlsx -------------------------------------------------------------------------------- /Tools&Framework/README.md: -------------------------------------------------------------------------------- 1 | ## AZSAP Tools&Framework 2 | 3 | The Microsoft Azure Tools & Frameworks for SAP initiative will enhance the customer experience on Azure Platform throughout the SAP deployment lifecycle.    4 | 5 | It aims at bringing with value-add programs/tools to improve and maintain the high quality of SAP On Azure deployment with an opportunity to facilitate strong collaboration with AzSAP communities. 6 | 7 | ![image](https://user-images.githubusercontent.com/24598299/173866407-f491bb67-69aa-4679-864a-a4cbc11993aa.png) 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Tools&Framework/azsapsca/README.md: -------------------------------------------------------------------------------- 1 | # azsapsca 2 | 3 | Supportconfig Analysis Appliance Patterns for SAP on Azure 4 | -------------------------------------------------------------------------------- /Tools&Framework/azsapsca/patterns/AZSAP/cli-ban.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | # Title: CLI-ban check 4 | # Description: Checks cluster setup for any cli-ban or cli-prefer constraints 5 | # Modified: 2021 Oct 28 6 | 7 | use strict; 8 | use warnings; 9 | use SDP::Core; 10 | use SDP::SUSE; 11 | 12 | @PATTERN_RESULTS = ( 13 | PROPERTY_NAME_CLASS."=AZSAP", 14 | PROPERTY_NAME_CATEGORY."=Database", 15 | PROPERTY_NAME_COMPONENT."=Resource", 16 | PROPERTY_NAME_PATTERN_ID."=$PATTERN_ID", 17 | PROPERTY_NAME_PRIMARY_LINK."=META_LINK_TID", 18 | PROPERTY_NAME_OVERALL."=$GSTATUS", 19 | PROPERTY_NAME_OVERALL_INFO."=None", 20 | "META_LINK_TID=https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/high-availability-guide-suse-pacemaker#cluster-installation" 21 | ); 22 | 23 | 24 | sub checkCliBanConfiguration { 25 | SDP::Core::printDebug('> checkCliBanConfiguration', 'BEGIN'); 26 | my $RCODE = 0; 27 | my $FILE_OPEN = 'ha.txt'; 28 | my $SECTION = 'crm configure show'; 29 | my @CONTENT = (); 30 | my $CONSTRAINT_COUNT = 0; 31 | 32 | if ( SDP::Core::getSection($FILE_OPEN, $SECTION, \@CONTENT) ) { 33 | foreach $_ (@CONTENT) { 34 | next if ( m/^\s*$/ ); # Skip blank lines 35 | if ( /cli-ban/i ) { 36 | SDP::Core::printDebug('cli-ban location constraint', "Found"); 37 | $CONSTRAINT_COUNT++; 38 | } elsif ( /cli-prefer/i ) { 39 | SDP::Core::printDebug('cli-prefer location constraint', "Found"); 40 | $CONSTRAINT_COUNT++; 41 | } 42 | } 43 | if ( $CONSTRAINT_COUNT > 0 ) { 44 | SDP::Core::updateStatus(STATUS_WARNING, "Found: cli-ban or cli-prefer location constraints"); 45 | } else { 46 | SDP::Core::updateStatus(STATUS_SUCCESS, "No cli-ban or cli-prefer location constraints found ") 47 | } 48 | 49 | } else { 50 | SDP::Core::updateStatus(STATUS_ERROR, "ERROR: checkCliBanConfiguration(): Cannot find \"$SECTION\" section in $FILE_OPEN"); 51 | } 52 | SDP::Core::printDebug("< checkCliBanConfiguration", "Returns: $RCODE"); 53 | return $RCODE; 54 | } 55 | 56 | SDP::Core::processOptions(); 57 | checkCliBanConfiguration(); 58 | SDP::Core::printPatternResults(); 59 | 60 | exit; 61 | -------------------------------------------------------------------------------- /Tools&Framework/azsapsca/patterns/AZSAP/tcptimestamps.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | 3 | # Title: Check for tcp timestamp value 4 | # Description: make sure tcp timestamp value is correct 5 | # Modified: 2021 Nov 3 6 | # 7 | import os 8 | import Core 9 | 10 | META_CLASS = "AZSAP" 11 | META_CATEGORY = "Kernel" 12 | META_COMPONENT = "Network" 13 | PATTERN_ID = os.path.basename(__file__) 14 | PRIMARY_LINK = "META_LINK_TID" 15 | OVERALL = Core.WARN 16 | OVERALL_INFO = "NOT SET" 17 | OTHER_LINKS = "META_LINK_TID=https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/sap-hana-high-availability#manual-deployment" 18 | 19 | Core.init(META_CLASS, META_CATEGORY, META_COMPONENT, PATTERN_ID, PRIMARY_LINK, OVERALL, OVERALL_INFO, OTHER_LINKS) 20 | 21 | try: 22 | fileOpen = "env.txt" 23 | section = "/sbin/sysctl -a" 24 | VALUE = -1 25 | content = {} 26 | 27 | if Core.getSection(fileOpen, section, content): 28 | for line in content: 29 | if "net.ipv4.tcp_timestamps" in content[line]: 30 | RP_LIST = content[line].split('=') 31 | VALUE = int(RP_LIST[1].strip()) 32 | 33 | if (VALUE == 0): 34 | Core.updateStatus(Core.SUCC , "tcp_timestamps is correctly zero"); 35 | else: 36 | Core.updateStatus(Core.CRIT, "tcp_timestamps should be zero"); 37 | 38 | except Exception as error: 39 | Core.updateStatus(Core.ERROR, "Outside the network scope: " + str(error)) 40 | 41 | Core.printPatternResults() 42 | -------------------------------------------------------------------------------- /Tools&Framework/azscadeploy/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | -------------------------------------------------------------------------------- /Tools&Framework/azscadeploy/inventory.ini.sample: -------------------------------------------------------------------------------- 1 | [scaservers] 2 | scaVM ansible_port=22 3 | 4 | [scaservers:vars] 5 | ansible_host= 20.83.123.73 6 | ansible_user = azureuser 7 | ansible_private_key_file = pkey.out 8 | ansible_python_interpreter=/usr/bin/python3 9 | -------------------------------------------------------------------------------- /Tools&Framework/azscadeploy/scadeploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | retry() { 4 | local -r -i max_attempts="$1"; shift 5 | local -r cmd="$@" 6 | local -i attempt_num=0 7 | local -i resultcode=0 8 | 9 | while true; do 10 | $cmd 11 | resultcode=$? 12 | if [[ $resultcode == 0 ]] 13 | then 14 | return 0 15 | fi 16 | 17 | if (( attempt_num == max_attempts )) 18 | then 19 | echo "Attempt $attempt_num failed and there are no more attempts left!" 20 | return 1 21 | else 22 | echo "Attempt $attempt_num failed! Trying again in $attempt_num seconds..." 23 | sleep $(( attempt_num++ )) 24 | fi 25 | done 26 | } 27 | 28 | export ANSIBLE_HOST_KEY_CHECKING=False 29 | terraform init 30 | terraform plan -out main.tfplan 31 | terraform apply "main.tfplan" 32 | terraform output -raw tls_private_key >pkey.out 33 | chmod 600 pkey.out 34 | az vm show -d -g scaResourceGroup -n scaVM --query publicIps -o tsv > scaIP.txt 35 | SCAIP=`cat scaIP.txt` 36 | SEDCMD="s/20.83.123.73/$SCAIP/g" 37 | cat inventory.ini.sample | sed $SEDCMD > inventory.ini 38 | #before running the ansible playbook, wait just a bit 39 | retry 5 "ansible-playbook -i ./inventory.ini sca.yml" 40 | resultcode=$? 41 | echo $? 42 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/AzKeyVaultID.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/ARMTemplates/AzKeyVaultID.png -------------------------------------------------------------------------------- /legacy/ARMTemplates/CrossZonal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/ARMTemplates/CrossZonal.png -------------------------------------------------------------------------------- /legacy/ARMTemplates/DevTest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/ARMTemplates/DevTest.png -------------------------------------------------------------------------------- /legacy/ARMTemplates/Landscapes/README.MD: -------------------------------------------------------------------------------- 1 | # This is the root folder of the different SAP landscapes 2 | 3 | You can create new environments by running the createNewEnvironmet.ps1 script -------------------------------------------------------------------------------- /legacy/ARMTemplates/NotZonal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/ARMTemplates/NotZonal.png -------------------------------------------------------------------------------- /legacy/ARMTemplates/Zonal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/ARMTemplates/Zonal.png -------------------------------------------------------------------------------- /legacy/ARMTemplates/baseInfrastructure/asg.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "location": { 6 | "type": "string", 7 | "metadata": { 8 | "description": "The location of the resource" 9 | }, 10 | "defaultValue": "[resourceGroup().location]" 11 | }, 12 | "applicationSecurityGroupName": { 13 | "type": "string", 14 | "metadata": { 15 | "description": "The name of the application security group that will be used for the application servers" 16 | }, 17 | "defaultValue": "sap-app-asg" 18 | }, 19 | "applicationSecurityGroupNameDB": { 20 | "type": "string", 21 | "metadata": { 22 | "description": "The name of the application security group that will be used for the database servers" 23 | }, 24 | "defaultValue": "sap-db-asg" 25 | }, 26 | "applicationSecurityGroupNameWeb": { 27 | "type": "string", 28 | "metadata": { 29 | "description": "The name of the application security group that will be used for the web dispatchers" 30 | }, 31 | "defaultValue": "sap-web-asg" 32 | } 33 | 34 | }, 35 | "variables": { 36 | "locationName": "[if(empty(parameters('location')) , resourceGroup().location,parameters('location'))]" 37 | 38 | 39 | }, 40 | "resources": [ 41 | { 42 | "apiVersion": "2019-02-01", 43 | "type": "Microsoft.Network/applicationSecurityGroups", 44 | "name": "[parameters('applicationSecurityGroupName')]", 45 | "location": "[variables('locationName')]" 46 | }, 47 | { 48 | "apiVersion": "2019-02-01", 49 | "type": "Microsoft.Network/applicationSecurityGroups", 50 | "name": "[parameters('applicationSecurityGroupNameDB')]", 51 | "location": "[variables('locationName')]" 52 | }, 53 | { 54 | "apiVersion": "2019-02-01", 55 | "type": "Microsoft.Network/applicationSecurityGroups", 56 | "name": "[parameters('applicationSecurityGroupNameWeb')]", 57 | "location": "[variables('locationName')]" 58 | } 59 | 60 | ], 61 | "outputs": { 62 | } 63 | } -------------------------------------------------------------------------------- /legacy/ARMTemplates/baseInfrastructure/asg.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "location": { 6 | "value": "" 7 | }, 8 | "applicationSecurityGroupName": { 9 | "value": "sap-app-asg" 10 | }, 11 | "applicationSecurityGroupNameDB": { 12 | "value": "sap-db-asg" 13 | }, 14 | "applicationSecurityGroupNameWeb": { 15 | "value": "sap-web-asg" 16 | } 17 | 18 | } 19 | } -------------------------------------------------------------------------------- /legacy/ARMTemplates/baseInfrastructure/keyvault.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "name": { 6 | "value": "sap-we-kv" 7 | }, 8 | "location": { 9 | "value": "westeurope" 10 | }, 11 | "objectId": { 12 | "value": "ddb52f7b-2d28-4564-ad35-98db8f3a1fa2" 13 | }, 14 | "keysPermissions": { 15 | "value": ["all"] 16 | }, 17 | "secretsPermissions": { 18 | "value": ["all"] 19 | }, 20 | "enabledForDeployment": { 21 | "value": true 22 | }, 23 | "enabledForDiskEncryption": { 24 | "value": true 25 | }, 26 | "enabledForTemplateDeployment": { 27 | "value": true 28 | }, 29 | "sku": { 30 | "value": "Standard" 31 | }, 32 | "secretName": { 33 | "value": "mypassword" 34 | }, 35 | "secretValue": { 36 | "value": "[EnterYourPasswordHere]" 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/baseInfrastructure/network.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "virtualNetworkName": { 6 | "value": "demo-vnet" 7 | }, 8 | "vnetAddressPrefix": { 9 | "value": "10.8.0.0/16" 10 | }, 11 | "appSubnetName": { 12 | "value": "app-snet" 13 | }, 14 | "appSubnetAddressPrefix": { 15 | "value": "10.8.0.0/24" 16 | }, 17 | "dbSubnetName": { 18 | "value": "db-snet" 19 | }, 20 | "dbSubnetAddressPrefix": { 21 | "value": "10.8.16.0/24" 22 | }, 23 | "networkSecurityGroupName": { 24 | "value": "toplevel" 25 | }, 26 | "location": { 27 | "value": "" 28 | }, 29 | "applicationSecurityGroupName": { 30 | "value": "sap-app-asg" 31 | }, 32 | "applicationSecurityGroupNameDB": { 33 | "value": "sap-db-asg" 34 | }, 35 | "applicationSecurityGroupNameWeb": { 36 | "value": "sap-web-asg" 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/baseInfrastructure/ppgavset.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "sapSystemId": { 6 | "value": "[SID]" 7 | }, 8 | "location": { 9 | "value": "[LOCATION]" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /legacy/ARMTemplates/deploymentScripts/README.MD: -------------------------------------------------------------------------------- 1 | # Base Infrastructure deployment 2 | 3 | This folder contains the sample scripts that can be used to deploy the supporting infrastructure for the SAP deployment 4 | 5 | ## deployInfrastucture.ps1 6 | 7 | deployInfrastucture.ps1 can be used to deploy the application security groups. Update the parameters in the script to reflect your environment. 8 | 9 | ```PowerShell 10 | $ResourceGroupNameforASG = "SAP-SharedNetwork" 11 | $location = "northeurope" 12 | $subscriptionID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 13 | ``` 14 | 15 | The names of the groups are specified in the asg.parameters.json file 16 | 17 | ```json 18 | { 19 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 20 | "contentVersion": "1.0.0.0", 21 | "parameters": { 22 | "location": { 23 | "value": "westeurope" 24 | }, 25 | "applicationSecurityGroupName": { 26 | "value": "sap-app-asg" 27 | }, 28 | "applicationSecurityGroupNameDB": { 29 | "value": "sap-db-asg" 30 | } 31 | } 32 | } 33 | ``` 34 | 35 | ## deployLandscape.ps1 36 | 37 | This is a sample script that will be copied to the environment directories when. 38 | 39 | **Do not run the script from here** 40 | can be used to deploy the infrastructure for the SAP environment. 41 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/deploymentScripts/deployInfrastructure.ps1: -------------------------------------------------------------------------------- 1 | # select subscription 2 | 3 | $ResourceGroupNameforASG = "demo-vnet-rg" 4 | $location = "westeurope" 5 | $subscriptionID = "80d5ed43-1465-432b-8914-5e1f68d49330" 6 | 7 | 8 | Write-Host "Deployment started: " (Get-Date).ToString("yyyy-MM-dd HH:mm") 9 | 10 | $Subscription = Get-AzSubscription -SubscriptionId $SubscriptionId 11 | 12 | if (-Not $Subscription) { 13 | Write-Host -ForegroundColor Red -BackgroundColor White "Sorry, it seems you are not connected to Azure or don't have access to the subscription. Please use Connect-AzAccount to connect." 14 | exit 15 | 16 | } 17 | 18 | if(-not (Test-Path ..\baseInfrastructure\asg.json -PathType Leaf)) 19 | { 20 | Write-Host -ForegroundColor Red -BackgroundColor White "File ..\baseInfrastructure\asg.json does not exit, ensure that your working directory is correct." 21 | exit 22 | } 23 | 24 | 25 | Write-Host "Creating the resource group :" $ResourceGroupNameforASG 26 | $rg = Get-AzResourceGroup -Name $ResourceGroupNameforASG -Location $location -ErrorAction SilentlyContinue 27 | if(!$rg) 28 | { 29 | New-AzResourceGroup -Name $ResourceGroupNameforASG -Location $location 30 | } 31 | 32 | Write-Host "Creating the application security groups" 33 | 34 | $testRes = Test-AzResourceGroupDeployment -ResourceGroupName $ResourceGroupNameforASG -TemplateFile ..\baseInfrastructure\asg.json -TemplateParameterFile ..\baseInfrastructure\asg.parameters.json 35 | 36 | if($testRes) 37 | { 38 | $errStr = [System.String]::Format('The deployment would fail: {0}', $testRes.Message) 39 | Write-Error -Message $errStr 40 | exit 41 | } 42 | 43 | $res = New-AzResourceGroupDeployment -ResourceGroupName $ResourceGroupNameforASG -Name "Application_Security_Group_Deployment" -TemplateFile ..\baseInfrastructure\asg.json -TemplateParameterFile ..\baseInfrastructure\asg.parameters.json 44 | 45 | if ($res.ProvisioningState -ne "Succeeded") { 46 | Write-Error -Message "The deployment failed" 47 | } 48 | 49 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/deploymentScripts/deployNetwork.ps1: -------------------------------------------------------------------------------- 1 | # select subscription 2 | 3 | $ResourceGroupName = "demo-vnet-ne-rg" 4 | $location = "northeurope" 5 | $subscriptionID = "80d5ed43-1465-432b-8914-5e1f68d49330" 6 | 7 | 8 | Write-Host "Deployment started: " (Get-Date).ToString("yyyy-MM-dd HH:mm") 9 | 10 | $Subscription = Get-AzSubscription -SubscriptionId $SubscriptionId 11 | 12 | if (-Not $Subscription) { 13 | Write-Host -ForegroundColor Red -BackgroundColor White "Sorry, it seems you are not connected to Azure or don't have access to the subscription. Please use Connect-AzAccount to connect." 14 | exit 15 | 16 | } 17 | 18 | if(-not (Test-Path ..\baseInfrastructure\network.json -PathType Leaf)) 19 | { 20 | Write-Host -ForegroundColor Red -BackgroundColor White "File ..\baseInfrastructure\network.json does not exit, ensure that your working directory is correct." 21 | exit 22 | } 23 | 24 | 25 | Write-Host "Creating the resource group :" $ResourceGroupName 26 | $rg = Get-AzResourceGroup -Name $ResourceGroupName -Location $location -ErrorAction SilentlyContinue 27 | if(!$rg) 28 | { 29 | New-AzResourceGroup -Name $ResourceGroupName -Location $location 30 | } 31 | 32 | Write-Host "Creating the network" 33 | $testRes = Test-AzResourceGroupDeployment -ResourceGroupName $ResourceGroupName -TemplateFile ..\baseInfrastructure\network.json -TemplateParameterFile ..\baseInfrastructure\network.parameters.json -Verbose 34 | if($testRes) 35 | { 36 | $errStr = [System.String]::Format('The deployment would fail: {0}', $testRes.Message) 37 | Write-Error -Message $errStr 38 | exit 39 | } 40 | 41 | $res = New-AzResourceGroupDeployment -Name "Network_Deployment" -ResourceGroupName $ResourceGroupName -TemplateFile ..\baseInfrastructure\network.json -TemplateParameterFile ..\baseInfrastructure\network.parameters.json -Verbose 42 | if ($res.ProvisioningState -ne "Succeeded") { 43 | Write-Error -Message "The deployment failed" 44 | } 45 | 46 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/README.md: -------------------------------------------------------------------------------- 1 | # **Server Templates** 2 | 3 | ## **APPVM.json** 4 | 5 | This is the template for an application server virtual machine designed to host the application server built using a marketplace image 6 | 7 | ## **anyDBProdVM.json** 8 | 9 | This is the template for a database virtual machine built using a marketplace image 10 | 11 | ## **HanaProdVM.json** 12 | 13 | This is the template for a database virtual machine designed to host the Hana Server built using a marketplace image 14 | 15 | ## **HanaDevVM.json** 16 | 17 | This is the template for a development database virtual machine designed to host the Hana Server server built using a marketplace image 18 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/AppVMDisks.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2018-05-01/deploymentTemplate.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "machineName": { 6 | "type": "string" 7 | }, 8 | "machineSize": { 9 | "type": "string" 10 | }, 11 | "location": { 12 | "type": "string", 13 | "metadata": { 14 | "description": "The location of the resource" 15 | }, 16 | "defaultValue": "" 17 | }, 18 | "zone": { 19 | "type": "string", 20 | "metadata": { 21 | "description": "The zonal info of the disk" 22 | } 23 | } 24 | }, 25 | "variables": { 26 | "diskSizes": { 27 | "APP": { 28 | "disks": [ 29 | { 30 | "lun": 0, 31 | "createOption": "attach", 32 | "caching": "ReadWrite", 33 | "writeAcceleratorEnabled": false, 34 | "id": null, 35 | "name": "-data01", 36 | "storageAccountType": null, 37 | "sku": "Premium_LRS", 38 | "properties": { 39 | "diskSizeGB": 127, 40 | "creationData": { 41 | "createOption": "empty" 42 | } 43 | } 44 | } 45 | ] 46 | } 47 | }, 48 | "dataDisks": "[variables('diskSizes')[parameters('machineSize')].disks]" 49 | }, 50 | "resources": [ 51 | { 52 | "name": "[concat(parameters('machineName'), variables('dataDisks')[copyIndex()].name)]", 53 | "type": "Microsoft.Compute/disks", 54 | "apiVersion": "2019-07-01", 55 | "location": "[parameters('location')]", 56 | "properties": "[variables('dataDisks')[copyIndex()].properties]", 57 | "zones": "[if(empty(parameters('Zone')), '', json(concat('[',parameters('Zone'),']')) )]", 58 | "sku": { 59 | "name": "[variables('dataDisks')[copyIndex()].sku]" 60 | }, 61 | "copy": { 62 | "name": "managedDiskResources", 63 | "count": "[length(variables('dataDisks'))]" 64 | } 65 | } 66 | ], 67 | "outputs": { 68 | "diskArray": { 69 | "type": "array", 70 | "value": "[variables('dataDisks')]" 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/anydb-lvm-10datadisks2logdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | 4 | # Create the data volume 5 | 6 | sudo pvcreate /dev/disk/azure/scsi1/lun0 7 | sudo pvcreate /dev/disk/azure/scsi1/lun1 8 | sudo pvcreate /dev/disk/azure/scsi1/lun2 9 | sudo pvcreate /dev/disk/azure/scsi1/lun3 10 | sudo pvcreate /dev/disk/azure/scsi1/lun4 11 | sudo pvcreate /dev/disk/azure/scsi1/lun5 12 | sudo pvcreate /dev/disk/azure/scsi1/lun6 13 | sudo pvcreate /dev/disk/azure/scsi1/lun7 14 | sudo pvcreate /dev/disk/azure/scsi1/lun8 15 | sudo pvcreate /dev/disk/azure/scsi1/lun9 16 | 17 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 /dev/disk/azure/scsi1/lun5 /dev/disk/azure/scsi1/lun6 /dev/disk/azure/scsi1/lun7 /dev/disk/azure/scsi1/lun8 /dev/disk/azure/scsi1/lun9 18 | sudo lvcreate --extents 100%FREE --stripes 10 --name data-lv01 data-vg01 19 | 20 | sudo mkfs -t ext4 /dev/data-vg01/data-lv01 21 | sudo mkdir /data 22 | 23 | echo "/dev/data-vg01/data-lv01 /data ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 24 | 25 | sudo pvcreate /dev/disk/azure/scsi1/lun10 26 | sudo pvcreate /dev/disk/azure/scsi1/lun11 27 | 28 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun10 /dev/disk/azure/scsi1/lun11 29 | sudo lvcreate --extents 100%FREE --stripes 2 --name log-lv01 log-vg01 30 | sudo mkfs -t ext4 /dev/log-vg01/log-lv01 31 | sudo mkdir /log 32 | 33 | echo "/dev/log-vg01/log-lv01 /log ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 34 | 35 | 36 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/anydb-lvm-13datadisks3logdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | 4 | # Create the data volume 5 | 6 | sudo pvcreate /dev/disk/azure/scsi1/lun0 7 | sudo pvcreate /dev/disk/azure/scsi1/lun1 8 | sudo pvcreate /dev/disk/azure/scsi1/lun2 9 | sudo pvcreate /dev/disk/azure/scsi1/lun3 10 | sudo pvcreate /dev/disk/azure/scsi1/lun4 11 | sudo pvcreate /dev/disk/azure/scsi1/lun5 12 | sudo pvcreate /dev/disk/azure/scsi1/lun6 13 | sudo pvcreate /dev/disk/azure/scsi1/lun7 14 | sudo pvcreate /dev/disk/azure/scsi1/lun8 15 | sudo pvcreate /dev/disk/azure/scsi1/lun9 16 | sudo pvcreate /dev/disk/azure/scsi1/lun10 17 | sudo pvcreate /dev/disk/azure/scsi1/lun11 18 | sudo pvcreate /dev/disk/azure/scsi1/lun12 19 | 20 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 /dev/disk/azure/scsi1/lun5 /dev/disk/azure/scsi1/lun6 /dev/disk/azure/scsi1/lun7 /dev/disk/azure/scsi1/lun8 /dev/disk/azure/scsi1/lun9 /dev/disk/azure/scsi1/lun10 /dev/disk/azure/scsi1/lun11 /dev/disk/azure/scsi1/lun12 21 | sudo lvcreate --extents 100%FREE --stripes 13 --name data-lv01 data-vg01 22 | 23 | sudo mkfs -t ext4 /dev/data-vg01/data-lv01 24 | sudo mkdir /data 25 | echo "/dev/data-vg01/data-lv01 /data ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 26 | 27 | sudo pvcreate /dev/disk/azure/scsi1/lun13 28 | sudo pvcreate /dev/disk/azure/scsi1/lun14 29 | sudo pvcreate /dev/disk/azure/scsi1/lun15 30 | 31 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun13 /dev/disk/azure/scsi1/lun14 /dev/disk/azure/scsi1/lun15 32 | sudo lvcreate --extents 100%FREE --stripes 3 --name log-lv01 log-vg01 33 | sudo mkfs -t ext4 /dev/log-vg01/log-lv01 34 | sudo mkdir /log 35 | 36 | echo "/dev/log-vg01/log-lv01 /log ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 37 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/anydb-lvm-2datadisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | sudo pvcreate /dev/disk/azure/scsi1/lun0 4 | sudo pvcreate /dev/disk/azure/scsi1/lun1 5 | 6 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 7 | sudo lvcreate --extents 100%FREE --stripes 2 --name data-lv01 data-vg01 8 | sudo mkfs -t ext4 /dev/data-vg01/data-lv01 9 | sudo mkdir /data 10 | 11 | echo "/dev/data-vg01/data-lv01 /data ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 12 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/anydb-lvm-3datadisks2logdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | sudo pvcreate /dev/disk/azure/scsi1/lun0 4 | sudo pvcreate /dev/disk/azure/scsi1/lun1 5 | sudo pvcreate /dev/disk/azure/scsi1/lun2 6 | 7 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 8 | sudo lvcreate --extents 100%FREE --stripes 3 --name data-lv01 data-vg01 9 | sudo mkfs -t ext4 /dev/data-vg01/data-lv01 10 | sudo mkdir /data 11 | 12 | echo "/dev/data-vg01/data-lv01 /data ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 13 | 14 | sudo pvcreate /dev/disk/azure/scsi1/lun3 15 | sudo pvcreate /dev/disk/azure/scsi1/lun4 16 | 17 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 18 | sudo lvcreate --extents 100%FREE --stripes 2 --name log-lv01 log-vg01 19 | sudo mkfs -t ext4 /dev/log-vg01/log-lv01 20 | sudo mkdir /log 21 | 22 | echo "/dev/log-vg01/log-lv01 /log ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 23 | 24 | 25 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/anydb-lvm-4datadisks2logdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | sudo pvcreate /dev/disk/azure/scsi1/lun0 4 | sudo pvcreate /dev/disk/azure/scsi1/lun1 5 | sudo pvcreate /dev/disk/azure/scsi1/lun2 6 | sudo pvcreate /dev/disk/azure/scsi1/lun3 7 | 8 | 9 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 10 | sudo lvcreate --extents 100%FREE --stripes 4 --name data-lv01 data-vg01 11 | sudo mkfs -t ext4 /dev/data-vg01/data-lv01 12 | sudo mkdir /data 13 | 14 | echo "/dev/data-vg01/data-lv01 /data ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 15 | 16 | sudo pvcreate /dev/disk/azure/scsi1/lun4 17 | sudo pvcreate /dev/disk/azure/scsi1/lun5 18 | 19 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun4 /dev/disk/azure/scsi1/lun5 20 | sudo lvcreate --extents 100%FREE --stripes 2 --name log-lv01 log-vg01 21 | sudo mkfs -t ext4 /dev/log-vg01/log-lv01 22 | sudo mkdir /log 23 | 24 | echo "/dev/log-vg01/log-lv01 /log ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 25 | 26 | 27 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/anydb-lvm-5datadisks2logdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | # Checking which /dev/sd? is mapped to which LUN 3 | 4 | 5 | #Create the Data volume 6 | sudo pvcreate /dev/disk/azure/scsi1/lun0 7 | sudo pvcreate /dev/disk/azure/scsi1/lun1 8 | sudo pvcreate /dev/disk/azure/scsi1/lun2 9 | sudo pvcreate /dev/disk/azure/scsi1/lun3 10 | sudo pvcreate /dev/disk/azure/scsi1/lun4 11 | 12 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 13 | sudo lvcreate --extents 100%FREE --stripes 5 --name data-lv01 data-vg01 14 | 15 | sudo mkfs -t ext4 /dev/data-vg01/data-lv01 16 | sudo mkdir /data 17 | 18 | echo "/dev/data-vg01/data-lv01 /data ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 19 | 20 | sudo pvcreate /dev/disk/azure/scsi1/lun5 21 | sudo pvcreate /dev/disk/azure/scsi1/lun6 22 | 23 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun5 /dev/disk/azure/scsi1/lun6 24 | sudo lvcreate --extents 100%FREE --stripes 2 --name log-lv01 log-vg01 25 | sudo mkfs -t ext4 /dev/log-vg01/log-lv01 26 | sudo mkdir /log 27 | 28 | echo "/dev/log-vg01/log-lv01 /log ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 29 | 30 | 31 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/anydb-lvm-8datadisks2logdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | # Create the data volume 4 | sudo pvcreate /dev/disk/azure/scsi1/lun0 5 | sudo pvcreate /dev/disk/azure/scsi1/lun1 6 | sudo pvcreate /dev/disk/azure/scsi1/lun2 7 | sudo pvcreate /dev/disk/azure/scsi1/lun3 8 | sudo pvcreate /dev/disk/azure/scsi1/lun4 9 | sudo pvcreate /dev/disk/azure/scsi1/lun5 10 | sudo pvcreate /dev/disk/azure/scsi1/lun6 11 | sudo pvcreate /dev/disk/azure/scsi1/lun7 12 | 13 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 /dev/disk/azure/scsi1/lun5 /dev/disk/azure/scsi1/lun6 /dev/disk/azure/scsi1/lun7 14 | sudo lvcreate --extents 100%FREE --stripes 8 --name data-lv01 data-vg01 15 | 16 | sudo mkfs -t ext4 /dev/data-vg01/data-lv01 17 | sudo mkdir /data 18 | 19 | echo "/dev/data-vg01/data-lv01 /data ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 20 | 21 | sudo pvcreate /dev/disk/azure/scsi1/lun8 22 | sudo pvcreate /dev/disk/azure/scsi1/lun9 23 | 24 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun8 /dev/disk/azure/scsi1/lun9 25 | sudo lvcreate --extents 100%FREE --stripes 2 --name log-lv01 log-vg01 26 | sudo mkfs -t ext4 /dev/log-vg01/log-lv01 27 | sudo mkdir /log 28 | 29 | echo "/dev/log-vg01/log-lv01 /log ext4 defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 30 | 31 | 32 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hana-lvm-3datadisks2logdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | 4 | # Creating the /hana/data volume 5 | sudo pvcreate /dev/disk/azure/scsi1/lun0 6 | sudo pvcreate /dev/disk/azure/scsi1/lun1 7 | sudo pvcreate /dev/disk/azure/scsi1/lun2 8 | 9 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 10 | sudo lvcreate --extents 100%FREE --stripes 3 --stripesize 256 --name data-lv01 data-vg01 11 | sudo mkfs.xfs /dev/data-vg01/data-lv01 12 | 13 | sudo mkdir /hana /hana/data 14 | # Update fstab 15 | echo "/dev/data-vg01/data-lv01 /hana/data xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 16 | 17 | # Creating the /hana/log volume 18 | sudo pvcreate /dev/disk/azure/scsi1/lun3 19 | sudo pvcreate /dev/disk/azure/scsi1/lun4 20 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 21 | sudo lvcreate --extents 100%FREE --stripes 2 --stripesize 32 --name log-lv01 log-vg01 22 | sudo mkfs.xfs /dev/log-vg01/log-lv01 23 | 24 | sudo mkdir /hana/log 25 | # Update fstab 26 | echo "/dev/log-vg01/log-lv01 /hana/log xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 27 | 28 | # Creating the /hana/shared volume 29 | sudo pvcreate /dev/disk/azure/scsi1/lun5 30 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun5 31 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 32 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 33 | 34 | sudo mkdir /hana/shared 35 | # Update fstab 36 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 37 | 38 | # Creating the /usr/sap volume 39 | sudo pvcreate /dev/disk/azure/scsi1/lun6 40 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun6 41 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 42 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 43 | 44 | sudo mkdir /usr/sap 45 | # Update fstab 46 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 47 | 48 | # Creating the /hana/backup volume 49 | sudo pvcreate /dev/disk/azure/scsi1/lun7 50 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun7 51 | sudo lvcreate --extents 100%FREE --name backup-lv01 backup-vg01 52 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 53 | 54 | sudo mkdir /hana/backup 55 | 56 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 57 | 58 | sudo chmod -R 0755 /hana 59 | sudo chmod -R 0755 /usr/sap 60 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hana-lvm-3datadisks2logdisks2backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | # Creating the /hana/data volume 3 | 4 | sudo pvcreate /dev/disk/azure/scsi1/lun0 5 | sudo pvcreate /dev/disk/azure/scsi1/lun1 6 | sudo pvcreate /dev/disk/azure/scsi1/lun2 7 | 8 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 9 | sudo lvcreate --extents 100%FREE --stripes 3 --stripesize 256 --name data-lv01 data-vg01 10 | sudo mkfs.xfs /dev/data-vg01/data-lv01 11 | 12 | sudo mkdir /hana /hana/data 13 | # Update fstab 14 | echo "/dev/data-vg01/data-lv01 /hana/data xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 15 | 16 | # Creating the /hana/log volume 17 | sudo pvcreate /dev/disk/azure/scsi1/lun3 18 | sudo pvcreate /dev/disk/azure/scsi1/lun4 19 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 20 | sudo lvcreate --extents 100%FREE --stripes 2 --stripesize 32 --name log-lv01 log-vg01 21 | sudo mkfs.xfs /dev/log-vg01/log-lv01 22 | 23 | sudo mkdir /hana/log 24 | # Update fstab 25 | echo "/dev/log-vg01/log-lv01 /hana/log xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 26 | 27 | # Creating the /hana/shared volume 28 | sudo pvcreate /dev/disk/azure/scsi1/lun5 29 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun5 30 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 31 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 32 | 33 | sudo mkdir /hana/shared 34 | # Update fstab 35 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 36 | 37 | # Creating the /usr/sap volume 38 | sudo pvcreate /dev/disk/azure/scsi1/lun6 39 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun6 40 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 41 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 42 | 43 | sudo mkdir /usr/sap 44 | # Update fstab 45 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 46 | 47 | # Creating the /hana/backup volume 48 | sudo pvcreate /dev/disk/azure/scsi1/lun7 49 | sudo pvcreate /dev/disk/azure/scsi1/lun8 50 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun7 /dev/disk/azure/scsi1/lun8 51 | sudo lvcreate --extents 100%FREE --stripes 2 --name backup-lv01 backup-vg01 52 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 53 | sudo mkdir /hana/backup 54 | 55 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 56 | 57 | sudo chmod -R 0755 /hana 58 | sudo chmod -R 0755 /usr/sap 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hana-lvm-3datadisks2logdisks3backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | # Creating the /hana/data volume 4 | sudo pvcreate /dev/disk/azure/scsi1/lun0 5 | sudo pvcreate /dev/disk/azure/scsi1/lun1 6 | sudo pvcreate /dev/disk/azure/scsi1/lun2 7 | 8 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 9 | sudo lvcreate --extents 100%FREE --stripes 3 --stripesize 256 --name data-lv01 data-vg01 10 | sudo mkfs.xfs /dev/data-vg01/data-lv01 11 | 12 | sudo mkdir /hana /hana/data 13 | # Update fstab 14 | echo "/dev/data-vg01/data-lv01 /hana/data xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 15 | 16 | # Creating the /hana/log volume 17 | sudo pvcreate /dev/disk/azure/scsi1/lun3 18 | sudo pvcreate /dev/disk/azure/scsi1/lun4 19 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 20 | sudo lvcreate --extents 100%FREE --stripes 2 --stripesize 32 --name log-lv01 log-vg01 21 | sudo mkfs.xfs /dev/log-vg01/log-lv01 22 | 23 | sudo mkdir /hana/log 24 | # Update fstab 25 | echo "/dev/log-vg01/log-lv01 /hana/log xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 26 | 27 | # Creating the /hana/shared volume 28 | sudo pvcreate /dev/disk/azure/scsi1/lun5 29 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun5 30 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 31 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 32 | 33 | sudo mkdir /hana/shared 34 | # Update fstab 35 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 36 | 37 | # Creating the /usr/sap volume 38 | sudo pvcreate /dev/disk/azure/scsi1/lun6 39 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun6 40 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 41 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 42 | 43 | sudo mkdir /usr/sap 44 | # Update fstab 45 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 46 | 47 | # Creating the /hana/backup volume 48 | sudo pvcreate /dev/disk/azure/scsi1/lun7 49 | sudo pvcreate /dev/disk/azure/scsi1/lun8 50 | sudo pvcreate /dev/disk/azure/scsi1/lun9 51 | 52 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun7 /dev/disk/azure/scsi1/lun8 /dev/disk/azure/scsi1/lun9 53 | sudo lvcreate --extents 100%FREE --stripes 3 --name backup-lv01 backup-vg01 54 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 55 | sudo mkdir /hana/backup 56 | 57 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 58 | 59 | sudo chmod -R 0755 /hana 60 | sudo chmod -R 0755 /usr/sap 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hana-lvm-4datadisks2logdisks2backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | # Checking which /dev/sd? is mapped to which LUN 4 | 5 | # Creating the /hana/data volume 6 | sudo pvcreate /dev/disk/azure/scsi1/lun0 7 | sudo pvcreate /dev/disk/azure/scsi1/lun1 8 | sudo pvcreate /dev/disk/azure/scsi1/lun2 9 | sudo pvcreate /dev/disk/azure/scsi1/lun3 10 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 11 | sudo lvcreate --extents 100%FREE --stripes 4 --stripesize 256 --name data-lv01 data-vg01 12 | sudo mkfs.xfs /dev/data-vg01/data-lv01 13 | 14 | sudo mkdir /hana /hana/data 15 | # Update fstab 16 | echo "/dev/data-vg01/data-lv01 /hana/data xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 17 | 18 | # Creating the /hana/log volume 19 | sudo pvcreate /dev/disk/azure/scsi1/lun4 20 | sudo pvcreate /dev/disk/azure/scsi1/lun5 21 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun4 /dev/disk/azure/scsi1/lun5 22 | sudo lvcreate --extents 100%FREE --stripes 2 --stripesize 32 --name log-lv01 log-vg01 23 | sudo mkfs.xfs /dev/log-vg01/log-lv01 24 | 25 | sudo mkdir /hana/log 26 | # Update fstab 27 | echo "/dev/log-vg01/log-lv01 /hana/log xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 28 | 29 | # Creating the /hana/shared volume 30 | sudo pvcreate /dev/disk/azure/scsi1/lun6 31 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun6 32 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 33 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 34 | 35 | sudo mkdir /hana/shared 36 | # Update fstab 37 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 38 | 39 | # Creating the /usr/sap volume 40 | sudo pvcreate /dev/disk/azure/scsi1/lun7 41 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun7 42 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 43 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 44 | 45 | sudo mkdir /usr/sap 46 | # Update fstab 47 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 48 | 49 | # Creating the /hana/backup volume 50 | sudo pvcreate /dev/disk/azure/scsi1/lun8 51 | sudo pvcreate /dev/disk/azure/scsi1/lun9 52 | 53 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun8 /dev/disk/azure/scsi1/lun9 54 | sudo lvcreate --extents 100%FREE --stripes 2 --name backup-lv01 backup-vg01 55 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 56 | sudo mkdir /hana/backup 57 | 58 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 59 | 60 | sudo chmod -R 0755 /hana 61 | sudo chmod -R 0755 /usr/sap 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hana-lvm-4datadisks2logdisks3backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | # Creating the /hana/data volume 4 | sudo pvcreate /dev/disk/azure/scsi1/lun0 5 | sudo pvcreate /dev/disk/azure/scsi1/lun1 6 | sudo pvcreate /dev/disk/azure/scsi1/lun2 7 | sudo pvcreate /dev/disk/azure/scsi1/lun3 8 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 9 | sudo lvcreate --extents 100%FREE --stripes 4 --stripesize 256 --name data-lv01 data-vg01 10 | sudo mkfs.xfs /dev/data-vg01/data-lv01 11 | 12 | sudo mkdir /hana /hana/data 13 | # Update fstab 14 | echo "/dev/data-vg01/data-lv01 /hana/data xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 15 | 16 | # Creating the /hana/log volume 17 | sudo pvcreate /dev/disk/azure/scsi1/lun4 18 | sudo pvcreate /dev/disk/azure/scsi1/lun5 19 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun4 /dev/disk/azure/scsi1/lun5 20 | sudo lvcreate --extents 100%FREE --stripes 2 --stripesize 32 --name log-lv01 log-vg01 21 | sudo mkfs.xfs /dev/log-vg01/log-lv01 22 | 23 | sudo mkdir /hana/log 24 | # Update fstab 25 | echo "/dev/log-vg01/log-lv01 /hana/log xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 26 | 27 | # Creating the /hana/shared volume 28 | sudo pvcreate /dev/disk/azure/scsi1/lun6 29 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun6 30 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 31 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 32 | 33 | sudo mkdir /hana/shared 34 | # Update fstab 35 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 36 | 37 | # Creating the /usr/sap volume 38 | sudo pvcreate /dev/disk/azure/scsi1/lun7 39 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun7 40 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 41 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 42 | 43 | sudo mkdir /usr/sap 44 | # Update fstab 45 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 46 | 47 | # Creating the /hana/backup volume 48 | sudo pvcreate /dev/disk/azure/scsi1/lun8 49 | sudo pvcreate /dev/disk/azure/scsi1/lun9 50 | sudo pvcreate /dev/disk/azure/scsi1/lun10 51 | 52 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun8 /dev/disk/azure/scsi1/lun9 /dev/disk/azure/scsi1/lun10 53 | sudo lvcreate --extents 100%FREE --stripes 3 --name backup-lv01 backup-vg01 54 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 55 | sudo mkdir /hana/backup 56 | # Update fstab 57 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 58 | 59 | sudo chmod -R 0755 /hana 60 | sudo chmod -R 0755 /usr/sap 61 | 62 | 63 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hana-lvm-5datadisks2logdisks4backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | # Creating the /hana/data volume 4 | sudo pvcreate /dev/disk/azure/scsi1/lun0 5 | sudo pvcreate /dev/disk/azure/scsi1/lun1 6 | sudo pvcreate /dev/disk/azure/scsi1/lun2 7 | sudo pvcreate /dev/disk/azure/scsi1/lun3 8 | sudo pvcreate /dev/disk/azure/scsi1/lun4 9 | 10 | sudo mkdir /hana /hana/data 11 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 12 | sudo lvcreate --extents 100%FREE --stripes 5 --stripesize 256 --name data-lv01 data-vg01 13 | # Update fstab 14 | echo "/dev/data-vg01/data-lv01 /hana/data xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 15 | 16 | # Creating the /hana/log volume 17 | sudo pvcreate /dev/disk/azure/scsi1/lun5 18 | sudo pvcreate /dev/disk/azure/scsi1/lun6 19 | 20 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun5 /dev/disk/azure/scsi1/lun6 21 | sudo lvcreate --extents 100%FREE --stripes 2 --stripesize 32 --name log-lv01 log-vg01 22 | sudo mkfs.xfs /dev/log-vg01/log-lv01 23 | sudo mkdir /hana/log 24 | # Update fstab 25 | echo "/dev/log-vg01/log-lv01 /hana/log xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 26 | 27 | sudo pvcreate /dev/disk/azure/scsi1/lun7 28 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun7 29 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 30 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 31 | 32 | sudo mkdir /hana/shared 33 | # Update fstab 34 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 35 | 36 | # Creating the /usr/sap volume 37 | sudo pvcreate /dev/disk/azure/scsi1/lun8 38 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun8 39 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 40 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 41 | 42 | sudo mkdir /usr/sap 43 | # Update fstab 44 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 45 | 46 | # Creating the /hana/backup volume 47 | sudo pvcreate /dev/disk/azure/scsi1/lun9 48 | sudo pvcreate /dev/disk/azure/scsi1/lun10 49 | sudo pvcreate /dev/disk/azure/scsi1/lun11 50 | sudo pvcreate /dev/disk/azure/scsi1/lun12 51 | 52 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun9 /dev/disk/azure/scsi1/lun10 /dev/disk/azure/scsi1/lun11 /dev/disk/azure/scsi1/lun12 53 | sudo lvcreate --extents 100%FREE --stripes 4 --name backup-lv01 backup-vg01 54 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 55 | sudo mkdir /backup 56 | # Update fstab 57 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 58 | 59 | sudo chmod -R 0755 /hana 60 | sudo chmod -R 0755 /usr/sap 61 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hana-lvm-8datadisks2logdisks4backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | # Creating the /hana/data volume 4 | sudo pvcreate /dev/disk/azure/scsi1/lun0 5 | sudo pvcreate /dev/disk/azure/scsi1/lun1 6 | sudo pvcreate /dev/disk/azure/scsi1/lun2 7 | sudo pvcreate /dev/disk/azure/scsi1/lun3 8 | sudo pvcreate /dev/disk/azure/scsi1/lun4 9 | sudo pvcreate /dev/disk/azure/scsi1/lun5 10 | sudo pvcreate /dev/disk/azure/scsi1/lun6 11 | sudo pvcreate /dev/disk/azure/scsi1/lun7 12 | 13 | sudo mkdir /hana /hana/data 14 | 15 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 /dev/disk/azure/scsi1/lun5 /dev/disk/azure/scsi1/lun6 /dev/disk/azure/scsi1/lun7 16 | sudo lvcreate --extents 100%FREE --stripes 8 --stripesize 256 --name data-lv01 data-vg01 17 | # Updating fstab 18 | echo "/dev/data-vg01/data-lv01 /hana/data xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 19 | 20 | # Creating the /hana/log volume 21 | sudo pvcreate /dev/disk/azure/scsi1/lun8 22 | sudo pvcreate /dev/disk/azure/scsi1/lun9 23 | 24 | sudo vgcreate log-vg01 /dev/disk/azure/scsi1/lun8 /dev/disk/azure/scsi1/lun9 25 | sudo lvcreate --extents 100%FREE --stripes 2 --stripesize 32 --name log-lv01 log-vg01 26 | sudo mkfs.xfs /dev/log-vg01/log-lv01 27 | sudo mkdir /hana/log 28 | # Updating fstab 29 | echo "/dev/log-vg01/log-lv01 /hana/log xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 30 | 31 | # Creating the /hana/shared volume 32 | sudo pvcreate /dev/disk/azure/scsi1/lun10 33 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun10 34 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 35 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 36 | 37 | sudo mkdir /hana/shared 38 | # Update fstab 39 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 40 | 41 | # Creating the /usr/sap volume 42 | sudo pvcreate /dev/disk/azure/scsi1/lun11 43 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun11 44 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 45 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 46 | 47 | sudo mkdir /usr/sap 48 | # Update fstab 49 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 50 | 51 | # Creating the /hana/backup volume 52 | sudo pvcreate /dev/disk/azure/scsi1/lun12 53 | sudo pvcreate /dev/disk/azure/scsi1/lun13 54 | sudo pvcreate /dev/disk/azure/scsi1/lun14 55 | sudo pvcreate /dev/disk/azure/scsi1/lun15 56 | 57 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun12 /dev/disk/azure/scsi1/lun13 /dev/disk/azure/scsi1/lun14 /dev/disk/azure/scsi1/lun15 58 | sudo lvcreate --extents 100%FREE --stripes 4 --name backup-lv01 backup-vg01 59 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 60 | sudo mkdir /hana/backup 61 | # Updating fstab 62 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 63 | 64 | 65 | sudo chmod -R 0755 /hana 66 | sudo chmod -R 0755 /usr/sap 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hanadev-lvm-2datadisks2backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | sudo pvcreate /dev/disk/azure/scsi1/lun0 4 | sudo pvcreate /dev/disk/azure/scsi1/lun1 5 | 6 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 7 | sudo lvcreate --extents 100%FREE --stripes 2 --stripesize 256 --name data-lv01 data-vg01 8 | sudo mkfs.xfs /dev/data-vg01/data-lv01 9 | sudo mkdir /hana /hana/data 10 | 11 | echo "/dev/data-vg01/data-lv01 /hana xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 12 | 13 | # Create the /hana/shared volume 14 | sudo pvcreate /dev/disk/azure/scsi1/lun2 15 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun2 16 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 17 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 18 | 19 | sudo mkdir /hana/shared 20 | # Update fstab 21 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 22 | 23 | # Creating the /usr/sap volume 24 | sudo pvcreate /dev/disk/azure/scsi1/lun3 25 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun3 26 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 27 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 28 | 29 | sudo mkdir /usr/sap 30 | # Update fstab 31 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 32 | 33 | # Creating the /hana/backup volume 34 | sudo pvcreate /dev/disk/azure/scsi1/lun4 35 | sudo pvcreate /dev/disk/azure/scsi1/lun5 36 | 37 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun4 /dev/disk/azure/scsi1/lun5 38 | sudo lvcreate --extents 100%FREE --stripes 2 --name backup-lv01 backup-vg01 39 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 40 | sudo mkdir /hana/backup 41 | 42 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 43 | 44 | sudo chmod -R 0755 /hana 45 | sudo chmod -R 0755 /usr/sap 46 | 47 | 48 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hanadev-lvm-3datadisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | # Creating the /hana/data volume 4 | sudo pvcreate /dev/disk/azure/scsi1/lun0 5 | sudo pvcreate /dev/disk/azure/scsi1/lun1 6 | sudo pvcreate /dev/disk/azure/scsi1/lun2 7 | 8 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 9 | sudo lvcreate --extents 100%FREE --stripes 3 --stripesize 256 --name data-lv01 data-vg01 10 | sudo mkfs.xfs /dev/data-vg01/data-lv01 11 | 12 | sudo mkdir /hana /hana/data /hana/log 13 | # Update fstab 14 | echo "/dev/data-vg01/data-lv01 /hana xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 15 | 16 | sudo pvcreate /dev/disk/azure/scsi1/lun3 17 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun3 18 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 19 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 20 | 21 | sudo mkdir /hana/shared 22 | # Update fstab 23 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 24 | 25 | # Creating the /usr/sap volume 26 | sudo pvcreate /dev/disk/azure/scsi1/lun4 27 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun4 28 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 29 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 30 | 31 | sudo mkdir /usr/sap 32 | # Update fstab 33 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 34 | 35 | # Creating the /hana/backup volume 36 | sudo pvcreate /dev/disk/azure/scsi1/lun5 37 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun5 38 | sudo lvcreate --extents 100%FREE --stripes 3 --name backup-lv01 backup-vg01 39 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 40 | 41 | sudo mkdir /hana/backup 42 | 43 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 44 | 45 | sudo chmod -R 0755 /hana 46 | sudo chmod -R 0755 /usr/sap -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hanadev-lvm-3datadisks3backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | # Creating the /hana/data volume 3 | sudo pvcreate /dev/disk/azure/scsi1/lun0 4 | sudo pvcreate /dev/disk/azure/scsi1/lun1 5 | sudo pvcreate /dev/disk/azure/scsi1/lun2 6 | 7 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 8 | sudo lvcreate --extents 100%FREE --stripes 3 --stripesize 256 --name data-lv01 data-vg01 9 | sudo mkfs.xfs /dev/data-vg01/data-lv01 10 | 11 | sudo mkdir /hana /hana/data /hana/log 12 | # Update fstab 13 | echo "/dev/data-vg01/data-lv01 /hana xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 14 | 15 | sudo pvcreate /dev/disk/azure/scsi1/lun3 16 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun3 17 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 18 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 19 | 20 | sudo mkdir /hana/shared 21 | # Update fstab 22 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 23 | 24 | # Creating the /usr/sap volume 25 | sudo pvcreate /dev/disk/azure/scsi1/lun4 26 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun4 27 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 28 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 29 | 30 | sudo mkdir /usr/sap 31 | # Update fstab 32 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 33 | 34 | # Creating the /hana/backup volume 35 | sudo pvcreate /dev/disk/azure/scsi1/lun5 36 | sudo pvcreate /dev/disk/azure/scsi1/lun6 37 | sudo pvcreate /dev/disk/azure/scsi1/lun7 38 | 39 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun5 /dev/disk/azure/scsi1/lun6 /dev/disk/azure/scsi1/lun7 40 | sudo lvcreate --extents 100%FREE --stripes 3 --name backup-lv01 backup-vg01 41 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 42 | sudo mkdir /hana/backup 43 | 44 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 45 | 46 | sudo chmod -R 0755 /hana 47 | sudo chmod -R 0755 /usr/sap 48 | 49 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hanadev-lvm-4datadisks3backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | # Creating the /hana volume 4 | sudo pvcreate /dev/disk/azure/scsi1/lun0 5 | sudo pvcreate /dev/disk/azure/scsi1/lun1 6 | sudo pvcreate /dev/disk/azure/scsi1/lun2 7 | sudo pvcreate /dev/disk/azure/scsi1/lun3 8 | 9 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 10 | sudo lvcreate --extents 100%FREE --stripes 4 --stripesize 256 --name data-lv01 data-vg01 11 | sudo mkfs.xfs /dev/data-vg01/data-lv01 12 | sudo mkdir /hana /hana/data /hana/log 13 | # Update fstab 14 | echo "/dev/data-vg01/data-lv01 /hana xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 15 | 16 | #Create the /hana/shared volume 17 | sudo pvcreate /dev/disk/azure/scsi1/lun4 18 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun4 19 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 20 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 21 | 22 | sudo mkdir /hana/shared 23 | # Update fstab 24 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 25 | 26 | # Creating the /usr/sap volume 27 | sudo pvcreate /dev/disk/azure/scsi1/lun5 28 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun5 29 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 30 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 31 | 32 | sudo mkdir /usr/sap 33 | # Update fstab 34 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 35 | 36 | # Creating the /hana/backup volume 37 | 38 | sudo pvcreate /dev/disk/azure/scsi1/lun6 39 | sudo pvcreate /dev/disk/azure/scsi1/lun7 40 | sudo pvcreate /dev/disk/azure/scsi1/lun8 41 | 42 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun6 /dev/disk/azure/scsi1/lun7 /dev/disk/azure/scsi1/lun8 43 | sudo lvcreate --extents 100%FREE --stripes 3 --name backup-lv01 backup-vg01 44 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 45 | sudo mkdir /hana/backup 46 | 47 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 48 | 49 | sudo chmod -R 0755 /hana 50 | sudo chmod -R 0755 /usr/sap 51 | 52 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hanadev-lvm-4datadisks4backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | # Creating the /hana volume 4 | sudo pvcreate /dev/disk/azure/scsi1/lun0 5 | sudo pvcreate /dev/disk/azure/scsi1/lun1 6 | sudo pvcreate /dev/disk/azure/scsi1/lun2 7 | sudo pvcreate /dev/disk/azure/scsi1/lun3 8 | 9 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 10 | sudo lvcreate --extents 100%FREE --stripes 4 --stripesize 256 --name data-lv01 data-vg01 11 | sudo mkfs.xfs /dev/data-vg01/data-lv01 12 | sudo mkdir /hana /hana/data /hana/log 13 | # Update fstab 14 | echo "/dev/data-vg01/data-lv01 /hana xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 15 | 16 | # Creating the /hana/shared volume 17 | sudo pvcreate /dev/disk/azure/scsi1/lun4 18 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun4 19 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 20 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 21 | 22 | sudo mkdir /hana/shared 23 | # Update fstab 24 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 25 | 26 | # Creating the /usr/sap volume 27 | sudo pvcreate /dev/disk/azure/scsi1/lun5 28 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun5 29 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 30 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 31 | 32 | sudo mkdir /usr/sap 33 | # Update fstab 34 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 35 | 36 | # Creating the /hana/backup volume 37 | sudo pvcreate /dev/disk/azure/scsi1/lun6 38 | sudo pvcreate /dev/disk/azure/scsi1/lun7 39 | sudo pvcreate /dev/disk/azure/scsi1/lun8 40 | sudo pvcreate /dev/disk/azure/scsi1/lun9 41 | 42 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun6 /dev/disk/azure/scsi1/lun7 /dev/disk/azure/scsi1/lun8 /dev/disk/azure/scsi1/lun9 43 | sudo lvcreate --extents 100%FREE --stripes 3 --name backup-lv01 backup-vg01 44 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 45 | sudo mkdir /hana/backup 46 | 47 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 48 | 49 | sudo chmod -R 0755 /hana 50 | sudo chmod -R 0755 /usr/sap 51 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hanadev-lvm-5datadisks2backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | # Creating the /hana volume 4 | sudo pvcreate /dev/disk/azure/scsi1/lun0 5 | sudo pvcreate /dev/disk/azure/scsi1/lun1 6 | sudo pvcreate /dev/disk/azure/scsi1/lun2 7 | sudo pvcreate /dev/disk/azure/scsi1/lun3 8 | sudo pvcreate /dev/disk/azure/scsi1/lun4 9 | 10 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 11 | sudo lvcreate --extents 100%FREE --stripes 5 --stripesize 256 --name data-lv01 data-vg01 12 | sudo mkfs.xfs /dev/data-vg01/data-lv01 13 | sudo mkdir /hana /hana/data /hana/log 14 | 15 | echo "/dev/data-vg01/data-lv01 /hana xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 16 | 17 | # Creating the /hana/shared volume 18 | sudo pvcreate /dev/disk/azure/scsi1/lun5 19 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun5 20 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 21 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 22 | 23 | sudo mkdir /hana/shared 24 | # Update fstab 25 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 26 | 27 | # Creating the /usr/sap volume 28 | sudo pvcreate /dev/disk/azure/scsi1/lun6 29 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun6 30 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 31 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 32 | 33 | sudo mkdir /usr/sap 34 | # Update fstab 35 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 36 | 37 | # Creating the /hana/backup volume 38 | sudo pvcreate /dev/disk/azure/scsi1/lun7 39 | sudo pvcreate /dev/disk/azure/scsi1/lun8 40 | 41 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun7 /dev/disk/azure/scsi1/lun8 42 | sudo lvcreate --extents 100%FREE --stripes 2 --name backup-lv01 backup-vg01 43 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 44 | sudo mkdir /backup 45 | 46 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 47 | 48 | sudo chmod -R 0755 /hana 49 | sudo chmod -R 0755 /usr/sap 50 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/disks/lvm/hanadev-lvm-8datadisks4backupdisks.sh: -------------------------------------------------------------------------------- 1 | # Create the volumes 2 | 3 | # Creating the /hana volume 4 | sudo pvcreate /dev/disk/azure/scsi1/lun0 5 | sudo pvcreate /dev/disk/azure/scsi1/lun1 6 | sudo pvcreate /dev/disk/azure/scsi1/lun2 7 | sudo pvcreate /dev/disk/azure/scsi1/lun3 8 | sudo pvcreate /dev/disk/azure/scsi1/lun4 9 | sudo pvcreate /dev/disk/azure/scsi1/lun5 10 | sudo pvcreate /dev/disk/azure/scsi1/lun6 11 | sudo pvcreate /dev/disk/azure/scsi1/lun7 12 | 13 | sudo vgcreate data-vg01 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2 /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 /dev/disk/azure/scsi1/lun5 /dev/disk/azure/scsi1/lun6 /dev/disk/azure/scsi1/lun7 14 | sudo lvcreate --extents 100%FREE --stripes 8 --stripesize 256 --name data-lv01 data-vg01 15 | sudo mkfs.xfs /dev/data-vg01/data-lv01 16 | sudo mkdir /hana /hana/data /hana/log 17 | # Update fstab 18 | echo "/dev/data-vg01/data-lv01 /hana xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 19 | 20 | # Creating the /hana/shared volume 21 | sudo pvcreate /dev/disk/azure/scsi1/lun8 22 | sudo vgcreate shared-vg01 /dev/disk/azure/scsi1/lun8 23 | sudo lvcreate --extents 100%FREE --name shared-lv01 shared-vg01 24 | sudo mkfs.xfs /dev/shared-vg01/shared-lv01 25 | 26 | sudo mkdir /hana/shared 27 | # Update fstab 28 | echo "/dev/shared-vg01/shared-lv01 /hana/shared xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 29 | 30 | # Creating the /usr/sap volume 31 | sudo pvcreate /dev/disk/azure/scsi1/lun9 32 | sudo vgcreate usrsap-vg01 /dev/disk/azure/scsi1/lun9 33 | sudo lvcreate --extents 100%FREE --name usrsap-lv01 usrsap-vg01 34 | sudo mkfs.xfs /dev/usrsap-vg01/usrsap-lv01 35 | 36 | sudo mkdir /usr/sap 37 | # Update fstab 38 | echo "/dev/usrsap-vg01/usrsap-lv01 /usr/sap xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 39 | 40 | # Creating the /hana/backup volume 41 | 42 | sudo pvcreate /dev/disk/azure/scsi1/lun10 43 | sudo pvcreate /dev/disk/azure/scsi1/lun11 44 | sudo pvcreate /dev/disk/azure/scsi1/lun12 45 | sudo pvcreate /dev/disk/azure/scsi1/lun13 46 | 47 | sudo vgcreate backup-vg01 /dev/disk/azure/scsi1/lun10 /dev/disk/azure/scsi1/lun11 /dev/disk/azure/scsi1/lun12 /dev/disk/azure/scsi1/lun13 48 | sudo lvcreate --extents 100%FREE --stripes 4 --name backup-lv01 backup-vg01 49 | sudo mkfs.xfs /dev/backup-vg01/backup-lv01 50 | sudo mkdir /hana/backup 51 | 52 | echo "/dev/backup-vg01/backup-lv01 /hana/backup xfs defaults,nobarrier,nofail 0 2" | sudo tee -a /etc/fstab 53 | 54 | sudo chmod -R 0755 /hana 55 | sudo chmod -R 0755 /usr/sap 56 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/parameterFiles/ASCSVM.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "sapSystemId": { 6 | "value": "[SID]" 7 | }, 8 | "adminUsername": { 9 | "value": "[ADMINUSER]" 10 | }, 11 | "authenticationType": { 12 | "value": "password" 13 | }, 14 | "adminPasswordOrKey": { 15 | "reference": { 16 | "keyVault": { 17 | "id": "[KeyVaultID]" 18 | }, 19 | "secretName": "[PASSWORDSECRET]" 20 | } 21 | }, 22 | "availabilitySetName": { 23 | "value": "[SID]-ascs-avset" 24 | }, 25 | "location": { 26 | "value": "[LOCATION]" 27 | }, 28 | "diagnosticsStorageAccount": 29 | { 30 | "value": "[DIAGNOSTICSACCOUNT]" 31 | }, 32 | "hasPublicIP": { 33 | "value": "[HASPUBLICIP]" 34 | }, 35 | "domainNameLabel": 36 | { 37 | "value": "[DNS]" 38 | }, 39 | "environmentType":{ 40 | "value": "[ENVTYPE]" 41 | }, 42 | "privateIP": { 43 | "value": [""] 44 | }, 45 | "proximityPlacementGroupName": { 46 | "value": "[SID]-ppg" 47 | }, 48 | "publisher": { 49 | "value": "[PUBLISHER]" 50 | }, 51 | "offer": { 52 | "value": "[OFFER]" 53 | }, 54 | "sku": { 55 | "value": "[SKU]" 56 | }, 57 | "version": { 58 | "value": "[VERSION]" 59 | }, 60 | "imageID": { 61 | "value": "[IMAGEID]" 62 | }, 63 | "virtualMachineCount": { 64 | "value": "[VMCount]" 65 | }, 66 | "applicationSecurityGroupName": { 67 | "value": "[APPASG]" 68 | }, 69 | "virtualMachineSize": { 70 | "value": "[MACHINESIZE]" 71 | }, 72 | "virtualMachineName": { 73 | "value": "[SERVERNAME]" 74 | }, 75 | "virtualNetworkResourceGroupName": { 76 | "value": "[VNetRG]" 77 | }, 78 | "virtualNetworkName": { 79 | "value": "[VNetName]" 80 | }, 81 | "subnetName": { 82 | "value": "[AppSubnetName]" 83 | }, 84 | "virtualMachineTagValues": { 85 | "value": { "System": "SAP", "$perfOptimizationLevel": "1" } 86 | }, 87 | "zone": { 88 | "value": [] 89 | } 90 | 91 | 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/parameterFiles/README.md: -------------------------------------------------------------------------------- 1 | # **Server Template Parameter files** 2 | 3 | ```json 4 | 5 | ``` 6 | 7 | ## **APPVM.parameters.json** 8 | 9 | This is the parameter file for an application server virtual machine. 10 | 11 | ## **anyDBProdVM.parameters.json** 12 | 13 | This is the parameter file for a database virtual machine. 14 | 15 | ## **HanaProdVM.parameters.json** 16 | 17 | This is the parameter file for a HANA database virtual machine. 18 | 19 | ## **HanaDevVM.parameters.json** 20 | 21 | This is the parameter file for a HANA development database virtual machine. 22 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/parameterFiles/WDVM.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "sapSystemId": { 6 | "value": "[SID]" 7 | }, 8 | "adminUsername": { 9 | "value": "[ADMINUSER]" 10 | }, 11 | "authenticationType": { 12 | "value": "password" 13 | }, 14 | "adminPasswordOrKey": { 15 | "reference": { 16 | "keyVault": { 17 | "id": "[KeyVaultID]" 18 | }, 19 | "secretName": "[PASSWORDSECRET]" 20 | } 21 | }, 22 | "availabilitySetName": { 23 | "value": "[SID]-web-avset" 24 | }, 25 | "location": { 26 | "value": "[LOCATION]" 27 | }, 28 | "diagnosticsStorageAccount": 29 | { 30 | "value": "[DIAGNOSTICSACCOUNT]" 31 | }, 32 | "environmentType":{ 33 | "value": "[ENVTYPE]" 34 | }, 35 | "hasPublicIP": { 36 | "value": "[HASPUBLICIP]" 37 | }, 38 | "domainNameLabel": 39 | { 40 | "value": "[DNS]" 41 | }, 42 | "privateIP": { 43 | "value": [""] 44 | }, 45 | "proximityPlacementGroupName": { 46 | "value": "[SID]-ppg" 47 | }, 48 | "publisher": { 49 | "value": "[PUBLISHER]" 50 | }, 51 | "offer": { 52 | "value": "[OFFER]" 53 | }, 54 | "sku": { 55 | "value": "[SKU]" 56 | }, 57 | "version": { 58 | "value": "[VERSION]" 59 | }, 60 | "imageID": { 61 | "value": "[IMAGEID]" 62 | }, 63 | "virtualMachineCount": { 64 | "value": "[VMCount]" 65 | }, 66 | "applicationSecurityGroupName": { 67 | "value": "[APPASG]" 68 | }, 69 | "virtualMachineSize": { 70 | "value": "[MACHINESIZE]" 71 | }, 72 | "virtualMachineName": { 73 | "value": "[SERVERNAME]" 74 | }, 75 | "virtualNetworkResourceGroupName": { 76 | "value": "[VNetRG]" 77 | }, 78 | "virtualNetworkName": { 79 | "value": "[VNetName]" 80 | }, 81 | "subnetName": { 82 | "value": "[AppSubnetName]" 83 | }, 84 | "virtualMachineTagValues": { 85 | "value": { "System": "SAP", "$perfOptimizationLevel": "1" } 86 | }, 87 | "zone": { 88 | "value": [] 89 | } 90 | 91 | 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/parameterFiles/anyDBProdVM.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "adminUsername": { 6 | "value": "[ADMINUSER]" 7 | }, 8 | "applicationSecurityGroupName": { 9 | "value": "[DBASG]" 10 | }, 11 | "authenticationType": { 12 | "value": "password" 13 | }, 14 | "adminPasswordOrKey": { 15 | "reference": { 16 | "keyVault": { 17 | "id": "[KeyVaultID]" 18 | }, 19 | "secretName": "[PASSWORDSECRET]" 20 | } 21 | }, 22 | "availabilitySetName": { 23 | "value": "[SID]-db-avset" 24 | }, 25 | "dbSize": { 26 | "value": "[DBSIZE]" 27 | }, 28 | "diagnosticsStorageAccount": 29 | { 30 | "value": "[DIAGNOSTICSACCOUNT]" 31 | }, 32 | "environmentType":{ 33 | "value": "[ENVTYPE]" 34 | }, 35 | "hasPublicIP": { 36 | "value": "[HASPUBLICIP]" 37 | }, 38 | "domainNameLabel": 39 | { 40 | "value": "[DNS]" 41 | }, 42 | "location": { 43 | "value": "[LOCATION]" 44 | }, 45 | "privateIP": { 46 | "value": [""] 47 | }, 48 | "proximityPlacementGroupName": { 49 | "value": "[SID]-ppg" 50 | }, 51 | "publisher": { 52 | "value": "[PUBLISHER]" 53 | }, 54 | "offer": { 55 | "value": "[OFFER]" 56 | }, 57 | "sku": { 58 | "value": "[SKU]" 59 | }, 60 | "version": { 61 | "value": "[VERSION]" 62 | }, 63 | "imageID": { 64 | "value": "[IMAGEID]" 65 | }, 66 | "virtualMachineCount": { 67 | "value": "[VMCount]" 68 | }, 69 | "virtualMachineName": { 70 | "value": "[SERVERNAME]" 71 | }, 72 | "virtualMachineSize": { 73 | "value": "[MACHINESIZE]" 74 | }, 75 | "virtualNetworkResourceGroupName": { 76 | "value": "[VNetRG]" 77 | }, 78 | "virtualNetworkName": { 79 | "value": "[VNetName]" 80 | }, 81 | "sapSystemId": { 82 | "value": "[SID]" 83 | }, 84 | "subnetName": { 85 | "value": "[DBSubnetName]" 86 | }, 87 | "virtualMachineTagValues": { 88 | "value": { "System": "SAP", "$perfOptimizationLevel": "1" } 89 | }, 90 | "zone": { 91 | "value": [] 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/parameterFiles/appVM.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "applicationSecurityGroupName": { 6 | "value": "[APPASG]" 7 | }, 8 | "adminUsername": { 9 | "value": "[ADMINUSER]" 10 | }, 11 | "adminPasswordOrKey": { 12 | "reference": { 13 | "keyVault": { 14 | "id": "[KeyVaultID]" 15 | }, 16 | "secretName": "[PASSWORDSECRET]" 17 | } 18 | }, 19 | "authenticationType": { 20 | "value": "password" 21 | }, 22 | "availabilitySetName": { 23 | "value": "[SID]-app-avset" 24 | }, 25 | "diagnosticsStorageAccount": { 26 | "value": "[DIAGNOSTICSACCOUNT]" 27 | }, 28 | "hasPublicIP": { 29 | "value": "[HASPUBLICIP]" 30 | }, 31 | "domainNameLabel": 32 | { 33 | "value": "[DNS]" 34 | }, 35 | "environmentType": { 36 | "value": "[ENVTYPE]" 37 | }, 38 | "imageID": { 39 | "value": "[IMAGEID]" 40 | }, 41 | "publisher": { 42 | "value": "[PUBLISHER]" 43 | }, 44 | "offer": { 45 | "value": "[OFFER]" 46 | }, 47 | "sku": { 48 | "value": "[SKU]" 49 | }, 50 | "version": { 51 | "value": "[VERSION]" 52 | }, 53 | "location": { 54 | "value": "[LOCATION]" 55 | }, 56 | "privateIP": { 57 | "value": [""] 58 | }, 59 | "proximityPlacementGroupName": { 60 | "value": "[SID]-ppg" 61 | }, 62 | "sapSystemId": { 63 | "value": "[SID]" 64 | }, 65 | "subnetName": { 66 | "value": "[AppSubnetName]" 67 | }, 68 | "virtualMachineName": { 69 | "value": "[SERVERNAME]" 70 | }, 71 | "virtualMachineSize": { 72 | "value": "[MACHINESIZE]" 73 | }, 74 | "virtualMachineCount": { 75 | "value": "[VMCount]" 76 | }, 77 | "virtualNetworkName": { 78 | "value": "[VNetName]" 79 | }, 80 | "virtualNetworkResourceGroupName": { 81 | "value": "[VNetRG]" 82 | }, 83 | "virtualMachineTagValues": { 84 | "value": { "System": "SAP", "$perfOptimizationLevel": "1" } 85 | }, 86 | "zone": { 87 | "value": [] 88 | } 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/parameterFiles/hanaDevVM.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "adminUsername": { 6 | "value": "[ADMINUSER]" 7 | }, 8 | "authenticationType": { 9 | "value": "password" 10 | }, 11 | "adminPasswordOrKey": { 12 | "reference": { 13 | "keyVault": { 14 | "id": "[KeyVaultID]" 15 | }, 16 | "secretName": "[PASSWORDSECRET]" 17 | } 18 | }, 19 | "applicationSecurityGroupName": { 20 | "value": "[DBASG]" 21 | }, 22 | "availabilitySetName": { 23 | "value": "[SID]-db-avset" 24 | }, 25 | "diagnosticsStorageAccount": { 26 | "value": "[DIAGNOSTICSACCOUNT]" 27 | }, 28 | "environmentType":{ 29 | "value": "[ENVTYPE]" 30 | }, 31 | "hasPublicIP": { 32 | "value": "[HASPUBLICIP]" 33 | }, 34 | "domainNameLabel": 35 | { 36 | "value": "[DNS]" 37 | }, 38 | "imageID": { 39 | "value": "[IMAGEID]" 40 | }, 41 | "location": { 42 | "value": "[LOCATION]" 43 | }, 44 | "privateIP": { 45 | "value": [""] 46 | }, 47 | "proximityPlacementGroupName": { 48 | "value": "[SID]-ppg" 49 | }, 50 | "publisher": { 51 | "value": "[PUBLISHER]" 52 | }, 53 | "offer": { 54 | "value": "[OFFER]" 55 | }, 56 | "sku": { 57 | "value": "[SKU]" 58 | }, 59 | "version": { 60 | "value": "[VERSION]" 61 | }, 62 | "sapSystemId": { 63 | "value": "[SID]" 64 | }, 65 | "mountDisks" :{ 66 | "value": "[MOUNTDISKS]" 67 | }, 68 | "virtualMachineCount": { 69 | "value": "[VMCount]" 70 | }, 71 | "virtualMachineName": { 72 | "value": "[SERVERNAME]" 73 | }, 74 | "virtualMachineSize": { 75 | "value": "[MACHINESIZE]" 76 | }, 77 | "virtualNetworkResourceGroupName": { 78 | "value": "[VNetRG]" 79 | }, 80 | "virtualNetworkName": { 81 | "value": "[VNetName]" 82 | }, 83 | "subnetName": { 84 | "value": "[DBSubnetName]" 85 | }, 86 | "virtualMachineTagValues": { 87 | "value": { "System": "SAP", "$perfOptimizationLevel": "1" } 88 | }, 89 | "zone": { 90 | "value": [] 91 | } 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /legacy/ARMTemplates/serverTemplates/parameterFiles/hanaProdVm.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "adminUsername": { 6 | "value": "[ADMINUSER]" 7 | }, 8 | "authenticationType": { 9 | "value": "password" 10 | }, 11 | "adminPasswordOrKey": { 12 | "reference": { 13 | "keyVault": { 14 | "id": "[KeyVaultID]" 15 | }, 16 | "secretName": "[PASSWORDSECRET]" 17 | } 18 | }, 19 | "applicationSecurityGroupName": { 20 | "value": "[DBASG]" 21 | }, 22 | "availabilitySetName": { 23 | "value": "[SID]-db-avset" 24 | }, 25 | "diagnosticsStorageAccount": { 26 | "value": "[DIAGNOSTICSACCOUNT]" 27 | }, 28 | "environmentType":{ 29 | "value": "[ENVTYPE]" 30 | }, 31 | "hasPublicIP": { 32 | "value": "[HASPUBLICIP]" 33 | }, 34 | "domainNameLabel": 35 | { 36 | "value": "[DNS]" 37 | }, 38 | "imageID": { 39 | "value": "[IMAGEID]" 40 | }, 41 | "location": { 42 | "value": "[LOCATION]" 43 | }, 44 | "privateIP": { 45 | "value": [""] 46 | }, 47 | "proximityPlacementGroupName": { 48 | "value": "[SID]-ppg" 49 | }, 50 | "publisher": { 51 | "value": "[PUBLISHER]" 52 | }, 53 | "offer": { 54 | "value": "[OFFER]" 55 | }, 56 | "sku": { 57 | "value": "[SKU]" 58 | }, 59 | "version": { 60 | "value": "[VERSION]" 61 | }, 62 | "sapSystemId": { 63 | "value": "[SID]" 64 | }, 65 | "mountDisks" :{ 66 | "value": "[MOUNTDISKS]" 67 | }, 68 | "virtualMachineCount": { 69 | "value": "[VMCount]" 70 | }, 71 | "virtualMachineName": { 72 | "value": "[SERVERNAME]" 73 | }, 74 | "virtualMachineSize": { 75 | "value": "[MACHINESIZE]" 76 | }, 77 | "virtualNetworkResourceGroupName": { 78 | "value": "[VNetRG]" 79 | }, 80 | "virtualNetworkName": { 81 | "value": "[VNetName]" 82 | }, 83 | "subnetName": { 84 | "value": "[DBSubnetName]" 85 | }, 86 | "virtualMachineTagValues": { 87 | "value": { "System": "SAP", "$perfOptimizationLevel": "1" } 88 | }, 89 | "zone": { 90 | "value": [] 91 | } 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /legacy/AssessmentScripts/VMUtilities.psd1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/AssessmentScripts/VMUtilities.psd1 -------------------------------------------------------------------------------- /legacy/AzureImageBuilder/SLESNetWeaverServerImagFromSharedImageGallery.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | }, 6 | "variables": { 7 | }, 8 | "resources": [ 9 | { 10 | "name": "", 11 | "type": "Microsoft.VirtualMachineImages/imageTemplates", 12 | "apiVersion": "2020-02-14", 13 | "location": "", 14 | "dependsOn": [ 15 | ], 16 | "tags": { 17 | "imagebuilderTemplate": "", 18 | "userIdentity": "enabled" 19 | }, 20 | "identity": { 21 | "type": "UserAssigned", 22 | "userAssignedIdentities": { 23 | "": { 24 | } 25 | 26 | } 27 | }, 28 | "properties": { 29 | "buildTimeoutInMinutes": 40, 30 | "vmProfile": { 31 | "vmSize": "Standard_D2s_v3", 32 | "osDiskSizeGB": 31, 33 | 34 | "vnetConfig": { 35 | "subnetId": "" 36 | } 37 | }, 38 | "source": { 39 | "type": "SharedImageVersion", 40 | "imageVersionId": "" 41 | 42 | }, 43 | "customize": [ 44 | { 45 | "type": "Shell", 46 | "name": "ApplyNetweaver", 47 | "inline": [ 48 | "sudo saptune solution apply NETWEAVER" 49 | ] 50 | }, 51 | { 52 | "type": "Shell", 53 | "name": "Configure_Tuned", 54 | "inline": [ 55 | "sudo saptune daemon start" 56 | ] 57 | } 58 | ], 59 | "distribute": [ 60 | { 61 | "type": "SharedImage", 62 | "galleryImageId": "", 63 | "runOutputName": "", 64 | "artifactTags": { 65 | "source": "azureVmImageBuilder", 66 | "imagebuilderTemplate": "" 67 | }, 68 | "replicationRegions": [ 69 | "", 70 | "" 71 | ] 72 | } 73 | ] 74 | } 75 | } 76 | ] 77 | } 78 | -------------------------------------------------------------------------------- /legacy/AzureImageBuilder/SLESNetWeaverServerImageFromManagedImage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | }, 6 | "variables": { 7 | }, 8 | "resources": [ 9 | { 10 | "name": "", 11 | "type": "Microsoft.VirtualMachineImages/imageTemplates", 12 | "apiVersion": "2020-02-14", 13 | "location": "", 14 | "dependsOn": [ 15 | ], 16 | "tags": { 17 | "imagebuilderTemplate": "" 18 | }, 19 | "identity": { 20 | "type": "UserAssigned", 21 | "userAssignedIdentities": { 22 | "": { 23 | } 24 | 25 | } 26 | }, 27 | "properties": { 28 | "buildTimeoutInMinutes": 60, 29 | "vmProfile": { 30 | "vmSize": "Standard_D2s_v3", 31 | "osDiskSizeGB": 31, 32 | 33 | "vnetConfig": { 34 | "subnetId": "" 35 | } 36 | }, 37 | "source": { 38 | "type": "ManagedImage", 39 | "imageId": "" 40 | 41 | }, 42 | "customize": [ 43 | ], 44 | "distribute": [ 45 | { 46 | "type": "SharedImage", 47 | "galleryImageId": "", 48 | "runOutputName": "", 49 | "artifactTags": { 50 | "source": "azureVmImageBuilder", 51 | "imagebuilderTemplate": "" 52 | }, 53 | "replicationRegions": [ 54 | "", 55 | "" 56 | ] 57 | } 58 | ] 59 | } 60 | } 61 | ] 62 | } 63 | -------------------------------------------------------------------------------- /legacy/AzureImageBuilder/SLESNetWeaverServerImageFromMarketPlace.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | }, 6 | "variables": { 7 | }, 8 | "resources": [ 9 | { 10 | "name": "", 11 | "type": "Microsoft.VirtualMachineImages/imageTemplates", 12 | "apiVersion": "2020-02-14", 13 | "location": "", 14 | "identity": { 15 | "type": "UserAssigned", 16 | "userAssignedIdentities": { 17 | "": { 18 | } 19 | } 20 | }, 21 | "tags": { 22 | "imagebuilderTemplate": "" 23 | }, 24 | 25 | "dependsOn": [ 26 | ], 27 | "properties": { 28 | "buildTimeoutInMinutes": 40, 29 | 30 | "vmProfile": { 31 | "vmSize": "Standard_D2s_v3", 32 | "osDiskSizeGB": 31, 33 | "vnetConfig": { 34 | "subnetId": "" 35 | } 36 | }, 37 | 38 | "source": { 39 | "type": "PlatformImage", 40 | "publisher": "suse", 41 | "offer": "sles-sap-15-sp1", 42 | "sku": "gen1", 43 | "version": "latest" 44 | }, 45 | "customize": [ 46 | { 47 | "type": "Shell", 48 | "name": "InstallSAPTune", 49 | "inline": [ 50 | "sudo zypper install -y saptune" 51 | ] 52 | } 53 | 54 | ], 55 | "distribute": [ 56 | { 57 | "type": "SharedImage", 58 | "galleryImageId": "", 59 | "runOutputName": "", 60 | "artifactTags": { 61 | "source": "azureVmImageBuilder", 62 | "imagebuilderTemplate": "" 63 | }, 64 | "replicationRegions": [ 65 | "", 66 | "" 67 | ] 68 | } 69 | ] 70 | } 71 | } 72 | ] 73 | } 74 | -------------------------------------------------------------------------------- /legacy/AzureImageBuilder/aibRoleImageCreation.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "Azure Image Builder Service Image Creation Role", 3 | "IsCustom": true, 4 | "Description": "Image Builder access to create resources for the image build, you should delete or split out as appropriate", 5 | "Actions": [ 6 | "Microsoft.Compute/galleries/read", 7 | "Microsoft.Compute/galleries/images/read", 8 | "Microsoft.Compute/galleries/images/versions/read", 9 | "Microsoft.Compute/galleries/images/versions/write", 10 | 11 | "Microsoft.Compute/images/write", 12 | "Microsoft.Compute/images/read", 13 | "Microsoft.Compute/images/delete" 14 | ], 15 | "NotActions": [ 16 | 17 | ], 18 | "AssignableScopes": [ 19 | "/subscriptions//resourceGroups/" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /legacy/AzureImageBuilder/aibRoleNetworking.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "Azure Image Builder Service Networking Role", 3 | "IsCustom": true, 4 | "Description": "Image Builder access to create resources for the image build", 5 | "Actions": [ 6 | "Microsoft.Network/virtualNetworks/read", 7 | "Microsoft.Network/virtualNetworks/subnets/join/action" 8 | ], 9 | "NotActions": [ 10 | 11 | ], 12 | "AssignableScopes": [ 13 | "/subscriptions//resourceGroups/" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /legacy/AzureImageBuilder/check-Image-Build-Status.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | .SYNOPSIS 4 | 5 | Check the image build status 6 | 7 | .DESCRIPTION 8 | 9 | This script checks the image build status. 10 | 11 | .EXAMPLE 12 | 13 | .\check-Image-Build-Status.ps1 -SubscriptionName "mysubscription" -region westeurope -ResourceGroupName test-rg -newAvailabilitySetName AvSet1 -newProximityPlacementGroupName PPG1 14 | 15 | .LINK 16 | 17 | https://github.com/Azure/SAP-on-Azure-Scripts-and-Utilities 18 | 19 | .NOTES 20 | 21 | v0.1 - Initial version 22 | 23 | #> 24 | <# 25 | Copyright (c) Microsoft Corporation. 26 | Licensed under the MIT license. 27 | #> 28 | 29 | #Requires -Modules Az.Compute 30 | #Requires -Version 5.1 31 | function Get-ImageBuildStatus { 32 | [OutputType([string])] 33 | 34 | param( 35 | 36 | #Name of Image Gallery 37 | [Parameter(Mandatory = $true)][string]$galleryName, 38 | #Name of Image Definition 39 | [Parameter(Mandatory = $true)][string]$imageDefNameToCheck 40 | ) 41 | 42 | ### Update context 43 | $currentAzureContext = Get-AzContext 44 | 45 | ### Get instance profile 46 | $azureRmProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile 47 | $profileClient = New-Object Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient($azureRmProfile) 48 | 49 | Write-Verbose ("Tenant: {0}" -f $currentAzureContext.Subscription.Name) 50 | 51 | ### Get token 52 | $token = $profileClient.AcquireAccessToken($currentAzureContext.Tenant.TenantId) 53 | $accessToken = $token.AccessToken 54 | 55 | $managementEp = $currentAzureContext.Environment.ResourceManagerUrl 56 | 57 | $urlBuildStatus = [System.String]::Format("{0}subscriptions/{1}/resourceGroups/$ResourceGroupName/providers/Microsoft.VirtualMachineImages/imageTemplates/{2}?api-version=2020-02-14", $managementEp, $currentAzureContext.Subscription.Id, $imageDefNameToCheck) 58 | 59 | $buildStatusResult = Invoke-WebRequest -Method GET -Uri $urlBuildStatus -UseBasicParsing -Headers @{"Authorization" = ("Bearer " + $accessToken) } -ContentType application/json 60 | $buildJsonStatus = $buildStatusResult.Content 61 | 62 | $obj = ConvertFrom-JSON $buildJsonStatus 63 | Write-Host "Provisioning status: ("$obj.properties.lastRunStatus.runState") -" $obj.properties.lastRunStatus.runSubState 64 | 65 | if ($obj.properties.lastRunStatus.runState -eq "Failed") { 66 | Write-Error $obj.properties.lastRunStatus.message 67 | $URL = $obj.properties.lastRunStatus.message.Substring($obj.properties.lastRunStatus.message.IndexOf("build log location: ") + 20) 68 | $URL = $URL.SubString(0, $Url.IndexOf("OperationId") - 2) 69 | 70 | $OperationID = $obj.properties.lastRunStatus.message.SubString($obj.properties.lastRunStatus.message.IndexOf("OperationId") + 13) 71 | $OperationID = $OperationID.SubString(0, $OperationID.IndexOf(".")) 72 | 73 | } 74 | 75 | return $obj.properties.lastRunStatus.runState 76 | } 77 | -------------------------------------------------------------------------------- /legacy/Move-AvSet-to-PPG/README.md: -------------------------------------------------------------------------------- 1 | # Move AvSet to Proximity Placement Group 2 | 3 | ## Proximity Placement Groups (PPGs) 4 | 5 | [Proximity Placement Groups](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/proximity-placement-groups) (PPG) is a contruct where Azure tries to keep multiple resources as close together as possible. 6 | 7 | The Proximity Placement Group needs to be specified during AvSet creation. 8 | 9 | ## Moving the AvSet into a Proximity Placement Group (PPG) 10 | 11 | **requirements:** 12 | 13 | * Azure Subscription 14 | 15 | ## How To 16 | 17 | At the moment there is no option to update the Availability Set from command line, please use the portal to set the configuration: 18 | ![Update Availability Set](Update-AvSet-PPG.png) 19 | 20 | 21 | -------------------------------------------------------------------------------- /legacy/Move-AvSet-to-PPG/Update-AvSet-PPG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/Move-AvSet-to-PPG/Update-AvSet-PPG.png -------------------------------------------------------------------------------- /legacy/Move-VM-from-AvSet-to-AvZone/README.md: -------------------------------------------------------------------------------- 1 | # Move VM to Availability Zone 2 | 3 | ## Availability Zones 4 | 5 | [Availability Zones](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/manage-availability#configure-each-application-tier-into-separate-availability-zones-or-availability-sets) is a construct that allows you to create virtual machines that are on separate physical infrastructure, to get the most application resiliency. 6 | 7 | ## Moving the VM into an Availability Zone 8 | 9 | **requirements:** 10 | 11 | - Azure Subscription 12 | - PowerShell 5.1 or newer 13 | - PowerShell module Az 14 | 15 | ### What the script does 16 | 17 | The script deletes the VM and recreates it preserving networking and storage configuration. The script will snapshot each disk, create a new disk from the snapshot, and create the new VM with the new disks attached. 18 | 19 | There is no need to reinstall the operating system. 20 | 21 | IMPORTANT: the script does not preserve VM extensions. Also, the script will not work for VMs with public IP addresses - if your VM does have public 22 | IP addresses, the script will end before changing anything. You should remove the Public IP, then use this script, and then re-create the public IP. 23 | 24 | VM has to be up and running when collecting the needed information! 25 | 26 | ### Example 27 | 28 | ./Move-VM-to-AvZone.ps1 -SubscriptionName testsubscription -region westeurope -ResourceGroupName test-rg -VirtualMachineName vm1 -newAvailabilityZoneNumber 2 29 | 30 | -------------------------------------------------------------------------------- /legacy/Move-VM-to-AvSet/README.md: -------------------------------------------------------------------------------- 1 | # Move VM to Availability Set 2 | 3 | ## Availability Sets 4 | 5 | [Availability Sets](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/manage-availability#configure-multiple-virtual-machines-in-an-availability-set-for-redundancy) is a contruct where Azure takes care that virtual machines are placed in different Fault Domains (FD). 6 | 7 | The Availability Set needs to be specified during VM creation. If you want to move an existing VM into an Availability Set it is required to recreate the virtual machine. 8 | 9 | ## Moving the VM into an Availability Set 10 | 11 | **requirements:** 12 | 13 | - Azure Subscription 14 | - PowerShell 5.1 or newer 15 | - PowerShell module Az 16 | 17 | ### What the script does 18 | 19 | The script deletes and recreates the Virtual Machine. It preserves networking and disk configuration. There is no need to reinstall the operating system. 20 | 21 | _important: the script does not preserve tags or extensions, you need to manually add these again._ 22 | 23 | ### Example 24 | 25 | .\Move-VM-to-AvSet.ps1 -SubscriptionName mysubscription -region westeurope -ResourceGroupName Move-VM-Test-RG -VirtualMachineName vm1 -newAvailabilitySetName AvSet1 26 | 27 | -------------------------------------------------------------------------------- /legacy/Move-VM-to-AvSet/Update-VM-PPG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/Move-VM-to-AvSet/Update-VM-PPG.png -------------------------------------------------------------------------------- /legacy/Move-VM-to-PPG/README.md: -------------------------------------------------------------------------------- 1 | # Move VM to Proximity Placement Group 2 | 3 | ## Proximity Placement Groups (PPGs) 4 | 5 | [Proximity Placement Groups](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/proximity-placement-groups) (PPG) is a contruct where Azure tries to keep multiple resources as close together as possible. 6 | 7 | The Proximity Placement Group needs to be specified during VM creation. If you want to move an existing VM into a Proximity Placement Group it is required to recreate the virtual machine. 8 | 9 | ## Moving the VM into a Proximity Placement Group (PPG) 10 | 11 | **requirements:** 12 | 13 | * Azure Subscription 14 | * PowerShell 5.1 or newer 15 | * PowerShell module Az 16 | 17 | ## Option 1 - Script 18 | 19 | $vm = Get-AzVM -name -ResourceGroupName 20 | $ppg = Get-AzProximityPlacementGroup -Name -ResourceGroupName 21 | $vm.ProximityPlacementGroup=$ppg.Id 22 | $vm | Update-AzVM 23 | 24 | 25 | ## Option 2 - GUI 26 | ![Move VM to PPG](Update-VM-PPG.png) 27 | 28 | 29 | -------------------------------------------------------------------------------- /legacy/Move-VM-to-PPG/Update-VM-PPG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/Move-VM-to-PPG/Update-VM-PPG.png -------------------------------------------------------------------------------- /legacy/Move-VMs/Check-CopyOperation.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | .SYNOPSIS 4 | Creates snapshots of all VMs in a resource group and an export manifest 5 | 6 | .DESCRIPTION 7 | The script will snapshot all VMs and their disks. The script will also create an export manifest 8 | 9 | 10 | .PARAMETER StorageAccountName 11 | The name of the storage account that contains the VHDs 12 | 13 | 14 | .PARAMETER ExportManifest 15 | The export manifest file name 16 | 17 | 18 | .EXAMPLE 19 | ./Check-CopyOperation.ps1 -StorageAccountName stgAccount -ExportManifest manifestName 20 | 21 | .LINK 22 | https://github.com/Azure/SAP-on-Azure-Scripts-and-Utilities 23 | 24 | .NOTES 25 | v0.1 - Initial version 26 | #> 27 | 28 | <# 29 | Copyright (c) Microsoft Corporation. 30 | Licensed under the MIT license. 31 | #> 32 | 33 | 34 | param( 35 | #Azure Subscription Name 36 | [Parameter(Mandatory = $true)][string]$SubscriptionName, 37 | #The name of the storage account that contains the VHDs 38 | [Parameter(Mandatory = $true)][string]$StorageAccountName, 39 | [Parameter(Mandatory = $true)][string]$ExportManifest = "export.json" 40 | ) 41 | # select subscription 42 | $Subscription = Get-AzSubscription -SubscriptionName $SubscriptionName 43 | if (-Not $Subscription) { 44 | Write-Host -ForegroundColor Red -BackgroundColor White "Sorry, it seems you are not connected to Azure or don't have access to the subscription. Please use Connect-AzAccount to connect." 45 | exit 46 | } 47 | 48 | Select-AzSubscription -Subscription $SubscriptionName -Force 49 | 50 | $VMs = Get-Content $ExportManifest | Out-String | ConvertFrom-Json 51 | 52 | $storageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $TargetResourceGroupName -AccountName $storageAccountName) | Where-Object { $_.KeyName -eq "key1" } 53 | 54 | #Create the context of the storage account where the underlying VHD of the managed disk will be copied 55 | $context = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey.Value 56 | 57 | $StatusText 58 | foreach ($vm in $VMs) { 59 | foreach ($disk in $vm.Disks) { 60 | $sourceVHDURI = $disk.Name +".vhd" 61 | Write-Host "Checking: " $sourceVHDURI 62 | $status = Get-AzStorageBlobCopyState -Blob $sourceVHDURI -Container "disks" -Context $context 63 | 64 | Write-Host "Status" : $status.Status 65 | 66 | if($status.Status -ne "Success") 67 | { 68 | $StatusText= "Some copy oprations are still in progress, please wait and run this again before proceeding to the next step" 69 | } 70 | 71 | } 72 | } 73 | 74 | Write-Host $StatusText -------------------------------------------------------------------------------- /legacy/Move-VMs/Create-Disks.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | .SYNOPSIS 4 | Creates snapshots of all VMs in a resource group and an export manifest 5 | 6 | .DESCRIPTION 7 | The script will snapshot all VMs and their disks. The script will also create an export manifest 8 | 9 | .PARAMETER ResourceGroup 10 | The resourcegroup containing the VMs 11 | 12 | .PARAMETER StorageAccountName 13 | The name of the storage account to contain the VHDs 14 | 15 | .PARAMETER ExportManifest 16 | The export manifest file name 17 | 18 | 19 | .EXAMPLE 20 | ./Create-Disks.ps1 -ResourceGroup App1 -ExportManifest manifestName 21 | 22 | .LINK 23 | https://github.com/Azure/SAP-on-Azure-Scripts-and-Utilities 24 | 25 | .NOTES 26 | v0.1 - Initial version 27 | #> 28 | 29 | <# 30 | Copyright (c) Microsoft Corporation. 31 | Licensed under the MIT license. 32 | #> 33 | 34 | 35 | param( 36 | #Azure Subscription Name 37 | [Parameter(Mandatory = $true)][string]$SubscriptionName, 38 | #Provide the name of your resource group where Managed Disks will be created. 39 | [Parameter(Mandatory = $true)][string]$ResourceGroupName, 40 | [Parameter(Mandatory = $true)][string]$StorageAccountName, 41 | [Parameter(Mandatory = $true)][string]$ExportManifest = "export.json" 42 | ) 43 | # select subscription 44 | $Subscription = Get-AzSubscription -SubscriptionName $SubscriptionName 45 | if (-Not $Subscription) { 46 | Write-Host -ForegroundColor Red -BackgroundColor White "Sorry, it seems you are not connected to Azure or don't have access to the subscription. Please use Connect-AzAccount to connect." 47 | exit 48 | } 49 | 50 | Select-AzSubscription -Subscription $SubscriptionName -Force 51 | 52 | $rg = Get-AzResourceGroup -Name $ResourceGroupName -ErrorVariable notPresent -ErrorAction SilentlyContinue 53 | if ($notPresent) { 54 | exit 55 | 56 | } 57 | 58 | $storageAccountId = (Get-AzStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName).Id 59 | 60 | $VMs = Get-Content $ExportManifest | Out-String | ConvertFrom-Json 61 | 62 | foreach ($vm in $VMs) { 63 | foreach ($disk in $vm.Disks) { 64 | $sourceVHDURI = "https://" + $StorageAccountName + ".blob.core.windows.net/disks/" + $disk.Name +".vhd" 65 | Write-Host "Processing: " $sourceVHDURI 66 | #Provide the size of the disks in GB. It should be greater than the VHD file size. 67 | 68 | #Provide the storage type for Managed Disk. Premium_LRS or Standard_LRS. 69 | $storageType = $disk.SKU 70 | 71 | $diskConfig = New-AzDiskConfig -AccountType $storageType -Location $rg.Location -CreateOption Import -StorageAccountId $storageAccountId -SourceUri $sourceVHDURI -Zone $vm.Zone 72 | New-AzDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName -DiskName $disk.NewName 73 | 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /legacy/Move-VMs/runall.ps1: -------------------------------------------------------------------------------- 1 | $SubscriptionName = "AG-GE-CE-KIMFORSS-SAP" 2 | $ResourceGroupName = "PROTO-NOEU-SAPPROT-ABC" 3 | $TargetResourceGroupName = "PROTO-WEEU-SAPPROT-ABC" 4 | $storageAccountName = "protoweeumigratedisks2" 5 | $Location = "westeurope" 6 | 7 | .\Export-Disks.ps1 -SubscriptionName $SubscriptionName -ResourceGroupName $ResourceGroupName -TargetResourceGroupName $TargetResourceGroupName -storageAccountName $storageAccountName -Location $Location -ExportManifest "export.json" 8 | 9 | # .\Create-Disks.ps1 -SubscriptionName $SubscriptionName -ResourceGroupName $TargetResourceGroupName -storageAccountName $storageAccountName -ExportManifest "export.json" 10 | 11 | # .\Create-VMs.ps1 -SubscriptionName $SubscriptionName -ResourceGroupName $TargetResourceGroupName -ExportManifest "export.json" 12 | 13 | 14 | $VMs = Get-Content "export.json" | Out-String | ConvertFrom-Json 15 | 16 | $tags = @{} 17 | 18 | foreach ($vm in $VMs) { 19 | for ($i = 0; $i -lt $vm.Tag_keys.Count; $i++) { 20 | $tags.Add($vm.Tag_keys[$i], $vm.Tag_values[$i]) 21 | } 22 | } 23 | 24 | $tags -------------------------------------------------------------------------------- /legacy/PPG-AvSet-creation/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Create Proximity Placement Group and Availability Set 3 | 4 | ## Proximity Placement Groups (PPGs) 5 | 6 | [Proximity Placement Groups](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/proximity-placement-groups) (PPG) is a contruct where Azure tries to keep multiple resources as close together as possible. 7 | 8 | The Proximity Placement Group needs to be specified during VM creation. If you want to move an existing VM into a Proximity Placement Group it is required to recreate the virtual machine. 9 | 10 | ## Availability Sets 11 | 12 | [Availability Sets](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/manage-availability#configure-multiple-virtual-machines-in-an-availability-set-for-redundancy) is a contruct where Azure takes care that virtual machines are placed in different Fault Domains (FD). 13 | 14 | The Availability Set needs to be specified during VM creation. If you want to move an existing VM into an Availability Set it is required to recreate the virtual machine. 15 | 16 | **requirements:** 17 | 18 | - Azure Subscription 19 | - PowerShell 5.1 or newer 20 | - PowerShell module Az 21 | 22 | ### What the script does 23 | 24 | The script creates a proximity placement group and an availability set which will be placed in the availability set. 25 | 26 | ### Example 27 | 28 | .\Create-AvSet-with-PPG.ps1 -SubscriptionName "mysubscription" -region westeurope -ResourceGroupName test-rg -newAvailabilitySetName AvSet1 -newProximityPlacementGroupName "PPG1" 29 | -------------------------------------------------------------------------------- /legacy/Rename-VM/README.md: -------------------------------------------------------------------------------- 1 | # Rename Azure Virtual Machine 2 | 3 | **requirements:** 4 | 5 | - Azure Subscription 6 | - PowerShell 5.1 or newer 7 | - PowerShell module Az 8 | 9 | ## What the script does 10 | 11 | The script deletes the VM and recreates it using the new name preserving networking and storage configuration. The script will snapshot each disk, create a new disk from the snapshot, and create the new VM with the new disks attached. 12 | 13 | There is no need to reinstall the operating system. 14 | 15 | IMPORTANT: the script does not preserve VM extensions. 16 | 17 | The script can optionally delete the obsolete resources. If you choose not to delete them the script will create you an PowerShell file "removeresources.ps1" that you can use later to remove them 18 | 19 | ### Example 20 | 21 | ```PowerShell 22 | $SubscriptionName = "[YOURSUBSCRIPRION]" 23 | $ResourceGroupName = "prod-we-tf2-rg" 24 | $VirtualMachineName = "TF1-db03" 25 | $NewVirtualMachineName = "TF1-db01" 26 | # By setting $DeleteVM = $true the script will delete the obsolete resoures. Use this with caution 27 | $DeleteVM = $false 28 | 29 | # This defines what the the new name will be for each disk 30 | $diskList = @{ } 31 | $diskList.Add("TF1-db03-data2", "TF1-db01-data1") 32 | $diskList.Add("TF1-db03-data2", "TF1-db01-data2") 33 | $diskList.Add("TF1-db03-log", "TF1-db01-log") 34 | 35 | ./Rename-VM.ps1 -SubscriptionName $SubscriptionName -ResourceGroupName $ResourceGroupName -VirtualMachineName $VirtualMachineName -NewVirtualMachineName $NewVirtualMachineName -DiskMap $diskList -Verbose -DeleteVM $DeleteVM 36 | ``` 37 | -------------------------------------------------------------------------------- /legacy/SharedDiskSamples/dsc/ConfigureCluster.ps1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/SharedDiskSamples/dsc/ConfigureCluster.ps1.zip -------------------------------------------------------------------------------- /legacy/SharedDiskSamples/dsc/MSFT_ActiveDirectoryDsc_v4200.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/SharedDiskSamples/dsc/MSFT_ActiveDirectoryDsc_v4200.zip -------------------------------------------------------------------------------- /legacy/SharedDiskSamples/dsc/MSFT_ComputerManagement_v7100.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/SharedDiskSamples/dsc/MSFT_ComputerManagement_v7100.zip -------------------------------------------------------------------------------- /legacy/SharedDiskSamples/dsc/PrepareClusterNode.ps1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/c7e911b6dc64cd715244f330e8b76b29ee12df58/legacy/SharedDiskSamples/dsc/PrepareClusterNode.ps1.zip -------------------------------------------------------------------------------- /legacy/SharedDiskSamples/parameter.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "witnessType" : { 6 | "value": "Disk" 7 | } 8 | } 9 | } --------------------------------------------------------------------------------