Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Bicep resource definition
The sapVirtualInstances resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.Workloads/sapVirtualInstances resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.Workloads/sapVirtualInstances@2024-09-01' = {
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
location: 'string'
name: 'string'
properties: {
configuration: {
configurationType: 'string'
// For remaining properties, see SAPConfiguration objects
}
environment: 'string'
managedResourceGroupConfiguration: {
name: 'string'
}
managedResourcesNetworkAccessType: 'string'
sapProduct: 'string'
}
tags: {
{customized property}: 'string'
}
}
InfrastructureConfiguration objects
Set the deploymentType property to specify the type of object.
For SingleServer, use:
{
customResourceNames: {
namingPatternType: 'string'
// For remaining properties, see SingleServerCustomResourceNames objects
}
databaseType: 'string'
dbDiskConfiguration: {
diskVolumeConfigurations: {
{customized property}: {
count: int
sizeGB: int
sku: {
name: 'string'
}
}
}
}
deploymentType: 'SingleServer'
networkConfiguration: {
isSecondaryIpEnabled: bool
}
subnetId: 'string'
virtualMachineConfiguration: {
imageReference: {
id: 'string'
offer: 'string'
publisher: 'string'
sku: 'string'
version: 'string'
}
osProfile: {
adminPassword: 'string'
adminUsername: 'string'
osConfiguration: {
osType: 'string'
// For remaining properties, see OSConfiguration objects
}
}
vmSize: 'string'
}
}
For ThreeTier, use:
{
applicationServer: {
instanceCount: int
subnetId: 'string'
virtualMachineConfiguration: {
imageReference: {
id: 'string'
offer: 'string'
publisher: 'string'
sku: 'string'
version: 'string'
}
osProfile: {
adminPassword: 'string'
adminUsername: 'string'
osConfiguration: {
osType: 'string'
// For remaining properties, see OSConfiguration objects
}
}
vmSize: 'string'
}
}
centralServer: {
instanceCount: int
subnetId: 'string'
virtualMachineConfiguration: {
imageReference: {
id: 'string'
offer: 'string'
publisher: 'string'
sku: 'string'
version: 'string'
}
osProfile: {
adminPassword: 'string'
adminUsername: 'string'
osConfiguration: {
osType: 'string'
// For remaining properties, see OSConfiguration objects
}
}
vmSize: 'string'
}
}
customResourceNames: {
namingPatternType: 'string'
// For remaining properties, see ThreeTierCustomResourceNames objects
}
databaseServer: {
databaseType: 'string'
diskConfiguration: {
diskVolumeConfigurations: {
{customized property}: {
count: int
sizeGB: int
sku: {
name: 'string'
}
}
}
}
instanceCount: int
subnetId: 'string'
virtualMachineConfiguration: {
imageReference: {
id: 'string'
offer: 'string'
publisher: 'string'
sku: 'string'
version: 'string'
}
osProfile: {
adminPassword: 'string'
adminUsername: 'string'
osConfiguration: {
osType: 'string'
// For remaining properties, see OSConfiguration objects
}
}
vmSize: 'string'
}
}
deploymentType: 'ThreeTier'
highAvailabilityConfig: {
highAvailabilityType: 'string'
}
networkConfiguration: {
isSecondaryIpEnabled: bool
}
storageConfiguration: {
transportFileShareConfiguration: {
configurationType: 'string'
// For remaining properties, see FileShareConfiguration objects
}
}
}
SingleServerCustomResourceNames objects
Set the namingPatternType property to specify the type of object.
For FullResourceName, use:
{
namingPatternType: 'FullResourceName'
virtualMachine: {
dataDiskNames: {
{customized property}: [
'string'
]
}
hostName: 'string'
networkInterfaces: [
{
networkInterfaceName: 'string'
}
]
osDiskName: 'string'
vmName: 'string'
}
}
OSConfiguration objects
Set the osType property to specify the type of object.
For Linux, use:
{
disablePasswordAuthentication: bool
osType: 'Linux'
ssh: {
publicKeys: [
{
keyData: 'string'
}
]
}
sshKeyPair: {
privateKey: 'string'
publicKey: 'string'
}
}
For Windows, use:
{
osType: 'Windows'
}
SAPConfiguration objects
Set the configurationType property to specify the type of object.
For Deployment, use:
{
appLocation: 'string'
configurationType: 'Deployment'
infrastructureConfiguration: {
appResourceGroup: 'string'
deploymentType: 'string'
// For remaining properties, see InfrastructureConfiguration objects
}
softwareConfiguration: {
softwareInstallationType: 'string'
// For remaining properties, see SoftwareConfiguration objects
}
}
For DeploymentWithOSConfig, use:
{
appLocation: 'string'
configurationType: 'DeploymentWithOSConfig'
infrastructureConfiguration: {
appResourceGroup: 'string'
deploymentType: 'string'
// For remaining properties, see InfrastructureConfiguration objects
}
osSapConfiguration: {
deployerVmPackages: {
storageAccountId: 'string'
url: 'string'
}
sapFqdn: 'string'
}
softwareConfiguration: {
softwareInstallationType: 'string'
// For remaining properties, see SoftwareConfiguration objects
}
}
For Discovery, use:
{
centralServerVmId: 'string'
configurationType: 'Discovery'
managedRgStorageAccountName: 'string'
}
ThreeTierCustomResourceNames objects
Set the namingPatternType property to specify the type of object.
For FullResourceName, use:
{
applicationServer: {
availabilitySetName: 'string'
virtualMachines: [
{
dataDiskNames: {
{customized property}: [
'string'
]
}
hostName: 'string'
networkInterfaces: [
{
networkInterfaceName: 'string'
}
]
osDiskName: 'string'
vmName: 'string'
}
]
}
centralServer: {
availabilitySetName: 'string'
loadBalancer: {
backendPoolNames: [
'string'
]
frontendIpConfigurationNames: [
'string'
]
healthProbeNames: [
'string'
]
loadBalancerName: 'string'
}
virtualMachines: [
{
dataDiskNames: {
{customized property}: [
'string'
]
}
hostName: 'string'
networkInterfaces: [
{
networkInterfaceName: 'string'
}
]
osDiskName: 'string'
vmName: 'string'
}
]
}
databaseServer: {
availabilitySetName: 'string'
loadBalancer: {
backendPoolNames: [
'string'
]
frontendIpConfigurationNames: [
'string'
]
healthProbeNames: [
'string'
]
loadBalancerName: 'string'
}
virtualMachines: [
{
dataDiskNames: {
{customized property}: [
'string'
]
}
hostName: 'string'
networkInterfaces: [
{
networkInterfaceName: 'string'
}
]
osDiskName: 'string'
vmName: 'string'
}
]
}
namingPatternType: 'FullResourceName'
sharedStorage: {
sharedStorageAccountName: 'string'
sharedStorageAccountPrivateEndPointName: 'string'
}
}
FileShareConfiguration objects
Set the configurationType property to specify the type of object.
For CreateAndMount, use:
{
configurationType: 'CreateAndMount'
resourceGroup: 'string'
storageAccountName: 'string'
}
For Mount, use:
{
configurationType: 'Mount'
id: 'string'
privateEndpointId: 'string'
}
For Skip, use:
{
configurationType: 'Skip'
}
SoftwareConfiguration objects
Set the softwareInstallationType property to specify the type of object.
For External, use:
{
centralServerVmId: 'string'
softwareInstallationType: 'External'
}
For SAPInstallWithoutOSConfig, use:
{
bomUrl: 'string'
highAvailabilitySoftwareConfiguration: {
fencingClientId: 'string'
fencingClientPassword: 'string'
}
sapBitsStorageAccountId: 'string'
softwareInstallationType: 'SAPInstallWithoutOSConfig'
softwareVersion: 'string'
}
For ServiceInitiated, use:
{
bomUrl: 'string'
highAvailabilitySoftwareConfiguration: {
fencingClientId: 'string'
fencingClientPassword: 'string'
}
sapBitsStorageAccountId: 'string'
sapFqdn: 'string'
softwareInstallationType: 'ServiceInitiated'
softwareVersion: 'string'
sshPrivateKey: 'string'
}
Property Values
Microsoft.Workloads/sapVirtualInstances
Name | Description | Value |
---|---|---|
identity | The managed service identities assigned to this resource. | SAPVirtualInstanceIdentity |
location | The geo-location where the resource lives | string (required) |
name | The resource name | string Constraints: Pattern = ^[a-zA-Z][a-zA-Z0-9]{2}$ (required) |
properties | The resource-specific properties for this resource. | SAPVirtualInstanceProperties |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
ApplicationServerConfiguration
Name | Description | Value |
---|---|---|
instanceCount | The number of app server instances. | int (required) |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
ApplicationServerFullResourceNames
Name | Description | Value |
---|---|---|
availabilitySetName | The full name for availability set. In case name is not provided, it will be defaulted to {SID}-App-AvSet. | string |
virtualMachines | The list of virtual machine naming details. | VirtualMachineResourceNames[] |
CentralServerConfiguration
Name | Description | Value |
---|---|---|
instanceCount | The number of central server VMs. | int (required) |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
CentralServerFullResourceNames
Name | Description | Value |
---|---|---|
availabilitySetName | The full name for availability set. In case name is not provided, it will be defaulted to {SID}-ASCS-AvSet. | string |
loadBalancer | The resource names object for load balancer and related resources. | LoadBalancerResourceNames |
virtualMachines | The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS. | VirtualMachineResourceNames[] |
CreateAndMountFileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | The type of file share config, eg: Mount/CreateAndMount/Skip. | 'CreateAndMount' (required) |
resourceGroup | The name of transport file share resource group. This should be pre created by the customer. The app rg is used in case of missing input. | string |
storageAccountName | The name of file share storage account name . A custom name is used in case of missing input. | string |
DatabaseConfiguration
Name | Description | Value |
---|---|---|
databaseType | The database type. | 'DB2' 'HANA' |
diskConfiguration | Gets or sets the disk configuration. | DiskConfiguration |
instanceCount | The number of database VMs. | int (required) |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
DatabaseServerFullResourceNames
Name | Description | Value |
---|---|---|
availabilitySetName | The full name for availability set. In case name is not provided, it will be defaulted to {SID}-DB-AvSet. | string |
loadBalancer | The resource names object for load balancer and related resources. | LoadBalancerResourceNames |
virtualMachines | The list of virtual machine naming details. | VirtualMachineResourceNames[] |
DeployerVmPackages
Name | Description | Value |
---|---|---|
storageAccountId | The deployer VM packages storage account id | string |
url | The URL to the deployer VM packages file. | string |
DeploymentConfiguration
Name | Description | Value |
---|---|---|
appLocation | The geo-location where the SAP system is to be created. | string |
configurationType | The configuration type. Eg: Deployment/Discovery | 'Deployment' (required) |
infrastructureConfiguration | The infrastructure configuration. | InfrastructureConfiguration |
softwareConfiguration | The software configuration. | SoftwareConfiguration |
DeploymentWithOSConfiguration
Name | Description | Value |
---|---|---|
appLocation | The geo-location where the SAP system is to be created. | string |
configurationType | The configuration type. Eg: Deployment/Discovery | 'DeploymentWithOSConfig' (required) |
infrastructureConfiguration | The infrastructure configuration. | InfrastructureConfiguration |
osSapConfiguration | The OS and SAP configuration. | OsSapConfiguration |
softwareConfiguration | The software configuration. | SoftwareConfiguration |
DiscoveryConfiguration
Name | Description | Value |
---|---|---|
centralServerVmId | The virtual machine ID of the Central Server. | string |
configurationType | The configuration type. Eg: Deployment/Discovery | 'Discovery' (required) |
managedRgStorageAccountName | The custom storage account name for the storage account created by the service in the managed resource group created as part of VIS deployment. Refer to the storage account naming rules here. If not provided, the service will create the storage account with a random name. |
string Constraints: Min length = 3 Max length = 24 |
DiskConfiguration
Name | Description | Value |
---|---|---|
diskVolumeConfigurations | The disk configuration for the db volume. For HANA, Required volumes are: ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os'], Optional volume : ['backup']. | DiskConfigurationDiskVolumeConfigurations |
DiskConfigurationDiskVolumeConfigurations
Name | Description | Value |
---|
DiskSku
Name | Description | Value |
---|---|---|
name | Defines the disk sku name. | 'PremiumV2_LRS' 'Premium_LRS' 'Premium_ZRS' 'StandardSSD_LRS' 'StandardSSD_ZRS' 'Standard_LRS' 'UltraSSD_LRS' |
DiskVolumeConfiguration
Name | Description | Value |
---|---|---|
count | The total number of disks required for the concerned volume. | int |
sizeGB | The disk size in GB. | int |
sku | The disk SKU details. | DiskSku |
ExternalInstallationSoftwareConfiguration
Name | Description | Value |
---|---|---|
centralServerVmId | The resource ID of the virtual machine containing the central server instance. | string |
softwareInstallationType | The SAP software installation type. | 'External' (required) |
FileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | Set to 'CreateAndMount' for type CreateAndMountFileShareConfiguration. Set to 'Mount' for type MountFileShareConfiguration. Set to 'Skip' for type SkipFileShareConfiguration. | 'CreateAndMount' 'Mount' 'Skip' (required) |
HighAvailabilityConfiguration
Name | Description | Value |
---|---|---|
highAvailabilityType | The high availability type. | 'AvailabilitySet' 'AvailabilityZone' (required) |
HighAvailabilitySoftwareConfiguration
Name | Description | Value |
---|---|---|
fencingClientId | The fencing client id. | string (required) |
fencingClientPassword | The fencing client id secret/password. The secret should never expire. This will be used pacemaker to start/stop the cluster VMs. | string Constraints: Sensitive value. Pass in as a secure parameter. (required) |
ImageReference
Name | Description | Value |
---|---|---|
id | Specifies the ARM resource ID of the Azure Compute Gallery image version used for creating ACSS VMs. You will need to provide this input when you choose to deploy virtual machines in ACSS with OS image from the Azure Compute gallery. | string |
offer | Specifies the offer of the platform image or marketplace image used to create the virtual machine. | string |
publisher | The image publisher. | string |
sku | The image SKU. | string |
version | Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. | string |
InfrastructureConfiguration
Name | Description | Value |
---|---|---|
appResourceGroup | The application resource group where SAP system resources will be deployed. | string (required) |
deploymentType | Set to 'SingleServer' for type SingleServerConfiguration. Set to 'ThreeTier' for type ThreeTierConfiguration. | 'SingleServer' 'ThreeTier' (required) |
LinuxConfiguration
Name | Description | Value |
---|---|---|
disablePasswordAuthentication | Specifies whether password authentication should be disabled. | bool |
osType | The OS Type | 'Linux' (required) |
ssh | Specifies the ssh key configuration for a Linux OS. (This property is deprecated, please use 'sshKeyPair' instead) | SshConfiguration |
sshKeyPair | The SSH Key-pair used to authenticate with the VM's. | SshKeyPair |
LoadBalancerResourceNames
Name | Description | Value |
---|---|---|
backendPoolNames | The list of backend pool names. Currently, ACSS deploys only one backend pool and hence, size of this list should be 1 | string[] |
frontendIpConfigurationNames | The list of frontend IP configuration names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. | string[] |
healthProbeNames | The list of health probe names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. | string[] |
loadBalancerName | The full resource name for load balancer. If this value is not provided, load balancer will be name as {ASCS/DB}-loadBalancer. | string |
ManagedRGConfiguration
Name | Description | Value |
---|---|---|
name | Managed resource group name | string |
MountFileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | The type of file share config, eg: Mount/CreateAndMount/Skip. | 'Mount' (required) |
id | The fileshare resource ID | string (required) |
privateEndpointId | The private endpoint resource ID | string (required) |
NetworkConfiguration
Name | Description | Value |
---|---|---|
isSecondaryIpEnabled | Specifies whether a secondary IP address should be added to the network interface on all VMs of the SAP system being deployed | bool |
NetworkInterfaceResourceNames
Name | Description | Value |
---|---|---|
networkInterfaceName | The full name for network interface. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}-Nic. In case of HA-AvZone systems, default name will be {SID}-{App/ASCS/DB}-Zone{A/B}-Nic with an incrementor at the end in case of more than 1 instance per layer. For distributed and HA-AvSet systems, default name will be {SID}-{App/ASCS/DB}-Nic with an incrementor at the end in case of more than 1 instance per layer. | string |
OSConfiguration
Name | Description | Value |
---|---|---|
osType | Set to 'Linux' for type LinuxConfiguration. Set to 'Windows' for type WindowsConfiguration. | 'Linux' 'Windows' (required) |
OSProfile
Name | Description | Value |
---|---|---|
adminPassword | Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension |
string Constraints: Sensitive value. Pass in as a secure parameter. |
adminUsername | Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters. |
string |
osConfiguration | Specifies Windows operating system settings on the virtual machine. | OSConfiguration |
OsSapConfiguration
Name | Description | Value |
---|---|---|
deployerVmPackages | The url and storage account ID where deployer VM packages are uploaded | DeployerVmPackages |
sapFqdn | The FQDN to set for the SAP system | string |
SAPConfiguration
Name | Description | Value |
---|---|---|
configurationType | Set to 'Deployment' for type DeploymentConfiguration. Set to 'DeploymentWithOSConfig' for type DeploymentWithOSConfiguration. Set to 'Discovery' for type DiscoveryConfiguration. | 'Deployment' 'DeploymentWithOSConfig' 'Discovery' (required) |
SAPInstallWithoutOSConfigSoftwareConfiguration
Name | Description | Value |
---|---|---|
bomUrl | The URL to the SAP Build of Materials(BOM) file. | string (required) |
highAvailabilitySoftwareConfiguration | Gets or sets the HA software configuration. | HighAvailabilitySoftwareConfiguration |
sapBitsStorageAccountId | The SAP bits storage account id. | string (required) |
softwareInstallationType | The SAP software installation type. | 'SAPInstallWithoutOSConfig' (required) |
softwareVersion | The software version to install. | string (required) |
SAPVirtualInstanceIdentity
Name | Description | Value |
---|---|---|
type | The type of managed identity assigned to this resource. | 'None' 'UserAssigned' (required) |
userAssignedIdentities | The identities assigned to this resource by the user. | SAPVirtualInstanceIdentityUserAssignedIdentities |
SAPVirtualInstanceIdentityUserAssignedIdentities
Name | Description | Value |
---|
SAPVirtualInstanceProperties
Name | Description | Value |
---|---|---|
configuration | Defines if the SAP system is being created using Azure Center for SAP solutions (ACSS) or if an existing SAP system is being registered with ACSS | SAPConfiguration (required) |
environment | Defines the environment type - Production/Non Production. | 'NonProd' 'Prod' (required) |
managedResourceGroupConfiguration | Managed resource group configuration | ManagedRGConfiguration |
managedResourcesNetworkAccessType | Specifies the network access configuration for the resources that will be deployed in the Managed Resource Group. The options to choose from are Public and Private. If 'Private' is chosen, the Storage Account service tag should be enabled on the subnets in which the SAP VMs exist. This is required for establishing connectivity between VM extensions and the managed resource group storage account. This setting is currently applicable only to Storage Account. Learn more here https://go.microsoft.com/fwlink/?linkid=2247228 | 'Private' 'Public' |
sapProduct | Defines the SAP Product type. | 'ECC' 'Other' 'S4HANA' (required) |
ServiceInitiatedSoftwareConfiguration
Name | Description | Value |
---|---|---|
bomUrl | The URL to the SAP Build of Materials(BOM) file. | string (required) |
highAvailabilitySoftwareConfiguration | Gets or sets the HA software configuration. | HighAvailabilitySoftwareConfiguration |
sapBitsStorageAccountId | The SAP bits storage account id. | string (required) |
sapFqdn | The FQDN to set for the SAP system during install. | string (required) |
softwareInstallationType | The SAP software installation type. | 'ServiceInitiated' (required) |
softwareVersion | The software version to install. | string (required) |
sshPrivateKey | The SSH private key. | string Constraints: Sensitive value. Pass in as a secure parameter. (required) |
SharedStorageResourceNames
Name | Description | Value |
---|---|---|
sharedStorageAccountName | The full name of the shared storage account. If it is not provided, it will be defaulted to {SID}nfs{guid of 15 chars}. | string |
sharedStorageAccountPrivateEndPointName | The full name of private end point for the shared storage account. If it is not provided, it will be defaulted to {storageAccountName}_pe | string |
SingleServerConfiguration
Name | Description | Value |
---|---|---|
customResourceNames | The set of custom names to be used for underlying azure resources that are part of the SAP system. | SingleServerCustomResourceNames |
databaseType | The database type. | 'DB2' 'HANA' |
dbDiskConfiguration | Gets or sets the disk configuration. | DiskConfiguration |
deploymentType | The SAP deployment type. Eg: SingleServer/ThreeTier. | 'SingleServer' (required) |
networkConfiguration | Network configuration for the server | NetworkConfiguration |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
SingleServerCustomResourceNames
Name | Description | Value |
---|---|---|
namingPatternType | Set to 'FullResourceName' for type SingleServerFullResourceNames. | 'FullResourceName' (required) |
SingleServerFullResourceNames
Name | Description | Value |
---|---|---|
namingPatternType | The naming pattern type. | 'FullResourceName' (required) |
virtualMachine | The resource names object for virtual machine and related resources. | VirtualMachineResourceNames |
SkipFileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | The type of file share config, eg: Mount/CreateAndMount/Skip. | 'Skip' (required) |
SoftwareConfiguration
Name | Description | Value |
---|---|---|
softwareInstallationType | Set to 'External' for type ExternalInstallationSoftwareConfiguration. Set to 'SAPInstallWithoutOSConfig' for type SAPInstallWithoutOSConfigSoftwareConfiguration. Set to 'ServiceInitiated' for type ServiceInitiatedSoftwareConfiguration. | 'External' 'SAPInstallWithoutOSConfig' 'ServiceInitiated' (required) |
SshConfiguration
Name | Description | Value |
---|---|---|
publicKeys | The list of SSH public keys used to authenticate with linux based VMs. | SshPublicKey[] |
SshKeyPair
Name | Description | Value |
---|---|---|
privateKey | SSH private key. | string Constraints: Sensitive value. Pass in as a secure parameter. |
publicKey | SSH public key | string |
SshPublicKey
Name | Description | Value |
---|---|---|
keyData | SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see Create SSH keys on Linux and Mac for Linux VMs in Azure. |
string |
StorageConfiguration
Name | Description | Value |
---|---|---|
transportFileShareConfiguration | The properties of the transport directory attached to the VIS. The default for transportFileShareConfiguration is the createAndMount flow if storage configuration is missing. | FileShareConfiguration |
ThreeTierConfiguration
Name | Description | Value |
---|---|---|
applicationServer | The application server configuration. | ApplicationServerConfiguration (required) |
centralServer | The central server configuration. | CentralServerConfiguration (required) |
customResourceNames | The set of custom names to be used for underlying azure resources that are part of the SAP system. | ThreeTierCustomResourceNames |
databaseServer | The database configuration. | DatabaseConfiguration (required) |
deploymentType | The SAP deployment type. Eg: SingleServer/ThreeTier. | 'ThreeTier' (required) |
highAvailabilityConfig | The high availability configuration. | HighAvailabilityConfiguration |
networkConfiguration | Network configuration common to all servers | NetworkConfiguration |
storageConfiguration | The storage configuration. | StorageConfiguration |
ThreeTierCustomResourceNames
Name | Description | Value |
---|---|---|
namingPatternType | Set to 'FullResourceName' for type ThreeTierFullResourceNames. | 'FullResourceName' (required) |
ThreeTierFullResourceNames
Name | Description | Value |
---|---|---|
applicationServer | The full resource names object for application layer resources. The number of entries in this list should be equal to the number VMs to be created for application layer. | ApplicationServerFullResourceNames |
centralServer | The full resource names object for central server layer resources. | CentralServerFullResourceNames |
databaseServer | The full resource names object for database layer resources. The number of entries in this list should be equal to the number VMs to be created for database layer. | DatabaseServerFullResourceNames |
namingPatternType | The pattern type to be used for resource naming. | 'FullResourceName' (required) |
sharedStorage | The resource names object for shared storage. | SharedStorageResourceNames |
TrackedResourceTags
Name | Description | Value |
---|
UserAssignedIdentity
Name | Description | Value |
---|
VirtualMachineConfiguration
Name | Description | Value |
---|---|---|
imageReference | The image reference. | ImageReference (required) |
osProfile | The OS profile. | OSProfile (required) |
vmSize | The virtual machine size. | string (required) |
VirtualMachineResourceNames
Name | Description | Value |
---|---|---|
dataDiskNames | The full resource names for virtual machine data disks. This is a dictionary containing list of names of data disks per volume. Currently supported volumes for database layer are ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os', 'backup']. For application and cs layers, only 'default' volume is supported | VirtualMachineResourceNamesDataDiskNames |
hostName | The full name for virtual-machine's host (computer name). Currently, ACSS only supports host names which are less than or equal to 13 characters long. If this value is not provided, vmName will be used as host name. | string |
networkInterfaces | The list of network interface name objects for the selected virtual machine. Currently, only one network interface is supported per virtual machine. | NetworkInterfaceResourceNames[] |
osDiskName | The full name for OS disk attached to the VM. If this value is not provided, it will be named by ARM as per its default naming standards (prefixed with vm name). There is only one OS disk attached per Virtual Machine. | string |
vmName | The full name for virtual machine. The length of this field can be upto 64 characters. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}vm. In case of HA-AvZone systems, default name will be {SID}{app/ascs/db}z{a/b}vm with an incrementor at the end in case of more than 1 vm per layer. For distributed and HA-AvSet systems, default name will be {SID}{app/ascs/db}vm with an incrementor at the end in case of more than 1 vm per layer. | string |
VirtualMachineResourceNamesDataDiskNames
Name | Description | Value |
---|
WindowsConfiguration
Name | Description | Value |
---|---|---|
osType | The OS Type | 'Windows' (required) |
ARM template resource definition
The sapVirtualInstances resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.Workloads/sapVirtualInstances resource, add the following JSON to your template.
{
"type": "Microsoft.Workloads/sapVirtualInstances",
"apiVersion": "2024-09-01",
"name": "string",
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
}
}
},
"location": "string",
"properties": {
"configuration": {
"configurationType": "string"
// For remaining properties, see SAPConfiguration objects
},
"environment": "string",
"managedResourceGroupConfiguration": {
"name": "string"
},
"managedResourcesNetworkAccessType": "string",
"sapProduct": "string"
},
"tags": {
"{customized property}": "string"
}
}
InfrastructureConfiguration objects
Set the deploymentType property to specify the type of object.
For SingleServer, use:
{
"customResourceNames": {
"namingPatternType": "string"
// For remaining properties, see SingleServerCustomResourceNames objects
},
"databaseType": "string",
"dbDiskConfiguration": {
"diskVolumeConfigurations": {
"{customized property}": {
"count": "int",
"sizeGB": "int",
"sku": {
"name": "string"
}
}
}
},
"deploymentType": "SingleServer",
"networkConfiguration": {
"isSecondaryIpEnabled": "bool"
},
"subnetId": "string",
"virtualMachineConfiguration": {
"imageReference": {
"id": "string",
"offer": "string",
"publisher": "string",
"sku": "string",
"version": "string"
},
"osProfile": {
"adminPassword": "string",
"adminUsername": "string",
"osConfiguration": {
"osType": "string"
// For remaining properties, see OSConfiguration objects
}
},
"vmSize": "string"
}
}
For ThreeTier, use:
{
"applicationServer": {
"instanceCount": "int",
"subnetId": "string",
"virtualMachineConfiguration": {
"imageReference": {
"id": "string",
"offer": "string",
"publisher": "string",
"sku": "string",
"version": "string"
},
"osProfile": {
"adminPassword": "string",
"adminUsername": "string",
"osConfiguration": {
"osType": "string"
// For remaining properties, see OSConfiguration objects
}
},
"vmSize": "string"
}
},
"centralServer": {
"instanceCount": "int",
"subnetId": "string",
"virtualMachineConfiguration": {
"imageReference": {
"id": "string",
"offer": "string",
"publisher": "string",
"sku": "string",
"version": "string"
},
"osProfile": {
"adminPassword": "string",
"adminUsername": "string",
"osConfiguration": {
"osType": "string"
// For remaining properties, see OSConfiguration objects
}
},
"vmSize": "string"
}
},
"customResourceNames": {
"namingPatternType": "string"
// For remaining properties, see ThreeTierCustomResourceNames objects
},
"databaseServer": {
"databaseType": "string",
"diskConfiguration": {
"diskVolumeConfigurations": {
"{customized property}": {
"count": "int",
"sizeGB": "int",
"sku": {
"name": "string"
}
}
}
},
"instanceCount": "int",
"subnetId": "string",
"virtualMachineConfiguration": {
"imageReference": {
"id": "string",
"offer": "string",
"publisher": "string",
"sku": "string",
"version": "string"
},
"osProfile": {
"adminPassword": "string",
"adminUsername": "string",
"osConfiguration": {
"osType": "string"
// For remaining properties, see OSConfiguration objects
}
},
"vmSize": "string"
}
},
"deploymentType": "ThreeTier",
"highAvailabilityConfig": {
"highAvailabilityType": "string"
},
"networkConfiguration": {
"isSecondaryIpEnabled": "bool"
},
"storageConfiguration": {
"transportFileShareConfiguration": {
"configurationType": "string"
// For remaining properties, see FileShareConfiguration objects
}
}
}
SingleServerCustomResourceNames objects
Set the namingPatternType property to specify the type of object.
For FullResourceName, use:
{
"namingPatternType": "FullResourceName",
"virtualMachine": {
"dataDiskNames": {
"{customized property}": [ "string" ]
},
"hostName": "string",
"networkInterfaces": [
{
"networkInterfaceName": "string"
}
],
"osDiskName": "string",
"vmName": "string"
}
}
OSConfiguration objects
Set the osType property to specify the type of object.
For Linux, use:
{
"disablePasswordAuthentication": "bool",
"osType": "Linux",
"ssh": {
"publicKeys": [
{
"keyData": "string"
}
]
},
"sshKeyPair": {
"privateKey": "string",
"publicKey": "string"
}
}
For Windows, use:
{
"osType": "Windows"
}
SAPConfiguration objects
Set the configurationType property to specify the type of object.
For Deployment, use:
{
"appLocation": "string",
"configurationType": "Deployment",
"infrastructureConfiguration": {
"appResourceGroup": "string",
"deploymentType": "string"
// For remaining properties, see InfrastructureConfiguration objects
},
"softwareConfiguration": {
"softwareInstallationType": "string"
// For remaining properties, see SoftwareConfiguration objects
}
}
For DeploymentWithOSConfig, use:
{
"appLocation": "string",
"configurationType": "DeploymentWithOSConfig",
"infrastructureConfiguration": {
"appResourceGroup": "string",
"deploymentType": "string"
// For remaining properties, see InfrastructureConfiguration objects
},
"osSapConfiguration": {
"deployerVmPackages": {
"storageAccountId": "string",
"url": "string"
},
"sapFqdn": "string"
},
"softwareConfiguration": {
"softwareInstallationType": "string"
// For remaining properties, see SoftwareConfiguration objects
}
}
For Discovery, use:
{
"centralServerVmId": "string",
"configurationType": "Discovery",
"managedRgStorageAccountName": "string"
}
ThreeTierCustomResourceNames objects
Set the namingPatternType property to specify the type of object.
For FullResourceName, use:
{
"applicationServer": {
"availabilitySetName": "string",
"virtualMachines": [
{
"dataDiskNames": {
"{customized property}": [ "string" ]
},
"hostName": "string",
"networkInterfaces": [
{
"networkInterfaceName": "string"
}
],
"osDiskName": "string",
"vmName": "string"
}
]
},
"centralServer": {
"availabilitySetName": "string",
"loadBalancer": {
"backendPoolNames": [ "string" ],
"frontendIpConfigurationNames": [ "string" ],
"healthProbeNames": [ "string" ],
"loadBalancerName": "string"
},
"virtualMachines": [
{
"dataDiskNames": {
"{customized property}": [ "string" ]
},
"hostName": "string",
"networkInterfaces": [
{
"networkInterfaceName": "string"
}
],
"osDiskName": "string",
"vmName": "string"
}
]
},
"databaseServer": {
"availabilitySetName": "string",
"loadBalancer": {
"backendPoolNames": [ "string" ],
"frontendIpConfigurationNames": [ "string" ],
"healthProbeNames": [ "string" ],
"loadBalancerName": "string"
},
"virtualMachines": [
{
"dataDiskNames": {
"{customized property}": [ "string" ]
},
"hostName": "string",
"networkInterfaces": [
{
"networkInterfaceName": "string"
}
],
"osDiskName": "string",
"vmName": "string"
}
]
},
"namingPatternType": "FullResourceName",
"sharedStorage": {
"sharedStorageAccountName": "string",
"sharedStorageAccountPrivateEndPointName": "string"
}
}
FileShareConfiguration objects
Set the configurationType property to specify the type of object.
For CreateAndMount, use:
{
"configurationType": "CreateAndMount",
"resourceGroup": "string",
"storageAccountName": "string"
}
For Mount, use:
{
"configurationType": "Mount",
"id": "string",
"privateEndpointId": "string"
}
For Skip, use:
{
"configurationType": "Skip"
}
SoftwareConfiguration objects
Set the softwareInstallationType property to specify the type of object.
For External, use:
{
"centralServerVmId": "string",
"softwareInstallationType": "External"
}
For SAPInstallWithoutOSConfig, use:
{
"bomUrl": "string",
"highAvailabilitySoftwareConfiguration": {
"fencingClientId": "string",
"fencingClientPassword": "string"
},
"sapBitsStorageAccountId": "string",
"softwareInstallationType": "SAPInstallWithoutOSConfig",
"softwareVersion": "string"
}
For ServiceInitiated, use:
{
"bomUrl": "string",
"highAvailabilitySoftwareConfiguration": {
"fencingClientId": "string",
"fencingClientPassword": "string"
},
"sapBitsStorageAccountId": "string",
"sapFqdn": "string",
"softwareInstallationType": "ServiceInitiated",
"softwareVersion": "string",
"sshPrivateKey": "string"
}
Property Values
Microsoft.Workloads/sapVirtualInstances
Name | Description | Value |
---|---|---|
apiVersion | The api version | '2024-09-01' |
identity | The managed service identities assigned to this resource. | SAPVirtualInstanceIdentity |
location | The geo-location where the resource lives | string (required) |
name | The resource name | string Constraints: Pattern = ^[a-zA-Z][a-zA-Z0-9]{2}$ (required) |
properties | The resource-specific properties for this resource. | SAPVirtualInstanceProperties |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
type | The resource type | 'Microsoft.Workloads/sapVirtualInstances' |
ApplicationServerConfiguration
Name | Description | Value |
---|---|---|
instanceCount | The number of app server instances. | int (required) |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
ApplicationServerFullResourceNames
Name | Description | Value |
---|---|---|
availabilitySetName | The full name for availability set. In case name is not provided, it will be defaulted to {SID}-App-AvSet. | string |
virtualMachines | The list of virtual machine naming details. | VirtualMachineResourceNames[] |
CentralServerConfiguration
Name | Description | Value |
---|---|---|
instanceCount | The number of central server VMs. | int (required) |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
CentralServerFullResourceNames
Name | Description | Value |
---|---|---|
availabilitySetName | The full name for availability set. In case name is not provided, it will be defaulted to {SID}-ASCS-AvSet. | string |
loadBalancer | The resource names object for load balancer and related resources. | LoadBalancerResourceNames |
virtualMachines | The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS. | VirtualMachineResourceNames[] |
CreateAndMountFileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | The type of file share config, eg: Mount/CreateAndMount/Skip. | 'CreateAndMount' (required) |
resourceGroup | The name of transport file share resource group. This should be pre created by the customer. The app rg is used in case of missing input. | string |
storageAccountName | The name of file share storage account name . A custom name is used in case of missing input. | string |
DatabaseConfiguration
Name | Description | Value |
---|---|---|
databaseType | The database type. | 'DB2' 'HANA' |
diskConfiguration | Gets or sets the disk configuration. | DiskConfiguration |
instanceCount | The number of database VMs. | int (required) |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
DatabaseServerFullResourceNames
Name | Description | Value |
---|---|---|
availabilitySetName | The full name for availability set. In case name is not provided, it will be defaulted to {SID}-DB-AvSet. | string |
loadBalancer | The resource names object for load balancer and related resources. | LoadBalancerResourceNames |
virtualMachines | The list of virtual machine naming details. | VirtualMachineResourceNames[] |
DeployerVmPackages
Name | Description | Value |
---|---|---|
storageAccountId | The deployer VM packages storage account id | string |
url | The URL to the deployer VM packages file. | string |
DeploymentConfiguration
Name | Description | Value |
---|---|---|
appLocation | The geo-location where the SAP system is to be created. | string |
configurationType | The configuration type. Eg: Deployment/Discovery | 'Deployment' (required) |
infrastructureConfiguration | The infrastructure configuration. | InfrastructureConfiguration |
softwareConfiguration | The software configuration. | SoftwareConfiguration |
DeploymentWithOSConfiguration
Name | Description | Value |
---|---|---|
appLocation | The geo-location where the SAP system is to be created. | string |
configurationType | The configuration type. Eg: Deployment/Discovery | 'DeploymentWithOSConfig' (required) |
infrastructureConfiguration | The infrastructure configuration. | InfrastructureConfiguration |
osSapConfiguration | The OS and SAP configuration. | OsSapConfiguration |
softwareConfiguration | The software configuration. | SoftwareConfiguration |
DiscoveryConfiguration
Name | Description | Value |
---|---|---|
centralServerVmId | The virtual machine ID of the Central Server. | string |
configurationType | The configuration type. Eg: Deployment/Discovery | 'Discovery' (required) |
managedRgStorageAccountName | The custom storage account name for the storage account created by the service in the managed resource group created as part of VIS deployment. Refer to the storage account naming rules here. If not provided, the service will create the storage account with a random name. |
string Constraints: Min length = 3 Max length = 24 |
DiskConfiguration
Name | Description | Value |
---|---|---|
diskVolumeConfigurations | The disk configuration for the db volume. For HANA, Required volumes are: ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os'], Optional volume : ['backup']. | DiskConfigurationDiskVolumeConfigurations |
DiskConfigurationDiskVolumeConfigurations
Name | Description | Value |
---|
DiskSku
Name | Description | Value |
---|---|---|
name | Defines the disk sku name. | 'PremiumV2_LRS' 'Premium_LRS' 'Premium_ZRS' 'StandardSSD_LRS' 'StandardSSD_ZRS' 'Standard_LRS' 'UltraSSD_LRS' |
DiskVolumeConfiguration
Name | Description | Value |
---|---|---|
count | The total number of disks required for the concerned volume. | int |
sizeGB | The disk size in GB. | int |
sku | The disk SKU details. | DiskSku |
ExternalInstallationSoftwareConfiguration
Name | Description | Value |
---|---|---|
centralServerVmId | The resource ID of the virtual machine containing the central server instance. | string |
softwareInstallationType | The SAP software installation type. | 'External' (required) |
FileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | Set to 'CreateAndMount' for type CreateAndMountFileShareConfiguration. Set to 'Mount' for type MountFileShareConfiguration. Set to 'Skip' for type SkipFileShareConfiguration. | 'CreateAndMount' 'Mount' 'Skip' (required) |
HighAvailabilityConfiguration
Name | Description | Value |
---|---|---|
highAvailabilityType | The high availability type. | 'AvailabilitySet' 'AvailabilityZone' (required) |
HighAvailabilitySoftwareConfiguration
Name | Description | Value |
---|---|---|
fencingClientId | The fencing client id. | string (required) |
fencingClientPassword | The fencing client id secret/password. The secret should never expire. This will be used pacemaker to start/stop the cluster VMs. | string Constraints: Sensitive value. Pass in as a secure parameter. (required) |
ImageReference
Name | Description | Value |
---|---|---|
id | Specifies the ARM resource ID of the Azure Compute Gallery image version used for creating ACSS VMs. You will need to provide this input when you choose to deploy virtual machines in ACSS with OS image from the Azure Compute gallery. | string |
offer | Specifies the offer of the platform image or marketplace image used to create the virtual machine. | string |
publisher | The image publisher. | string |
sku | The image SKU. | string |
version | Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. | string |
InfrastructureConfiguration
Name | Description | Value |
---|---|---|
appResourceGroup | The application resource group where SAP system resources will be deployed. | string (required) |
deploymentType | Set to 'SingleServer' for type SingleServerConfiguration. Set to 'ThreeTier' for type ThreeTierConfiguration. | 'SingleServer' 'ThreeTier' (required) |
LinuxConfiguration
Name | Description | Value |
---|---|---|
disablePasswordAuthentication | Specifies whether password authentication should be disabled. | bool |
osType | The OS Type | 'Linux' (required) |
ssh | Specifies the ssh key configuration for a Linux OS. (This property is deprecated, please use 'sshKeyPair' instead) | SshConfiguration |
sshKeyPair | The SSH Key-pair used to authenticate with the VM's. | SshKeyPair |
LoadBalancerResourceNames
Name | Description | Value |
---|---|---|
backendPoolNames | The list of backend pool names. Currently, ACSS deploys only one backend pool and hence, size of this list should be 1 | string[] |
frontendIpConfigurationNames | The list of frontend IP configuration names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. | string[] |
healthProbeNames | The list of health probe names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. | string[] |
loadBalancerName | The full resource name for load balancer. If this value is not provided, load balancer will be name as {ASCS/DB}-loadBalancer. | string |
ManagedRGConfiguration
Name | Description | Value |
---|---|---|
name | Managed resource group name | string |
MountFileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | The type of file share config, eg: Mount/CreateAndMount/Skip. | 'Mount' (required) |
id | The fileshare resource ID | string (required) |
privateEndpointId | The private endpoint resource ID | string (required) |
NetworkConfiguration
Name | Description | Value |
---|---|---|
isSecondaryIpEnabled | Specifies whether a secondary IP address should be added to the network interface on all VMs of the SAP system being deployed | bool |
NetworkInterfaceResourceNames
Name | Description | Value |
---|---|---|
networkInterfaceName | The full name for network interface. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}-Nic. In case of HA-AvZone systems, default name will be {SID}-{App/ASCS/DB}-Zone{A/B}-Nic with an incrementor at the end in case of more than 1 instance per layer. For distributed and HA-AvSet systems, default name will be {SID}-{App/ASCS/DB}-Nic with an incrementor at the end in case of more than 1 instance per layer. | string |
OSConfiguration
Name | Description | Value |
---|---|---|
osType | Set to 'Linux' for type LinuxConfiguration. Set to 'Windows' for type WindowsConfiguration. | 'Linux' 'Windows' (required) |
OSProfile
Name | Description | Value |
---|---|---|
adminPassword | Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension |
string Constraints: Sensitive value. Pass in as a secure parameter. |
adminUsername | Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters. |
string |
osConfiguration | Specifies Windows operating system settings on the virtual machine. | OSConfiguration |
OsSapConfiguration
Name | Description | Value |
---|---|---|
deployerVmPackages | The url and storage account ID where deployer VM packages are uploaded | DeployerVmPackages |
sapFqdn | The FQDN to set for the SAP system | string |
SAPConfiguration
Name | Description | Value |
---|---|---|
configurationType | Set to 'Deployment' for type DeploymentConfiguration. Set to 'DeploymentWithOSConfig' for type DeploymentWithOSConfiguration. Set to 'Discovery' for type DiscoveryConfiguration. | 'Deployment' 'DeploymentWithOSConfig' 'Discovery' (required) |
SAPInstallWithoutOSConfigSoftwareConfiguration
Name | Description | Value |
---|---|---|
bomUrl | The URL to the SAP Build of Materials(BOM) file. | string (required) |
highAvailabilitySoftwareConfiguration | Gets or sets the HA software configuration. | HighAvailabilitySoftwareConfiguration |
sapBitsStorageAccountId | The SAP bits storage account id. | string (required) |
softwareInstallationType | The SAP software installation type. | 'SAPInstallWithoutOSConfig' (required) |
softwareVersion | The software version to install. | string (required) |
SAPVirtualInstanceIdentity
Name | Description | Value |
---|---|---|
type | The type of managed identity assigned to this resource. | 'None' 'UserAssigned' (required) |
userAssignedIdentities | The identities assigned to this resource by the user. | SAPVirtualInstanceIdentityUserAssignedIdentities |
SAPVirtualInstanceIdentityUserAssignedIdentities
Name | Description | Value |
---|
SAPVirtualInstanceProperties
Name | Description | Value |
---|---|---|
configuration | Defines if the SAP system is being created using Azure Center for SAP solutions (ACSS) or if an existing SAP system is being registered with ACSS | SAPConfiguration (required) |
environment | Defines the environment type - Production/Non Production. | 'NonProd' 'Prod' (required) |
managedResourceGroupConfiguration | Managed resource group configuration | ManagedRGConfiguration |
managedResourcesNetworkAccessType | Specifies the network access configuration for the resources that will be deployed in the Managed Resource Group. The options to choose from are Public and Private. If 'Private' is chosen, the Storage Account service tag should be enabled on the subnets in which the SAP VMs exist. This is required for establishing connectivity between VM extensions and the managed resource group storage account. This setting is currently applicable only to Storage Account. Learn more here https://go.microsoft.com/fwlink/?linkid=2247228 | 'Private' 'Public' |
sapProduct | Defines the SAP Product type. | 'ECC' 'Other' 'S4HANA' (required) |
ServiceInitiatedSoftwareConfiguration
Name | Description | Value |
---|---|---|
bomUrl | The URL to the SAP Build of Materials(BOM) file. | string (required) |
highAvailabilitySoftwareConfiguration | Gets or sets the HA software configuration. | HighAvailabilitySoftwareConfiguration |
sapBitsStorageAccountId | The SAP bits storage account id. | string (required) |
sapFqdn | The FQDN to set for the SAP system during install. | string (required) |
softwareInstallationType | The SAP software installation type. | 'ServiceInitiated' (required) |
softwareVersion | The software version to install. | string (required) |
sshPrivateKey | The SSH private key. | string Constraints: Sensitive value. Pass in as a secure parameter. (required) |
SharedStorageResourceNames
Name | Description | Value |
---|---|---|
sharedStorageAccountName | The full name of the shared storage account. If it is not provided, it will be defaulted to {SID}nfs{guid of 15 chars}. | string |
sharedStorageAccountPrivateEndPointName | The full name of private end point for the shared storage account. If it is not provided, it will be defaulted to {storageAccountName}_pe | string |
SingleServerConfiguration
Name | Description | Value |
---|---|---|
customResourceNames | The set of custom names to be used for underlying azure resources that are part of the SAP system. | SingleServerCustomResourceNames |
databaseType | The database type. | 'DB2' 'HANA' |
dbDiskConfiguration | Gets or sets the disk configuration. | DiskConfiguration |
deploymentType | The SAP deployment type. Eg: SingleServer/ThreeTier. | 'SingleServer' (required) |
networkConfiguration | Network configuration for the server | NetworkConfiguration |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
SingleServerCustomResourceNames
Name | Description | Value |
---|---|---|
namingPatternType | Set to 'FullResourceName' for type SingleServerFullResourceNames. | 'FullResourceName' (required) |
SingleServerFullResourceNames
Name | Description | Value |
---|---|---|
namingPatternType | The naming pattern type. | 'FullResourceName' (required) |
virtualMachine | The resource names object for virtual machine and related resources. | VirtualMachineResourceNames |
SkipFileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | The type of file share config, eg: Mount/CreateAndMount/Skip. | 'Skip' (required) |
SoftwareConfiguration
Name | Description | Value |
---|---|---|
softwareInstallationType | Set to 'External' for type ExternalInstallationSoftwareConfiguration. Set to 'SAPInstallWithoutOSConfig' for type SAPInstallWithoutOSConfigSoftwareConfiguration. Set to 'ServiceInitiated' for type ServiceInitiatedSoftwareConfiguration. | 'External' 'SAPInstallWithoutOSConfig' 'ServiceInitiated' (required) |
SshConfiguration
Name | Description | Value |
---|---|---|
publicKeys | The list of SSH public keys used to authenticate with linux based VMs. | SshPublicKey[] |
SshKeyPair
Name | Description | Value |
---|---|---|
privateKey | SSH private key. | string Constraints: Sensitive value. Pass in as a secure parameter. |
publicKey | SSH public key | string |
SshPublicKey
Name | Description | Value |
---|---|---|
keyData | SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see Create SSH keys on Linux and Mac for Linux VMs in Azure. |
string |
StorageConfiguration
Name | Description | Value |
---|---|---|
transportFileShareConfiguration | The properties of the transport directory attached to the VIS. The default for transportFileShareConfiguration is the createAndMount flow if storage configuration is missing. | FileShareConfiguration |
ThreeTierConfiguration
Name | Description | Value |
---|---|---|
applicationServer | The application server configuration. | ApplicationServerConfiguration (required) |
centralServer | The central server configuration. | CentralServerConfiguration (required) |
customResourceNames | The set of custom names to be used for underlying azure resources that are part of the SAP system. | ThreeTierCustomResourceNames |
databaseServer | The database configuration. | DatabaseConfiguration (required) |
deploymentType | The SAP deployment type. Eg: SingleServer/ThreeTier. | 'ThreeTier' (required) |
highAvailabilityConfig | The high availability configuration. | HighAvailabilityConfiguration |
networkConfiguration | Network configuration common to all servers | NetworkConfiguration |
storageConfiguration | The storage configuration. | StorageConfiguration |
ThreeTierCustomResourceNames
Name | Description | Value |
---|---|---|
namingPatternType | Set to 'FullResourceName' for type ThreeTierFullResourceNames. | 'FullResourceName' (required) |
ThreeTierFullResourceNames
Name | Description | Value |
---|---|---|
applicationServer | The full resource names object for application layer resources. The number of entries in this list should be equal to the number VMs to be created for application layer. | ApplicationServerFullResourceNames |
centralServer | The full resource names object for central server layer resources. | CentralServerFullResourceNames |
databaseServer | The full resource names object for database layer resources. The number of entries in this list should be equal to the number VMs to be created for database layer. | DatabaseServerFullResourceNames |
namingPatternType | The pattern type to be used for resource naming. | 'FullResourceName' (required) |
sharedStorage | The resource names object for shared storage. | SharedStorageResourceNames |
TrackedResourceTags
Name | Description | Value |
---|
UserAssignedIdentity
Name | Description | Value |
---|
VirtualMachineConfiguration
Name | Description | Value |
---|---|---|
imageReference | The image reference. | ImageReference (required) |
osProfile | The OS profile. | OSProfile (required) |
vmSize | The virtual machine size. | string (required) |
VirtualMachineResourceNames
Name | Description | Value |
---|---|---|
dataDiskNames | The full resource names for virtual machine data disks. This is a dictionary containing list of names of data disks per volume. Currently supported volumes for database layer are ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os', 'backup']. For application and cs layers, only 'default' volume is supported | VirtualMachineResourceNamesDataDiskNames |
hostName | The full name for virtual-machine's host (computer name). Currently, ACSS only supports host names which are less than or equal to 13 characters long. If this value is not provided, vmName will be used as host name. | string |
networkInterfaces | The list of network interface name objects for the selected virtual machine. Currently, only one network interface is supported per virtual machine. | NetworkInterfaceResourceNames[] |
osDiskName | The full name for OS disk attached to the VM. If this value is not provided, it will be named by ARM as per its default naming standards (prefixed with vm name). There is only one OS disk attached per Virtual Machine. | string |
vmName | The full name for virtual machine. The length of this field can be upto 64 characters. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}vm. In case of HA-AvZone systems, default name will be {SID}{app/ascs/db}z{a/b}vm with an incrementor at the end in case of more than 1 vm per layer. For distributed and HA-AvSet systems, default name will be {SID}{app/ascs/db}vm with an incrementor at the end in case of more than 1 vm per layer. | string |
VirtualMachineResourceNamesDataDiskNames
Name | Description | Value |
---|
WindowsConfiguration
Name | Description | Value |
---|---|---|
osType | The OS Type | 'Windows' (required) |
Usage Examples
Terraform (AzAPI provider) resource definition
The sapVirtualInstances resource type can be deployed with operations that target:
- Resource groups
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.Workloads/sapVirtualInstances resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Workloads/sapVirtualInstances@2024-09-01"
name = "string"
parent_id = "string"
identity {
type = "string"
identity_ids = [
"string"
]
}
location = "string"
tags = {
{customized property} = "string"
}
body = {
properties = {
configuration = {
configurationType = "string"
// For remaining properties, see SAPConfiguration objects
}
environment = "string"
managedResourceGroupConfiguration = {
name = "string"
}
managedResourcesNetworkAccessType = "string"
sapProduct = "string"
}
}
}
InfrastructureConfiguration objects
Set the deploymentType property to specify the type of object.
For SingleServer, use:
{
customResourceNames = {
namingPatternType = "string"
// For remaining properties, see SingleServerCustomResourceNames objects
}
databaseType = "string"
dbDiskConfiguration = {
diskVolumeConfigurations = {
{customized property} = {
count = int
sizeGB = int
sku = {
name = "string"
}
}
}
}
deploymentType = "SingleServer"
networkConfiguration = {
isSecondaryIpEnabled = bool
}
subnetId = "string"
virtualMachineConfiguration = {
imageReference = {
id = "string"
offer = "string"
publisher = "string"
sku = "string"
version = "string"
}
osProfile = {
adminPassword = "string"
adminUsername = "string"
osConfiguration = {
osType = "string"
// For remaining properties, see OSConfiguration objects
}
}
vmSize = "string"
}
}
For ThreeTier, use:
{
applicationServer = {
instanceCount = int
subnetId = "string"
virtualMachineConfiguration = {
imageReference = {
id = "string"
offer = "string"
publisher = "string"
sku = "string"
version = "string"
}
osProfile = {
adminPassword = "string"
adminUsername = "string"
osConfiguration = {
osType = "string"
// For remaining properties, see OSConfiguration objects
}
}
vmSize = "string"
}
}
centralServer = {
instanceCount = int
subnetId = "string"
virtualMachineConfiguration = {
imageReference = {
id = "string"
offer = "string"
publisher = "string"
sku = "string"
version = "string"
}
osProfile = {
adminPassword = "string"
adminUsername = "string"
osConfiguration = {
osType = "string"
// For remaining properties, see OSConfiguration objects
}
}
vmSize = "string"
}
}
customResourceNames = {
namingPatternType = "string"
// For remaining properties, see ThreeTierCustomResourceNames objects
}
databaseServer = {
databaseType = "string"
diskConfiguration = {
diskVolumeConfigurations = {
{customized property} = {
count = int
sizeGB = int
sku = {
name = "string"
}
}
}
}
instanceCount = int
subnetId = "string"
virtualMachineConfiguration = {
imageReference = {
id = "string"
offer = "string"
publisher = "string"
sku = "string"
version = "string"
}
osProfile = {
adminPassword = "string"
adminUsername = "string"
osConfiguration = {
osType = "string"
// For remaining properties, see OSConfiguration objects
}
}
vmSize = "string"
}
}
deploymentType = "ThreeTier"
highAvailabilityConfig = {
highAvailabilityType = "string"
}
networkConfiguration = {
isSecondaryIpEnabled = bool
}
storageConfiguration = {
transportFileShareConfiguration = {
configurationType = "string"
// For remaining properties, see FileShareConfiguration objects
}
}
}
SingleServerCustomResourceNames objects
Set the namingPatternType property to specify the type of object.
For FullResourceName, use:
{
namingPatternType = "FullResourceName"
virtualMachine = {
dataDiskNames = {
{customized property} = [
"string"
]
}
hostName = "string"
networkInterfaces = [
{
networkInterfaceName = "string"
}
]
osDiskName = "string"
vmName = "string"
}
}
OSConfiguration objects
Set the osType property to specify the type of object.
For Linux, use:
{
disablePasswordAuthentication = bool
osType = "Linux"
ssh = {
publicKeys = [
{
keyData = "string"
}
]
}
sshKeyPair = {
privateKey = "string"
publicKey = "string"
}
}
For Windows, use:
{
osType = "Windows"
}
SAPConfiguration objects
Set the configurationType property to specify the type of object.
For Deployment, use:
{
appLocation = "string"
configurationType = "Deployment"
infrastructureConfiguration = {
appResourceGroup = "string"
deploymentType = "string"
// For remaining properties, see InfrastructureConfiguration objects
}
softwareConfiguration = {
softwareInstallationType = "string"
// For remaining properties, see SoftwareConfiguration objects
}
}
For DeploymentWithOSConfig, use:
{
appLocation = "string"
configurationType = "DeploymentWithOSConfig"
infrastructureConfiguration = {
appResourceGroup = "string"
deploymentType = "string"
// For remaining properties, see InfrastructureConfiguration objects
}
osSapConfiguration = {
deployerVmPackages = {
storageAccountId = "string"
url = "string"
}
sapFqdn = "string"
}
softwareConfiguration = {
softwareInstallationType = "string"
// For remaining properties, see SoftwareConfiguration objects
}
}
For Discovery, use:
{
centralServerVmId = "string"
configurationType = "Discovery"
managedRgStorageAccountName = "string"
}
ThreeTierCustomResourceNames objects
Set the namingPatternType property to specify the type of object.
For FullResourceName, use:
{
applicationServer = {
availabilitySetName = "string"
virtualMachines = [
{
dataDiskNames = {
{customized property} = [
"string"
]
}
hostName = "string"
networkInterfaces = [
{
networkInterfaceName = "string"
}
]
osDiskName = "string"
vmName = "string"
}
]
}
centralServer = {
availabilitySetName = "string"
loadBalancer = {
backendPoolNames = [
"string"
]
frontendIpConfigurationNames = [
"string"
]
healthProbeNames = [
"string"
]
loadBalancerName = "string"
}
virtualMachines = [
{
dataDiskNames = {
{customized property} = [
"string"
]
}
hostName = "string"
networkInterfaces = [
{
networkInterfaceName = "string"
}
]
osDiskName = "string"
vmName = "string"
}
]
}
databaseServer = {
availabilitySetName = "string"
loadBalancer = {
backendPoolNames = [
"string"
]
frontendIpConfigurationNames = [
"string"
]
healthProbeNames = [
"string"
]
loadBalancerName = "string"
}
virtualMachines = [
{
dataDiskNames = {
{customized property} = [
"string"
]
}
hostName = "string"
networkInterfaces = [
{
networkInterfaceName = "string"
}
]
osDiskName = "string"
vmName = "string"
}
]
}
namingPatternType = "FullResourceName"
sharedStorage = {
sharedStorageAccountName = "string"
sharedStorageAccountPrivateEndPointName = "string"
}
}
FileShareConfiguration objects
Set the configurationType property to specify the type of object.
For CreateAndMount, use:
{
configurationType = "CreateAndMount"
resourceGroup = "string"
storageAccountName = "string"
}
For Mount, use:
{
configurationType = "Mount"
id = "string"
privateEndpointId = "string"
}
For Skip, use:
{
configurationType = "Skip"
}
SoftwareConfiguration objects
Set the softwareInstallationType property to specify the type of object.
For External, use:
{
centralServerVmId = "string"
softwareInstallationType = "External"
}
For SAPInstallWithoutOSConfig, use:
{
bomUrl = "string"
highAvailabilitySoftwareConfiguration = {
fencingClientId = "string"
fencingClientPassword = "string"
}
sapBitsStorageAccountId = "string"
softwareInstallationType = "SAPInstallWithoutOSConfig"
softwareVersion = "string"
}
For ServiceInitiated, use:
{
bomUrl = "string"
highAvailabilitySoftwareConfiguration = {
fencingClientId = "string"
fencingClientPassword = "string"
}
sapBitsStorageAccountId = "string"
sapFqdn = "string"
softwareInstallationType = "ServiceInitiated"
softwareVersion = "string"
sshPrivateKey = "string"
}
Property Values
Microsoft.Workloads/sapVirtualInstances
Name | Description | Value |
---|---|---|
identity | The managed service identities assigned to this resource. | SAPVirtualInstanceIdentity |
location | The geo-location where the resource lives | string (required) |
name | The resource name | string Constraints: Pattern = ^[a-zA-Z][a-zA-Z0-9]{2}$ (required) |
properties | The resource-specific properties for this resource. | SAPVirtualInstanceProperties |
tags | Resource tags | Dictionary of tag names and values. |
type | The resource type | "Microsoft.Workloads/sapVirtualInstances@2024-09-01" |
ApplicationServerConfiguration
Name | Description | Value |
---|---|---|
instanceCount | The number of app server instances. | int (required) |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
ApplicationServerFullResourceNames
Name | Description | Value |
---|---|---|
availabilitySetName | The full name for availability set. In case name is not provided, it will be defaulted to {SID}-App-AvSet. | string |
virtualMachines | The list of virtual machine naming details. | VirtualMachineResourceNames[] |
CentralServerConfiguration
Name | Description | Value |
---|---|---|
instanceCount | The number of central server VMs. | int (required) |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
CentralServerFullResourceNames
Name | Description | Value |
---|---|---|
availabilitySetName | The full name for availability set. In case name is not provided, it will be defaulted to {SID}-ASCS-AvSet. | string |
loadBalancer | The resource names object for load balancer and related resources. | LoadBalancerResourceNames |
virtualMachines | The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS. | VirtualMachineResourceNames[] |
CreateAndMountFileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | The type of file share config, eg: Mount/CreateAndMount/Skip. | 'CreateAndMount' (required) |
resourceGroup | The name of transport file share resource group. This should be pre created by the customer. The app rg is used in case of missing input. | string |
storageAccountName | The name of file share storage account name . A custom name is used in case of missing input. | string |
DatabaseConfiguration
Name | Description | Value |
---|---|---|
databaseType | The database type. | 'DB2' 'HANA' |
diskConfiguration | Gets or sets the disk configuration. | DiskConfiguration |
instanceCount | The number of database VMs. | int (required) |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
DatabaseServerFullResourceNames
Name | Description | Value |
---|---|---|
availabilitySetName | The full name for availability set. In case name is not provided, it will be defaulted to {SID}-DB-AvSet. | string |
loadBalancer | The resource names object for load balancer and related resources. | LoadBalancerResourceNames |
virtualMachines | The list of virtual machine naming details. | VirtualMachineResourceNames[] |
DeployerVmPackages
Name | Description | Value |
---|---|---|
storageAccountId | The deployer VM packages storage account id | string |
url | The URL to the deployer VM packages file. | string |
DeploymentConfiguration
Name | Description | Value |
---|---|---|
appLocation | The geo-location where the SAP system is to be created. | string |
configurationType | The configuration type. Eg: Deployment/Discovery | 'Deployment' (required) |
infrastructureConfiguration | The infrastructure configuration. | InfrastructureConfiguration |
softwareConfiguration | The software configuration. | SoftwareConfiguration |
DeploymentWithOSConfiguration
Name | Description | Value |
---|---|---|
appLocation | The geo-location where the SAP system is to be created. | string |
configurationType | The configuration type. Eg: Deployment/Discovery | 'DeploymentWithOSConfig' (required) |
infrastructureConfiguration | The infrastructure configuration. | InfrastructureConfiguration |
osSapConfiguration | The OS and SAP configuration. | OsSapConfiguration |
softwareConfiguration | The software configuration. | SoftwareConfiguration |
DiscoveryConfiguration
Name | Description | Value |
---|---|---|
centralServerVmId | The virtual machine ID of the Central Server. | string |
configurationType | The configuration type. Eg: Deployment/Discovery | 'Discovery' (required) |
managedRgStorageAccountName | The custom storage account name for the storage account created by the service in the managed resource group created as part of VIS deployment. Refer to the storage account naming rules here. If not provided, the service will create the storage account with a random name. |
string Constraints: Min length = 3 Max length = 24 |
DiskConfiguration
Name | Description | Value |
---|---|---|
diskVolumeConfigurations | The disk configuration for the db volume. For HANA, Required volumes are: ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os'], Optional volume : ['backup']. | DiskConfigurationDiskVolumeConfigurations |
DiskConfigurationDiskVolumeConfigurations
Name | Description | Value |
---|
DiskSku
Name | Description | Value |
---|---|---|
name | Defines the disk sku name. | 'PremiumV2_LRS' 'Premium_LRS' 'Premium_ZRS' 'StandardSSD_LRS' 'StandardSSD_ZRS' 'Standard_LRS' 'UltraSSD_LRS' |
DiskVolumeConfiguration
Name | Description | Value |
---|---|---|
count | The total number of disks required for the concerned volume. | int |
sizeGB | The disk size in GB. | int |
sku | The disk SKU details. | DiskSku |
ExternalInstallationSoftwareConfiguration
Name | Description | Value |
---|---|---|
centralServerVmId | The resource ID of the virtual machine containing the central server instance. | string |
softwareInstallationType | The SAP software installation type. | 'External' (required) |
FileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | Set to 'CreateAndMount' for type CreateAndMountFileShareConfiguration. Set to 'Mount' for type MountFileShareConfiguration. Set to 'Skip' for type SkipFileShareConfiguration. | 'CreateAndMount' 'Mount' 'Skip' (required) |
HighAvailabilityConfiguration
Name | Description | Value |
---|---|---|
highAvailabilityType | The high availability type. | 'AvailabilitySet' 'AvailabilityZone' (required) |
HighAvailabilitySoftwareConfiguration
Name | Description | Value |
---|---|---|
fencingClientId | The fencing client id. | string (required) |
fencingClientPassword | The fencing client id secret/password. The secret should never expire. This will be used pacemaker to start/stop the cluster VMs. | string Constraints: Sensitive value. Pass in as a secure parameter. (required) |
ImageReference
Name | Description | Value |
---|---|---|
id | Specifies the ARM resource ID of the Azure Compute Gallery image version used for creating ACSS VMs. You will need to provide this input when you choose to deploy virtual machines in ACSS with OS image from the Azure Compute gallery. | string |
offer | Specifies the offer of the platform image or marketplace image used to create the virtual machine. | string |
publisher | The image publisher. | string |
sku | The image SKU. | string |
version | Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. | string |
InfrastructureConfiguration
Name | Description | Value |
---|---|---|
appResourceGroup | The application resource group where SAP system resources will be deployed. | string (required) |
deploymentType | Set to 'SingleServer' for type SingleServerConfiguration. Set to 'ThreeTier' for type ThreeTierConfiguration. | 'SingleServer' 'ThreeTier' (required) |
LinuxConfiguration
Name | Description | Value |
---|---|---|
disablePasswordAuthentication | Specifies whether password authentication should be disabled. | bool |
osType | The OS Type | 'Linux' (required) |
ssh | Specifies the ssh key configuration for a Linux OS. (This property is deprecated, please use 'sshKeyPair' instead) | SshConfiguration |
sshKeyPair | The SSH Key-pair used to authenticate with the VM's. | SshKeyPair |
LoadBalancerResourceNames
Name | Description | Value |
---|---|---|
backendPoolNames | The list of backend pool names. Currently, ACSS deploys only one backend pool and hence, size of this list should be 1 | string[] |
frontendIpConfigurationNames | The list of frontend IP configuration names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. | string[] |
healthProbeNames | The list of health probe names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. | string[] |
loadBalancerName | The full resource name for load balancer. If this value is not provided, load balancer will be name as {ASCS/DB}-loadBalancer. | string |
ManagedRGConfiguration
Name | Description | Value |
---|---|---|
name | Managed resource group name | string |
MountFileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | The type of file share config, eg: Mount/CreateAndMount/Skip. | 'Mount' (required) |
id | The fileshare resource ID | string (required) |
privateEndpointId | The private endpoint resource ID | string (required) |
NetworkConfiguration
Name | Description | Value |
---|---|---|
isSecondaryIpEnabled | Specifies whether a secondary IP address should be added to the network interface on all VMs of the SAP system being deployed | bool |
NetworkInterfaceResourceNames
Name | Description | Value |
---|---|---|
networkInterfaceName | The full name for network interface. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}-Nic. In case of HA-AvZone systems, default name will be {SID}-{App/ASCS/DB}-Zone{A/B}-Nic with an incrementor at the end in case of more than 1 instance per layer. For distributed and HA-AvSet systems, default name will be {SID}-{App/ASCS/DB}-Nic with an incrementor at the end in case of more than 1 instance per layer. | string |
OSConfiguration
Name | Description | Value |
---|---|---|
osType | Set to 'Linux' for type LinuxConfiguration. Set to 'Windows' for type WindowsConfiguration. | 'Linux' 'Windows' (required) |
OSProfile
Name | Description | Value |
---|---|---|
adminPassword | Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension |
string Constraints: Sensitive value. Pass in as a secure parameter. |
adminUsername | Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters. |
string |
osConfiguration | Specifies Windows operating system settings on the virtual machine. | OSConfiguration |
OsSapConfiguration
Name | Description | Value |
---|---|---|
deployerVmPackages | The url and storage account ID where deployer VM packages are uploaded | DeployerVmPackages |
sapFqdn | The FQDN to set for the SAP system | string |
SAPConfiguration
Name | Description | Value |
---|---|---|
configurationType | Set to 'Deployment' for type DeploymentConfiguration. Set to 'DeploymentWithOSConfig' for type DeploymentWithOSConfiguration. Set to 'Discovery' for type DiscoveryConfiguration. | 'Deployment' 'DeploymentWithOSConfig' 'Discovery' (required) |
SAPInstallWithoutOSConfigSoftwareConfiguration
Name | Description | Value |
---|---|---|
bomUrl | The URL to the SAP Build of Materials(BOM) file. | string (required) |
highAvailabilitySoftwareConfiguration | Gets or sets the HA software configuration. | HighAvailabilitySoftwareConfiguration |
sapBitsStorageAccountId | The SAP bits storage account id. | string (required) |
softwareInstallationType | The SAP software installation type. | 'SAPInstallWithoutOSConfig' (required) |
softwareVersion | The software version to install. | string (required) |
SAPVirtualInstanceIdentity
Name | Description | Value |
---|---|---|
type | The type of managed identity assigned to this resource. | 'None' 'UserAssigned' (required) |
userAssignedIdentities | The identities assigned to this resource by the user. | SAPVirtualInstanceIdentityUserAssignedIdentities |
SAPVirtualInstanceIdentityUserAssignedIdentities
Name | Description | Value |
---|
SAPVirtualInstanceProperties
Name | Description | Value |
---|---|---|
configuration | Defines if the SAP system is being created using Azure Center for SAP solutions (ACSS) or if an existing SAP system is being registered with ACSS | SAPConfiguration (required) |
environment | Defines the environment type - Production/Non Production. | 'NonProd' 'Prod' (required) |
managedResourceGroupConfiguration | Managed resource group configuration | ManagedRGConfiguration |
managedResourcesNetworkAccessType | Specifies the network access configuration for the resources that will be deployed in the Managed Resource Group. The options to choose from are Public and Private. If 'Private' is chosen, the Storage Account service tag should be enabled on the subnets in which the SAP VMs exist. This is required for establishing connectivity between VM extensions and the managed resource group storage account. This setting is currently applicable only to Storage Account. Learn more here https://go.microsoft.com/fwlink/?linkid=2247228 | 'Private' 'Public' |
sapProduct | Defines the SAP Product type. | 'ECC' 'Other' 'S4HANA' (required) |
ServiceInitiatedSoftwareConfiguration
Name | Description | Value |
---|---|---|
bomUrl | The URL to the SAP Build of Materials(BOM) file. | string (required) |
highAvailabilitySoftwareConfiguration | Gets or sets the HA software configuration. | HighAvailabilitySoftwareConfiguration |
sapBitsStorageAccountId | The SAP bits storage account id. | string (required) |
sapFqdn | The FQDN to set for the SAP system during install. | string (required) |
softwareInstallationType | The SAP software installation type. | 'ServiceInitiated' (required) |
softwareVersion | The software version to install. | string (required) |
sshPrivateKey | The SSH private key. | string Constraints: Sensitive value. Pass in as a secure parameter. (required) |
SharedStorageResourceNames
Name | Description | Value |
---|---|---|
sharedStorageAccountName | The full name of the shared storage account. If it is not provided, it will be defaulted to {SID}nfs{guid of 15 chars}. | string |
sharedStorageAccountPrivateEndPointName | The full name of private end point for the shared storage account. If it is not provided, it will be defaulted to {storageAccountName}_pe | string |
SingleServerConfiguration
Name | Description | Value |
---|---|---|
customResourceNames | The set of custom names to be used for underlying azure resources that are part of the SAP system. | SingleServerCustomResourceNames |
databaseType | The database type. | 'DB2' 'HANA' |
dbDiskConfiguration | Gets or sets the disk configuration. | DiskConfiguration |
deploymentType | The SAP deployment type. Eg: SingleServer/ThreeTier. | 'SingleServer' (required) |
networkConfiguration | Network configuration for the server | NetworkConfiguration |
subnetId | The subnet id. | string (required) |
virtualMachineConfiguration | Gets or sets the virtual machine configuration. | VirtualMachineConfiguration (required) |
SingleServerCustomResourceNames
Name | Description | Value |
---|---|---|
namingPatternType | Set to 'FullResourceName' for type SingleServerFullResourceNames. | 'FullResourceName' (required) |
SingleServerFullResourceNames
Name | Description | Value |
---|---|---|
namingPatternType | The naming pattern type. | 'FullResourceName' (required) |
virtualMachine | The resource names object for virtual machine and related resources. | VirtualMachineResourceNames |
SkipFileShareConfiguration
Name | Description | Value |
---|---|---|
configurationType | The type of file share config, eg: Mount/CreateAndMount/Skip. | 'Skip' (required) |
SoftwareConfiguration
Name | Description | Value |
---|---|---|
softwareInstallationType | Set to 'External' for type ExternalInstallationSoftwareConfiguration. Set to 'SAPInstallWithoutOSConfig' for type SAPInstallWithoutOSConfigSoftwareConfiguration. Set to 'ServiceInitiated' for type ServiceInitiatedSoftwareConfiguration. | 'External' 'SAPInstallWithoutOSConfig' 'ServiceInitiated' (required) |
SshConfiguration
Name | Description | Value |
---|---|---|
publicKeys | The list of SSH public keys used to authenticate with linux based VMs. | SshPublicKey[] |
SshKeyPair
Name | Description | Value |
---|---|---|
privateKey | SSH private key. | string Constraints: Sensitive value. Pass in as a secure parameter. |
publicKey | SSH public key | string |
SshPublicKey
Name | Description | Value |
---|---|---|
keyData | SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see Create SSH keys on Linux and Mac for Linux VMs in Azure. |
string |
StorageConfiguration
Name | Description | Value |
---|---|---|
transportFileShareConfiguration | The properties of the transport directory attached to the VIS. The default for transportFileShareConfiguration is the createAndMount flow if storage configuration is missing. | FileShareConfiguration |
ThreeTierConfiguration
Name | Description | Value |
---|---|---|
applicationServer | The application server configuration. | ApplicationServerConfiguration (required) |
centralServer | The central server configuration. | CentralServerConfiguration (required) |
customResourceNames | The set of custom names to be used for underlying azure resources that are part of the SAP system. | ThreeTierCustomResourceNames |
databaseServer | The database configuration. | DatabaseConfiguration (required) |
deploymentType | The SAP deployment type. Eg: SingleServer/ThreeTier. | 'ThreeTier' (required) |
highAvailabilityConfig | The high availability configuration. | HighAvailabilityConfiguration |
networkConfiguration | Network configuration common to all servers | NetworkConfiguration |
storageConfiguration | The storage configuration. | StorageConfiguration |
ThreeTierCustomResourceNames
Name | Description | Value |
---|---|---|
namingPatternType | Set to 'FullResourceName' for type ThreeTierFullResourceNames. | 'FullResourceName' (required) |
ThreeTierFullResourceNames
Name | Description | Value |
---|---|---|
applicationServer | The full resource names object for application layer resources. The number of entries in this list should be equal to the number VMs to be created for application layer. | ApplicationServerFullResourceNames |
centralServer | The full resource names object for central server layer resources. | CentralServerFullResourceNames |
databaseServer | The full resource names object for database layer resources. The number of entries in this list should be equal to the number VMs to be created for database layer. | DatabaseServerFullResourceNames |
namingPatternType | The pattern type to be used for resource naming. | 'FullResourceName' (required) |
sharedStorage | The resource names object for shared storage. | SharedStorageResourceNames |
TrackedResourceTags
Name | Description | Value |
---|
UserAssignedIdentity
Name | Description | Value |
---|
VirtualMachineConfiguration
Name | Description | Value |
---|---|---|
imageReference | The image reference. | ImageReference (required) |
osProfile | The OS profile. | OSProfile (required) |
vmSize | The virtual machine size. | string (required) |
VirtualMachineResourceNames
Name | Description | Value |
---|---|---|
dataDiskNames | The full resource names for virtual machine data disks. This is a dictionary containing list of names of data disks per volume. Currently supported volumes for database layer are ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os', 'backup']. For application and cs layers, only 'default' volume is supported | VirtualMachineResourceNamesDataDiskNames |
hostName | The full name for virtual-machine's host (computer name). Currently, ACSS only supports host names which are less than or equal to 13 characters long. If this value is not provided, vmName will be used as host name. | string |
networkInterfaces | The list of network interface name objects for the selected virtual machine. Currently, only one network interface is supported per virtual machine. | NetworkInterfaceResourceNames[] |
osDiskName | The full name for OS disk attached to the VM. If this value is not provided, it will be named by ARM as per its default naming standards (prefixed with vm name). There is only one OS disk attached per Virtual Machine. | string |
vmName | The full name for virtual machine. The length of this field can be upto 64 characters. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}vm. In case of HA-AvZone systems, default name will be {SID}{app/ascs/db}z{a/b}vm with an incrementor at the end in case of more than 1 vm per layer. For distributed and HA-AvSet systems, default name will be {SID}{app/ascs/db}vm with an incrementor at the end in case of more than 1 vm per layer. | string |
VirtualMachineResourceNamesDataDiskNames
Name | Description | Value |
---|
WindowsConfiguration
Name | Description | Value |
---|---|---|
osType | The OS Type | 'Windows' (required) |