-
In the Workspace directory, Create the JSON template.
-
For complete JSON samples, please check one of the following:
-
template which is used for all PRs.
cp <automation_root>/sap-hana/templates/tempGen/template.json .
-
template-daily which is used in our daily test.
cp <automation_root>/sap-hana/templates/tempGen/template-daily.json .
-
-
sap-hana/deploy/template_samples
also contains some examples, but those are not actively tested.
-
- Use a text editor to edit the JSON configuration file. Full version of supported JSON configuration see below:
- Fields to watch for if using a template
-
infrastructure.region
-
infrastructure.resource_group.name
-
databases.os
"os": { "publisher": "SUSE", "offer": "SLES-SAP", "sku": "12-SP4", "version": "latest" },
-
software.storage_account_sapbits.storage_account_name
-
software.storage_account_sapbits.arm_id
-
software.downloader.credentials.sap_user
-
software.downloader.credentials.sap_password
-
Section | Key | Type | Explain |
---|---|---|---|
infrastructure | region | string | (Required) The location where the resource group should be created. For a list of all Azure locations, please consult this link or run az account list-locations --output table. |
boot_diagnostics _account_name | string | (Optional) Account name for for boot diagonstics account. If not provided, will be "sabootdiag" with 4 bytes random_id. | |
infrastructure.resource_group | is_existing | bool | (Optional) Set to true to use existing resource group, otherwise new resource group will be created. Default false. |
name | string | (Required) The name of the resource group. Must be unique on your Azure subscription. | |
arm_id | string | (Optional) Required if is_exsiting set to true. | |
infrastructure.vnets.management | is_existing | bool | (Optional) Set to true to use existing vnets for management. Default false. |
arm_id | string | (Optional) Required if is_exsiting set to true. | |
name | string | (Required) The name of the virtual network for management vnet. | |
address_space | list | (Required) The address space that is used by this virtual network. You can supply more than one address space. | |
infrastructure.vnets. management.subnet_mgmt | is_existing | bool | (Optional) Set to true to use existing management vnet. Default false. |
arm_id | string | (Optional) Required if is_exsiting set to true. | |
name | string | (Required) The name of the subnet for management vnet. | |
prefix | string | (Required) The address prefix to use for the subnet. | |
infrastructure.vnets. management.subnet_mgmt.nsg | is_existing | bool | (Optional) Set to true to use existing network security group. Default false. |
arm_id | string | (Optional) Required if is_exsiting set to true. | |
name | string | (Required) The name of the subnet for nsg used for management subnet. | |
allowed_ips | list | (Optional) List of source address prefixes. | |
infrastructure.vnets.sap | is_existing | bool | (Optional) Set to true to use existing sap vnet. Default false. |
arm_id | string | (Optional) Required if is_exsiting set to true. | |
name | string | (Required) The name of the virtual network for sap vnet. | |
address_space | list | (Required) The address space that is used by this virtual network. You can supply more than one address space. | |
infrastructure.vnets. sap.subnet_admin | is_existing | bool | (Optional) Set to true to use existing sap vnet. Default false. |
arm_id | string | (Optional) Required if is_exsiting set to true. | |
name | string | (Required) The name of the subnet for sap vnet. | |
prefix | string | (Required) The address prefix to use for the subnet. | |
infrastructure.vnets. sap.subnet_admin.nsg | is_existing | bool | (Optional) Set to true to use existing network security group. Default false. |
arm_id | string | (Optional) Required if is_exsiting set to true. | |
name | string | (Required) The name of the subnet for nsg used for sap admin subnet. | |
infrastructure.vnets. sap.subnet_db | is_existing | bool | (Optional) Set to true to use existing sap vnet. Default false. |
arm_id | string | (Optional) Required if is_exsiting set to true. | |
name | string | (Required) The name of the subnet for sap vnet. | |
prefix | string | (Required) The address prefix to use for the subnet. | |
infrastructure.vnets. sap.subnet_db.nsg | is_existing | bool | (Optional) Set to true to use existing network security group. Default false. |
arm_id | string | (Optional) Required if is_exsiting set to true. | |
name | string | (Required) The name of the subnet for nsg used for sap admin subnet. | |
jumpboxes.windows | name | string | (Required) Specifies the name of the Virtual Machine. |
destroy_after_deploy | bool | (Optional) The jumpbox should be destroyed after the deployment if set to true. | |
size | string | (Required) Specifies the size of the Virtual Machine. | |
private_ip_address | string | (Optional) Static IP Address for jumpbox VM. Will be assigned according to its order under jumpboxes if left empty. | |
components | list | (Optional) List of components to be installed on jumpbox VM, options: [hana_studio, hana_client] | |
jumpboxes.windows.*.os | publisher | string | (Required) Specifies the publisher of the image used to create the virtual machine. |
offer | string | (Required) Specifies the offer of the image used to create the virtual machine. | |
sku | string | (Required) Specifies the SKU of the image used to create the virtual machine. | |
jumpboxes.windows.*.authentication | type | string | (Required) Authentication method for windows jumpbox VM. Options: [password] |
username | string | (Required) Specifies the name of the local administrator account. | |
password | string | (Required) The password associated with the local administrator account. | |
jumpboxes.linux | name | string | (Required) Specifies the name of the Virtual Machine. |
destroy_after_deploy | bool | (Optional) The jumpbox should be destroyed after the deployment if set to true. | |
size | string | (Required) Specifies the size of the Virtual Machine. | |
private_ip_address | string | (Optional) Static IP Address for jumpbox VM. Will be assigned according to its order under jumpboxes if left empty. | |
components | list | (Optional) List of components to be installed on jumpbox VM, options: [hana_studio, hana_client]. | |
jumpboxes.linux.*.os | publisher | string | (Required) Specifies the publisher of the image used to create the virtual machine. |
offer | string | (Required) Specifies the offer of the image used to create the virtual machine. | |
sku | string | (Required) Specifies the SKU of the image used to create the virtual machine. | |
jumpboxes.linux.*.authentication | type | string | (Required) Authentication method for windows jumpbox VM. Options: [key] |
username | string | (Required) Specifies the name of the local administrator account. | |
databases | platform | string | (Required) Type of database, options: [HANA]. |
db_version | string | (Required) Revision of database. We currently only support the HANA versions from HANA Database 1.0/2.0 Platform Media. | |
filesystem | string | (Requred) Filesystem type, options: [XFS]. | |
db_mode | string | (Optional) HANA database mode. options: single_container, multiple_containers. | |
high_availability | bool | (Reserved for HA pair scenario) | |
components | list | (Required) List of components to be installed on HANA VM, options: [hana_database, hana_studio, hana_client, xs, shine]. xs component is a list, options: [all, none, xsac_alm_pi_ui, xsac_file_proc, xsac_hana_ea_d, xsac_hrtt, xsac_mess_srv, xsac_portal_serv, xsac_sap_web_ide, xsac_services, xsac_ui5_fesv6, xsac_ui5_sb, xsac_xsa_cockpit]. The please include all required xs components. | |
databases.*.os | publisher | string | (Required) Specifies the publisher of the image used to create the virtual machine. |
offer | string | (Required) Specifies the offer of the image used to create the virtual machine. | |
sku | string | (Required) Specifies the SKU of the image used to create the virtual machine.1 | |
databases.*.authentication | type | string | (Required) Authentication method for HANA database VM. Options: [key]. |
username | string | (Required) Specifies the name of the local administrator account. | |
databases.*.instance | sid | string | (Required) SID for SAP instance (For reserved SID, check SAP Note 1979280). |
instance_number | string | (Required) Instance number for SAP instance. | |
databases.*.credentials | db_systemdb_password | string | (Required) SYSTEM user password for SYSTEMDB. |
os_sidadm_password | string | (Required) sidadm user password. | |
os_sapadm_password | string | (Required) sapadm user password. | |
xsa_admin_password | string | (Optional) XSA_ADMIN user password if xs is in databases.*.components. | |
cockpit_admin_password | string | (Optional) COCKPIT_ADMIN user password if xsac_xsa_cockpit is in databases.*.components. | |
databases.*.xsa | routing | string | (Optional) Routing method. Required if xs is in databases.*.components. |
databases..nodes. | name | string | (Required) Specifies the name of the Virtual Machine. |
admin_nic_ips | list | (Optional) List of up to 2 static IP Addresses of HANA database VM for traffic from jumpboxes (1 IP for single HANA deployment and 2 IPs for HA pair). Will be assigned according to its order under jumpboxes if left empty. | |
db_nic_ips | list | (Optional) List of up to 2 static IP Addresses of HANA database VM for inter nodes traffic (1 IP for single HANA deployment and 2 IPs for HA pair). Will be assigned according to its order under jumpboxes if left empty. | |
role | string | (Reserved for scale-out scenario, options:[worker, standby]) | |
databases.*.loadbalancer | frontend_ip | string | (Optional) Specifies the IP Address to use for the Loadbalancer Frontend IP Configuration. |
application | sid | string | (Required) The SID to use when deploying Application infrastructure. |
enable_deployment | bool | (Required) Controls deployment of Application module, containing SCS and Application VMs. Set to true to deploy, set to false to omit. | |
scs_instance_number | string | (Required) Instance number for the SCS instance. | |
ers_instance_number | string | (Required) Instance number for the ERS instance. | |
scs_high_availability | bool | (Required) Set to true to deploy 2 VMs for an SCS/ERS high availability pair. | |
application_server_count | int | (Required) Number of Application Servers to deploy. | |
webdispatcher_server_count | int | (Required) Number of Web Dispatcher Servers to deploy. | |
vm_sizing | string | (Required) Determines the size of VM and disk to use, see deploy/app_sizes.json, options: [Default] | |
app_nic_ips | list | (Optional) List of IP addresses to assign to Application VMs when using an existing Application subnet. If used, number of IPs supplied should match application_server_count. | |
scs_lb_ips | list | (Optional) List of IP addresses to assign to SCS Load Balancer Frontend IPs when using an existing Application subnet. If used 2 ips must be supplied for both SA and HA deployments, the first IP is used for SCS load balancing, and the second IP is for ERS load balancing. | |
scs_nic_ips | list | (Optional) List of IP addresses to assign to SCS VMs when using an existing Application subnet. If used, supply 1 IP for Stand Alone deployments, and 2 IPs for High Availability deployments. | |
web_lb_ips | list | (Optional) List of IP addresses to assign to Web Dispatcher Load Balancer Frontend IPs when using an existing Application subnet. If used, only the first IP address supplied is assigned to the Load Balancer. | |
web_nic_ips | list | (Optional) List of IP addresses to assign to Web Dispatcher VMs when using an existing Application subnet. If used, number of IPs supplied should match webdispatcher_server_count. | |
application.authentication | type | string | (Required) Authentication method for HANA database VM. Options: [key]. |
username | string | (Required) Specifies the name of the local administrator account. | |
application.os | publisher | string | (Required) Specifies the publisher of the image used to create the virtual machine. |
offer | string | (Required) Specifies the offer of the image used to create the virtual machine. | |
sku | string | (Required) Specifies the SKU of the image used to create the virtual machine.1 | |
version | string | (Optional) Defaults to "latest", Specifies the version of the image used to create the virtual machine. | |
software.storage_account | use_existing | bool | (Optional) Set to true to use existing storage account, otherwise new storage account will be created. Default false. |
storage_account_name | string | (Required) Specifies the name of the storage account. This must be unique across the entire Azure service, not just within the resource group. | |
storage_access_key | string | (Optional) The primary access key for the storage account. It is required if is_existing set to true. | |
account_tier | string | (Required) Defines the Tier to use for this storage account. Valid options are Standard and Premium. For FileStorage accounts only Premium is valid | |
account_replication_type | string | (Required) Defines the type of replication to use for this storage account. Valid options are LRS, GRS, RAGRS and ZRS. | |
account_kind | string | (Optional) Defines the Kind of account. Valid options are BlobStorage, BlockBlobStorage, FileStorage, Storage and StorageV2. Defaults to Storage. | |
blob_container_name | string | (Required) The name of the Container which should be created within the Storage Account. | |
file_share_name | string | (Required) The name of the share. Must be unique within the storage account where the share is located. | |
container_access_type | string | (Optional) The Access Level configured for this Container. Possible values are blob, container or private. Defaults to private. | |
software.smp_cridential | sap_user | string | (Required) The username for SAP service market place |
sap_password | string | (Required) The password for SAP service market place | |
sshkey | path_to_private_key | string | (Optional) Path to private key. Reuiqred if key is used as Authentication.type for any virtual machine. All deployed virtual machine will share the same SSH key pair. Only PEM file extension is accepted due to limitation from Terrafrom. |
path_to_public_key | string | (Optional) Path to public key. Reuiqred if key is used as Authentication.type for any virtual machine. All deployed virtual machine will share the same SSH key pair. | |
options | enable_secure_transfer | bool | (Optional) Default true. If se to true, secure transfer will be enabled. |
ansible_execution | bool | (Optional) Default true. If set to true, Ansible playbook will be executed from jumpbox from terraform deployment. | |
enable_prometheus | bool | (Optional) Default true. If set to true, Ansible playbook will enable prometheus2 on the VM. |
1: Current Ansible playbook suppports images for SAP applications, e.g. SLES-SAP, RHEL-SAP-HANA.
And we only include OS configuration for:
- SLES 12
- RHEL 7
2: Enabling promethus will enrich the set of telemetry even more when you monitor your Hana Instance using Azure Monitor for SAP Solutions
If you use BYOS image, the Ansible playbook will throw error during the OS configuration.