diff --git a/sap/sap-hana-v2/adds-forest.ps1 b/sap/sap-hana-v2/adds-forest.ps1 new file mode 100644 index 000000000..f0d57a2e7 --- /dev/null +++ b/sap/sap-hana-v2/adds-forest.ps1 @@ -0,0 +1,130 @@ +# $DomainName - FQDN for the Active Directory Domain to create +# $AdminCreds - a PSCredentials object that contains username and password +# that will be assigned to the Domain Administrator account +# $SafeModeAdminCreds - a PSCredentials object that contains the password that will +# be assigned to the Safe Mode Administrator account +# $RetryCount - defines how many retries should be performed while waiting +# for the domain to be provisioned +# $RetryIntervalSec - defines the seconds between each retry to check if the +# domain has been provisioned +Configuration CreateForest { + param + ( + [Parameter(Mandatory)] + [System.Management.Automation.PSCredential]$AdminCreds, + + [Parameter(Mandatory)] + [System.Management.Automation.PSCredential]$SafeModeAdminCreds, + + [Parameter(Mandatory)] + [string]$DomainName, + + [Parameter(Mandatory)] + [string]$DomainNetbiosName, + + [Int]$RetryCount=20, + [Int]$RetryIntervalSec=30 + ) + + Import-DscResource -ModuleName xStorage, xActiveDirectory, xNetworking, xPendingReboot + + [System.Management.Automation.PSCredential ]$DomainCreds = New-Object System.Management.Automation.PSCredential ("${DomainName}\$($AdminCreds.UserName)", $AdminCreds.Password) + [System.Management.Automation.PSCredential ]$SafeDomainCreds = New-Object System.Management.Automation.PSCredential ("${DomainName}\$($SafeModeAdminCreds.UserName)", $SafeModeAdminCreds.Password) + + $Interface = Get-NetAdapter|Where-Object Name -Like "Ethernet*"|Select-Object -First 1 + $InterfaceAlias = $($Interface.Name) + + Node localhost + { + LocalConfigurationManager + { + ActionAfterReboot = 'ContinueConfiguration' + ConfigurationMode = 'ApplyOnly' + RebootNodeIfNeeded = $true + } + + xWaitforDisk Disk2 + { + DiskId = 2 + RetryIntervalSec = 60 + RetryCount = 20 + } + + xDisk FVolume + { + DiskId = 2 + DriveLetter = 'F' + FSLabel = 'Data' + FSFormat = 'NTFS' + DependsOn = '[xWaitForDisk]Disk2' + } + + WindowsFeature DNS + { + Ensure = "Present" + Name = "DNS" + IncludeAllSubFeature = $true + } + + WindowsFeature RSAT + { + Ensure = "Present" + Name = "RSAT" + IncludeAllSubFeature = $true + } + + WindowsFeature ADDSInstall + { + Ensure = "Present" + Name = "AD-Domain-Services" + IncludeAllSubFeature = $true + } + + xDnsServerAddress DnsServerAddress + { + Address = '127.0.0.1' + InterfaceAlias = $InterfaceAlias + AddressFamily = 'IPv4' + DependsOn = "[WindowsFeature]DNS" + } + + xADDomain AddDomain + { + DomainName = $DomainName + DomainNetbiosName = $DomainNetbiosName + DomainAdministratorCredential = $DomainCreds + SafemodeAdministratorPassword = $SafeDomainCreds + DatabasePath = "F:\Adds\NTDS" + LogPath = "F:\Adds\NTDS" + SysvolPath = "F:\Adds\SYSVOL" + DependsOn = "[xWaitForDisk]Disk2","[WindowsFeature]ADDSInstall","[xDnsServerAddress]DnsServerAddress" + } + + xWaitForADDomain DomainWait + { + DomainName = $DomainName + DomainUserCredential = $DomainCreds + RetryCount = $RetryCount + RetryIntervalSec = $RetryIntervalSec + RebootRetryCount = 5 + DependsOn = "[xADDomain]AddDomain" + } + + xADDomainController PrimaryDC + { + DomainName = $DomainName + DomainAdministratorCredential = $DomainCreds + SafemodeAdministratorPassword = $SafeDomainCreds + DatabasePath = "F:\Adds\NTDS" + LogPath = "F:\Adds\NTDS" + SysvolPath = "F:\Adds\SYSVOL" + DependsOn = "[xWaitForADDomain]DomainWait" + } + + xPendingReboot Reboot1 + { + Name = "RebootServer" + DependsOn = "[xADDomainController]PrimaryDC" + } + } +} \ No newline at end of file diff --git a/sap/sap-hana-v2/adds.ps1 b/sap/sap-hana-v2/adds.ps1 new file mode 100644 index 000000000..05496fe97 --- /dev/null +++ b/sap/sap-hana-v2/adds.ps1 @@ -0,0 +1,133 @@ +# $DomainName - FQDN for the Active Directory Domain to create +# $AdminCreds - a PSCredentials object that contains username and password +# that will be assigned to the Domain Administrator account +# $SafeModeAdminCreds - a PSCredentials object that contains the password that will +# be assigned to the Safe Mode Administrator account +# $RetryCount - defines how many retries should be performed while waiting +# for the domain to be provisioned +# $RetryIntervalSec - defines the seconds between each retry to check if the +# domain has been provisioned +Configuration CreateDomainController { + param + #v1.4 + ( + [Parameter(Mandatory)] + [string]$DomainName, + + [Parameter(Mandatory)] + [System.Management.Automation.PSCredential]$AdminCreds, + + [Parameter(Mandatory)] + [System.Management.Automation.PSCredential]$SafeModeAdminCreds, + + [Parameter(Mandatory)] + [string]$PrimaryDcIpAddress, + + [Parameter(Mandatory)] + [string]$SiteName, + + [Int]$RetryCount=20, + [Int]$RetryIntervalSec=30 + ) + + Import-DscResource -ModuleName xStorage, xActiveDirectory, xNetworking, xPendingReboot + + [System.Management.Automation.PSCredential ]$DomainCreds = New-Object System.Management.Automation.PSCredential ("${DomainName}\$($AdminCreds.UserName)", $AdminCreds.Password) + [System.Management.Automation.PSCredential ]$SafeDomainCreds = New-Object System.Management.Automation.PSCredential ("${DomainName}\$($SafeModeAdminCreds.UserName)", $SafeModeAdminCreds.Password) + + $Interface = Get-NetAdapter|Where-Object Name -Like "Ethernet*"|Select-Object -First 1 + $InterfaceAlias = $($Interface.Name) + + Node localhost + { + LocalConfigurationManager + { + ActionAfterReboot = 'ContinueConfiguration' + ConfigurationMode = 'ApplyOnly' + RebootNodeIfNeeded = $true + } + + # Allow this machine to find the PDC and its DNS server + Script SetDnsServerAddressToFindPDC + { + GetScript = {return @{}} + TestScript = {return $false} # Always run the SetScript for this. + SetScript = { Set-DnsClientServerAddress -InterfaceAlias $using:InterfaceAlias -ServerAddresses $using:PrimaryDcIpAddress } + } + + xWaitforDisk Disk2 + { + DiskId = 2 + RetryIntervalSec = 60 + RetryCount = 60 + } + + xDisk FVolume + { + DiskId = 2 + DriveLetter = 'F' + FSLabel = 'Data' + FSFormat = 'NTFS' + DependsOn = '[xWaitForDisk]Disk2' + } + + WindowsFeature DNS + { + Ensure = "Present" + Name = "DNS" + IncludeAllSubFeature = $true + } + + WindowsFeature RSAT + { + Ensure = "Present" + Name = "RSAT" + IncludeAllSubFeature = $true + } + + WindowsFeature ADDSInstall + { + Ensure = "Present" + Name = "AD-Domain-Services" + IncludeAllSubFeature = $true + } + + xWaitForADDomain WaitForPrimaryDC + { + DomainName = $DomainName + DomainUserCredential = $DomainAdministratorCredentials + RetryCount = 30 + RetryIntervalSec = 30 + RebootRetryCount = 10 + DependsOn = @("[Script]SetDnsServerAddressToFindPDC") + } + + xADDomainController SecondaryDC + { + DomainName = $DomainName + DomainAdministratorCredential = $DomainCreds + SafemodeAdministratorPassword = $SafeDomainCreds + SiteName = $SiteName + DatabasePath = "F:\Adds\NTDS" + LogPath = "F:\Adds\NTDS" + SysvolPath = "F:\Adds\SYSVOL" + DependsOn = "[xWaitForADDomain]WaitForPrimaryDC","[xWaitForDisk]Disk2","[WindowsFeature]ADDSInstall" + } + + # Now make sure this computer uses itself as a DNS source + xDnsServerAddress DnsServerAddress + { + Address = @('127.0.0.1', $PrimaryDcIpAddress) + InterfaceAlias = $InterfaceAlias + AddressFamily = 'IPv4' + DependsOn = "[xADDomainController]SecondaryDC" + } + + xPendingReboot Reboot1 + { + Name = "RebootServer" + DependsOn = "[xDnsServerAddress]DnsServerAddress" + } + + } +} \ No newline at end of file diff --git a/sap/sap-hana-v2/adds.zip b/sap/sap-hana-v2/adds.zip new file mode 100644 index 000000000..000bacc34 Binary files /dev/null and b/sap/sap-hana-v2/adds.zip differ diff --git a/sap/sap-hana-v2/sap-hana-v2.json b/sap/sap-hana-v2/sap-hana-v2.json new file mode 100644 index 000000000..b7c09c359 --- /dev/null +++ b/sap/sap-hana-v2/sap-hana-v2.json @@ -0,0 +1,731 @@ +{ + "$schema": "https://raw.githubusercontent.com/mspnp/template-building-blocks/master/schemas/buildingBlocks.json", + "contentVersion": "1.0.0.0", + "parameters": { + "buildingBlocks": { + "value": [ + { + "type": "VirtualNetwork", + "settings": [ + { + "name": "ra-sap-hana-vnet", + "resourceGroup": "sap-hana-infrastructure", + "addressPrefixes": [ + "10.0.0.0/16" + ], + "subnets": [ + { + "name": "GatewaySubnet", + "addressPrefix": "10.0.255.224/27" + }, + { + "name": "SAPAppsSubnet", + "addressPrefix": "10.0.1.0/24" + }, + { + "name": "SAPDataSubnet", + "addressPrefix": "10.0.2.0/24" + }, + { + "name": "MgmtSubnet", + "addressPrefix": "10.0.3.0/24" + }, + { + "name": "ADSubnet", + "addressPrefix": "10.0.4.0/27" + } + ], + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + } + ] + }, + { + "type": "VirtualMachine", + "settings":[ + { + "namePrefix": "ra-sap-jumpbox", + "computerNamePrefix": "jumpbox", + "size": "Standard_DS1_v2", + "adminUsername": "testuser", + "adminPassword": "AweS0me@PW", + "osType": "windows", + "resourceGroup": "sap-hana-infrastructure", + "nics": [ + { + "isPublic": true, + "isPrimary": true, + "subnetName": "MgmtSubnet", + "privateIPAllocationMethod": "Dynamic", + "publicIPAllocationMethod": "Static", + "enableIPForwarding": false, + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + } + ], + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2012-R2-Datacenter", + "version": "latest" + }, + "virtualNetwork": { + "name": "ra-sap-hana-vnet", + "resourceGroup": "sap-hana-infrastructure" + } + }, + { + "vmCount": 2, + "namePrefix": "ra-sap-ad", + "computerNamePrefix": "ad", + "size": "Standard_DS1_v2", + "osType": "windows", + "adminUsername": "testuser", + "adminPassword": "AweS0me@PW", + "nics": [ + { + "isPublic": true, + "isPrimary": true, + "subnetName": "ADSubnet", + "privateIPAllocationMethod": "Static", + "startingIPAddress": "10.0.4.4", + "enableIPForwarding": false + } + ], + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2012-R2-Datacenter", + "version": "latest" + }, + "dataDisks": { + "count": 1 + }, + "virtualNetwork": { + "name": "ra-sap-hana-vnet", + "resourceGroup": "sap-hana-infrastructure" + } + } + ] + }, + { + "type": "VirtualMachineExtension", + "settings":[ + { + "vms": [ + "ra-sap-ad-vm1" + ], + "extensions": [ + { + "name": "addsc", + "publisher": "Microsoft.Powershell", + "type": "DSC", + "typeHandlerVersion": "2.1", + "resourceGroup": "sap-hana-infrastructure", + "autoUpgradeMinorVersion": true, + "settings": { + "ModulesUrl": "https://github.com/woodp/reference-architectures/blob/sap-azbb/sap/sap-hana-v2/adds.zip?raw=true", + "ConfigurationFunction":"adds-forest.ps1\\CreateForest", + "Properties": { + "DomainName": "contoso.com", + "DomainNetbiosName": "contoso", + "AdminCreds": { + "UserName": "testuser", + "Password": "PrivateSettingsRef:AdminPassword" + }, + "SafeModeAdminCreds": { + "UserName": "testsafeuser", + "Password": "PrivateSettingsRef:SafeModeAdminPassword" + } + } + }, + "protectedSettings": { + "Items": { + "AdminPassword": "AweS0me@PW", + "SafeModeAdminPassword": "Saf3M0de@PW" + } + } + } + ] + }, + { + "vms": [ + "ra-sap-ad-vm2" + ], + "extensions": [ + { + "name": "addsc", + "publisher": "Microsoft.Powershell", + "type": "DSC", + "typeHandlerVersion": "2.1", + "autoUpgradeMinorVersion": true, + "resourceGroup": "sap-hana-infrastructure", + "settings": { + "ModulesUrl": "https://github.com/woodp/reference-architectures/blob/sap-azbb/sap/sap-hana-v2/adds.zip?raw=true", + "ConfigurationFunction":"adds.ps1\\CreateDomainController", + "Properties": { + "DomainName": "contoso.com", + "DomainNetbiosName": "contoso", + "SiteName": "Default-First-Site-Name", + "PrimaryDcIpAddress": "10.0.4.4", + "AdminCreds": { + "UserName": "testuser", + "Password": "PrivateSettingsRef:AdminPassword" + }, + "SafeModeAdminCreds": { + "UserName": "testsafeuser", + "Password": "PrivateSettingsRef:SafeModeAdminPassword" + } + } + }, + "protectedSettings": { + "Items": { + "AdminPassword": "AweS0me@PW", + "SafeModeAdminPassword": "Saf3M0de@PW" + } + } + } + ] + } + ] + }, + { + "type": "VirtualMachine", + "settings":[ + { + "vmCount": 2, + "namePrefix": "sap-wdp", + "computerNamePrefix": "sap-wdp", + "size": "Standard_DS11_v2", + "adminUsername": "testuser", + "adminPassword": "AweS0me@PW", + "osType": "windows", + "virtualNetwork": { + "name": "ra-sap-hana-vnet", + "resourceGroup": "sap-hana-infrastructure" + }, + "nics": [ + { + "isPublic": true, + "isPrimary": true, + "subnetName": "SAPAppsSubnet", + "privateIPAllocationMethod": "Static", + "startingIPAddress": "10.0.1.25", + "enableIPForwarding": false, + "backendPoolNames": [ + "backend-pool" + ], + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + }, + { + "isPublic": true, + "isPrimary": false, + "subnetName": "MgmtSubnet", + "privateIPAllocationMethod": "Static", + "startingIPAddress": "10.0.3.25", + "enableIPForwarding": false, + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + } + ], + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2012-R2-Datacenter", + "version": "latest" + }, + "loadBalancerSettings": { + "frontendIPConfigurations": [ + { + "name": "sap-wdp-lb-fe-config", + "loadBalancerType": "Internal", + "internalLoadBalancerSettings": { + "privateIPAddress": "10.0.1.250", + "subnetName": "SAPAppsSubnet" + } + } + ], + "loadBalancingRules": [ + { + "name": "wdpRule", + "frontendPort": 44300, + "backendPort": 44300, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-wdp-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + } + ], + "probes": [ + { + "name": "healthProbe", + "port": 44300, + "protocol": "Tcp", + "requestPath": null + } + ], + "backendPools": [ + { + "name": "backend-pool", + "nicIndex": 0 + } + ] + }, + "extensions": [ + { + "name": "join-ad-domain", + "publisher": "Microsoft.Compute", + "type": "JsonADDomainExtension", + "typeHandlerVersion": "1.3", + "autoUpgradeMinorVersion": true, + "settingsConfigMapperUri": "https://raw.githubusercontent.com/mspnp/template-building-blocks/v1.0.0/templates/resources/Microsoft.Compute/virtualMachines/extensions/vm-extension-passthrough-settings-mapper.json", + "settings": { + "Name": "contoso.com", + "OUPath": "", + "User": "contoso.com\\testuser", + "Restart": true, + "Options": 3 + }, + "protectedSettings": { + "Password": "AweS0me@PW" + } + } + ] + }, + { + "vmCount": 3, + "namePrefix": "sap-app", + "computerNamePrefix": "sap-app", + "size": "Standard_DS11_v2", + "adminUsername": "testuser", + "adminPassword": "AweS0me@PW", + "osType": "windows", + "virtualNetwork": { + "name": "ra-sap-hana-vnet", + "resourceGroup": "sap-hana-infrastructure" + }, + "nics": [ + { + "isPublic": true, + "isPrimary": true, + "subnetName": "SAPAppsSubnet", + "privateIPAllocationMethod": "Static", + "startingIPAddress": "10.0.1.30", + "enableIPForwarding": false, + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + }, + { + "isPublic": true, + "isPrimary": false, + "subnetName": "MgmtSubnet", + "privateIPAllocationMethod": "Static", + "startingIPAddress": "10.0.3.30", + "enableIPForwarding": false, + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + } + ], + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2012-R2-Datacenter", + "version": "latest" + }, + "extensions": [ + { + "name": "join-ad-domain", + "publisher": "Microsoft.Compute", + "type": "JsonADDomainExtension", + "typeHandlerVersion": "1.3", + "autoUpgradeMinorVersion": true, + "settingsConfigMapperUri": "https://raw.githubusercontent.com/mspnp/template-building-blocks/v1.0.0/templates/resources/Microsoft.Compute/virtualMachines/extensions/vm-extension-passthrough-settings-mapper.json", + "settings": { + "Name": "contoso.com", + "OUPath": "", + "User": "contoso.com\\testuser", + "Restart": true, + "Options": 3 + }, + "protectedSettings": { + "Password": "AweS0me@PW" + } + } + ] + }, + { + "vmCount": 2, + "namePrefix": "sap-scs", + "computerNamePrefix": "sap-scs", + "size": "Standard_DS11_v2", + "adminUsername": "testuser", + "adminPassword": "AweS0me@PW", + "osType": "windows", + "virtualNetwork": { + "name": "ra-sap-hana-vnet", + "resourceGroup": "sap-hana-infrastructure" + }, + "nics": [ + { + "isPublic": true, + "isPrimary": true, + "subnetName": "SAPAppsSubnet", + "privateIPAllocationMethod": "Static", + "startingIPAddress": "10.0.1.5", + "enableIPForwarding": false, + "backendPoolNames": [ + "backend-pool" + ], + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + }, + { + "isPublic": true, + "isPrimary": false, + "subnetName": "MgmtSubnet", + "privateIPAllocationMethod": "Static", + "startingIPAddress": "10.0.3.5", + "enableIPForwarding": false, + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + } + ], + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2012-R2-Datacenter", + "version": "latest" + }, + "dataDisks": { + "count": 1, + "properties": { + "diskSizeGB": 1023 + } + }, + "loadBalancerSettings": { + "frontendIPConfigurations": [ + { + "name": "sap-scs-lb-fe-config", + "loadBalancerType": "Internal", + "internalLoadBalancerSettings": { + "privateIPAddress": "10.0.1.249", + "subnetName": "SAPAppsSubnet" + } + } + ], + "loadBalancingRules": [ + { + "name": "abapMsgServer", + "frontendPort": 3600, + "backendPort": 3600, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-scs-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + }, + { + "name": "enqueuRepl", + "frontendPort": 50016, + "backendPort": 50016, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-scs-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + }, + { + "name": "enqueueServer", + "frontendPort": 3200, + "backendPort": 3200, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-scs-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + }, + { + "name": "fileShare", + "frontendPort": 445, + "backendPort": 445, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-scs-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + }, + { + "name": "internalAbapMsg", + "frontendPort": 3900, + "backendPort": 3900, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-scs-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + }, + { + "name": "httpMsgServer", + "frontendPort": 8100, + "backendPort": 8100, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-scs-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + }, + { + "name": "httpSapStartAscs", + "frontendPort": 50013, + "backendPort": 50013, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-scs-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + }, + { + "name": "httpsSaptartAscs", + "frontendPort": 50014, + "backendPort": 50014, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-scs-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + }, + { + "name": "httpSapStarter", + "frontendPort": 51013, + "backendPort": 51013, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-scs-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + }, + { + "name": "httpsSapStarter", + "frontendPort": 51014, + "backendPort": 51014, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-scs-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + }, + { + "name": "winRm", + "frontendPort": 5985, + "backendPort": 5985, + "protocol": "Tcp", + "backendPoolName": "backend-pool", + "frontendIPConfigurationName": "sap-scs-lb-fe-config", + "probeName": "healthProbe", + "enableFloatingIP": false + } + ], + "probes": [ + { + "name": "healthProbe", + "port": 59999, + "protocol": "Tcp", + "requestPath": null + } + ], + "backendPools": [ + { + "name": "backend-pool", + "nicIndex": 0 + } + ] + }, + "extensions": [ + { + "name": "join-ad-domain", + "publisher": "Microsoft.Compute", + "type": "JsonADDomainExtension", + "typeHandlerVersion": "1.3", + "autoUpgradeMinorVersion": true, + "settingsConfigMapperUri": "https://raw.githubusercontent.com/mspnp/template-building-blocks/v1.0.0/templates/resources/Microsoft.Compute/virtualMachines/extensions/vm-extension-passthrough-settings-mapper.json", + "settings": { + "Name": "contoso.com", + "OUPath": "", + "User": "contoso.com\\testuser", + "Restart": true, + "Options": 3 + }, + "protectedSettings": { + "Password": "AweS0me@PW" + } + }, + { + "name": "PrepareWSFC", + "publisher": "Microsoft.Powershell", + "type": "DSC", + "typeHandlerVersion": "2.16", + "autoUpgradeMinorVersion": false, + "settingsConfigMapperUri": "https://raw.githubusercontent.com/mspnp/template-building-blocks/v1.0.0/templates/resources/Microsoft.Compute/virtualMachines/extensions/vm-extension-passthrough-settings-mapper.json", + "settings": { + "modulesURL": "https://raw.githubusercontent.com/mspnp/reference-architectures/master/sap/sap-hana/extensions/PrepareWSFC.ps1.zip", + "configurationFunction": "PrepareWSFC.ps1\\PrepareWSFC", + "properties": {} + }, + "protectedSettings": { + "items": { + "adminPassword": "AweS0me@PW" + } + } + } + ] + }, + { + "namePrefix": "sap-wit", + "computerNamePrefix": "sap-wit", + "size": "Standard_DS11_v2", + "adminUsername": "testuser", + "adminPassword": "AweS0me@PW", + "osType": "windows", + "virtualNetwork": { + "name": "ra-sap-hana-vnet", + "resourceGroup": "sap-hana-infrastructure" + }, + "nics": [ + { + "isPublic": true, + "isPrimary": true, + "subnetName": "SAPAppsSubnet", + "privateIPAllocationMethod": "Static", + "startingIPAddress": "10.0.1.10", + "publicIPAllocationMethod": "Static", + "enableIPForwarding": false, + "domainNameLabelPrefix": "", + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + }, + { + "isPublic": true, + "isPrimary": false, + "subnetName": "MgmtSubnet", + "privateIPAllocationMethod": "Static", + "startingIPAddress": "10.0.3.10", + "publicIPAllocationMethod": "Static", + "enableIPForwarding": false, + "domainNameLabelPrefix": "", + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + } + ], + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2012-R2-Datacenter", + "version": "latest" + }, + "extensions": [ + { + "name": "join-ad-domain", + "publisher": "Microsoft.Compute", + "type": "JsonADDomainExtension", + "typeHandlerVersion": "1.3", + "autoUpgradeMinorVersion": true, + "settingsConfigMapperUri": "https://raw.githubusercontent.com/mspnp/template-building-blocks/v1.0.0/templates/resources/Microsoft.Compute/virtualMachines/extensions/vm-extension-passthrough-settings-mapper.json", + "settings": { + "Name": "contoso.com", + "OUPath": "", + "User": "contoso.com\\testuser", + "Restart": true, + "Options": 3 + }, + "protectedSettings": { + "Password": "AweS0me@PW" + } + } + ], + "availabilitySet": { + "name": "sap-centralsvc-as" + } + }, + { + "namePrefix": "sap-han", + "computerNamePrefix": "sap-han", + "size": "Standard_GS5", + "adminUsername": "testuser", + "adminPassword": "AweS0me@PW", + "osType": "linux", + "osAuthenticationType": "password", + "virtualNetwork": { + "name": "ra-sap-hana-vnet", + "resourceGroup": "sap-hana-infrastructure" + }, + "nics": [ + { + "isPublic": true, + "isPrimary": true, + "subnetName": "SAPDataSubnet", + "privateIPAllocationMethod": "Static", + "startingIPAddress": "10.0.2.15", + "publicIPAllocationMethod": "Static", + "enableIPForwarding": false, + "domainNameLabelPrefix": "", + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + }, + { + "isPublic": true, + "isPrimary": false, + "subnetName": "MgmtSubnet", + "privateIPAllocationMethod": "Static", + "startingIPAddress": "10.0.3.15", + "publicIPAllocationMethod": "Static", + "enableIPForwarding": false, + "domainNameLabelPrefix": "", + "dnsServers": [ + "10.0.4.4", + "10.0.4.5" + ] + } + ], + "imageReference": { + "publisher": "SUSE", + "offer": "SLES-Priority", + "sku": "12-SP2", + "version": "latest" + }, + "dataDisks": { + "count": 2, + "properties": { + "diskSizeGB": 1023 + } + } + } + ] + } + ] + } + } +} \ No newline at end of file