Skip to content

Latest commit

 

History

History
181 lines (157 loc) · 64.3 KB

json-adjusting-template.md

File metadata and controls

181 lines (157 loc) · 64.3 KB

SAP Automation > V1.0.0 > HANA

Adjusting the Templates

Master Branch's status: Build Status


Table of contents


Adjusting the templates

  1. 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.


  1. 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.