Skip to content

Latest commit

 

History

History

sap-s4hana-bw4hana

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

IBM Cloud Catalog - Power Virtual Server for SAP HANA : 'SAP S/4HANA or SAP BW/4HANA'

Summary

Summary Outcome:

SAP S/4HANA or SAP BW/4HANA installation configuration to IBM PowerVS hosts.

Variation Available on IBM Catalog Requires Schematics Workspace ID Creates PowerVS with VPC landing zone Creates PowerVS HANA Instance Creates PowerVS NW Instances Performs PowerVS OS Config Performs PowerVS SAP Tuning Install SAP software
IBM catalog SAP S/4HANA or BW/4HANA variation ✔️ ✔️ N/A 1 1 ✔️ ✔️ ✔️

Architecture Diagram

sap-s4hana-bw4hana

Overview

  1. Summary Tasks
  2. Before you begin
  3. Notes
  4. Prerequisites
  5. Post Deployment
  6. Storage setup
  7. Ansible roles used
  • Creates a new private subnet for SAP communication for the entire landscape.
  • Creates and configures one PowerVS instance for SAP HANA based on best practices for HANA database.
  • Creates and configures one PowerVS instance for SAP NetWeaver based on best practices, hosting the PAS and ASCS instances.
  • Creates and configures one optional PowerVS instance for sharing SAP files between other system instances.
  • Connects all created PowerVS instances to a proxy server specified by IP address or hostname.
  • Optionally connects all created PowerVS instances to an NTP server and DNS forwarder specified by IP address or hostname.
  • Optionally configures a shared NFS directory on all created PowerVS instances.
  • Supports installation of S/4HANA2023, S/4HANA2022, S/4HANA2021, S/4HANA2020, BW/4HANA2021.
  • Supports installation using Maintenance Planner as well.
  • Optionally installs and configures SAP Monitoring host and dashboard, if monitoring instance was deployed as part of Power Virtual Server with VPC landing zone deployment.

Before you begin

  1. It is required to have an existing IBM Cloud Object Storage (COS) instance. Within the instance, an Object Storage Bucket containing the SAP Software installation media files is required in the correct folder structure as defined here.

  2. This solution requires a schematics workspace id as an input.

Notes

  • Filesystem sizes for HANA data and HANA log are calculated automatically based on the memory size.
  • Custom storage configuration by providing custom volume size, iops(tier0, tier1, tier3, tier5k), counts and mount points is supported.
  • If sharefs instance is enabled, then all filesystems provisioned for sharefs instance will be NFS exported and mounted on all NetWeaver Instances.
  • Do not specify a filesystem /sapmnt explicitly for NetWeaver instance as it is created internally when sharefs instance is not enabled.

Prerequisites

1. IBM Cloud Object Storage service credentials

  1. Recommended to have a COS instance in the same region where the S/4HANA or BW/4HANA deployment is planned, as copying the files onto the LPAR will be faster.
  2. The 'ibmcloud_cos_service_credentials' variable requires a value in JSON format. This can be obtained using the instructions here

2. SAP binaries required for installation and folder structure in IBM Cloud Object Storage bucket

  1. All binaries for SAP HANA database and SAP Solution (S/4HANA or BW/4HANA) must be uploaded to the IBM Cloud Object Storage Instance bucket in IBM Cloud before starting this deployment.
  2. For example the binaries required for SAP S/4HANA 2023 and SAP BW/4HANA 2021 are listed here.
  3. Example folder structure :
S4HANA_2023
|
|_HANA_DB
| |_all IMDB* Files and SAPCAR files (all files similar to listed in point 2 above example file)
|
|_S4HANA_2023
|  |_all files similar to listed in point 2 above example file
|  |maintenance planner stack xml file (optional)
|_Monitoring    <---(optional)
  |_SAPCAR_x86_64
  |_IMDB_SAP_CLIENT_x86_64.SAR

Do not mix the SAP HANA DB binaries, the S/4HANA or BW/4HANA solution binaries and Monitoring binaries otherwise the ansible playbook execution will fail.

  1. If you have a maintenance planner stack XML file, place it under the same folder as S4HANA_2023 and not under the HANA DB directory. Applies to all other versions as well. Mention only the name of this file in 'cos_swpm_mp_stack_file_name'. Leave it empty if you do not have this stack XML file.

  2. The 'ibmcloud_cos_configuration' variable must be set correctly based on the folder structure created.

    cos_region: region of IBM Cloud Object Storage instance bucket. Example: eu-gb

    cos_bucket_name: cos bucket name

    cos_hana_software_path: folder path to SAP HANA db binaries from the root of the bucket. Example from point 3, the value would be: "s4hana2023/HANA_DB"

    cos_solution_software_path: folder path to SAP S/4HANA binaries from the root of the bucket. Example from point 3, the value would be: "s4hana2023/S4HANA_2023"

    cos_monitoring_software_path: folder path to x86_64 SAPCAR and IMDB_CLIENT binaries from the root of the bucket. Example from point 3, the value would be: "s4hana2023/Monitoring"

    cos_swpm_mp_stack_file_name: Stack XML file name. Value must be set to empty '' if not available. If value is provided, then this file must be present in the same path as 'cos_solution_software_path'.

Post Deployment

  1. All the installation logs and Ansible playbook files will be under the directory /root/terraform_files/.
  2. The ansible vault password will be used to encrypt the Ansible playbook file created during deployment. This playbook file will be placed under /root/terraform_files/sap-hana-install.yml on the HANA instance and /root/terraform_files/sap-swpm-install-vars.yml on the NetWeaver Instance.
  3. This file can be decrypted using the same value passed to variable 'ansible_vault_password' during deployment. Use the command ansible-vault decrypt /root/terraform_files/sap-swpm-install-vars.yml and enter the password when prompted.

Storage setup

1. HANA Instance:

Default values:

/hana/shared (size auto calculated based on memory)
/hana/data   (size auto calculated based on memory)
/hana/log    (size auto calculated based on memory)
/usr/sap     50GB

Note: Supports custom storage configuration using provided optional variables.

2. Netweaver Instance:

Default values:

/usr/sap 50GB
/sapmnt  300GB (only if sharefs instance is not provisioned)

Note: Supports custom storage configuration using provided optional variables.

3. Sharefs Instance:

Default values:

/sapmnt    300GB
/usr/trans 50GB

Note: Supports custom storage configuration using provided optional variables.

Ansible roles used

  1. RHEL System Roles: sap_hana_install, sap_swpm, sap_general_preconfigure, sap_hana_preconfigure, sap_netweaver_preconfigure
  2. IBM Role: power_linux_sap

Requirements

Name Version
terraform >= 1.9.0
ibm 1.74.0

Modules

Name Source Version
ansible_monitoring_sap_install_solution ../../../modules/ansible n/a
ansible_sap_install_hana ../../../modules/ansible n/a
ansible_sap_install_solution ../../../modules/ansible n/a
ibmcloud_cos_download_hana_binaries ../../../modules/ibmcloud-cos n/a
ibmcloud_cos_download_monitoring_binaries ../../../modules/ibmcloud-cos n/a
ibmcloud_cos_download_netweaver_binaries ../../../modules/ibmcloud-cos n/a
sap_system ../../../modules/pi-sap-system-type1 n/a

Resources

Name Type
ibm_schematics_output.schematics_output data source
ibm_schematics_workspace.schematics_workspace data source

Inputs

Name Description Type Default Required
ansible_vault_password Vault password to encrypt SAP installation parameters in the OS. For optimal security, set the vault password to 8-16 characters, including a mix of uppercase, lowercase, numbers, and special characters. Avoid non-printable characters. string n/a yes
ibmcloud_api_key IBM Cloud platform API key needed to deploy IAM enabled resources. string n/a yes
ibmcloud_cos_configuration Cloud Object Storage instance containing SAP installation files that will be downloaded to NFS share. 'cos_hana_software_path' must contain only binaries required for HANA DB installation. 'cos_solution_software_path' must contain only binaries required for S/4HANA or BW/4HANA installation and must not contain any IMDB files. 'cos_monitoring_software_path' is optional and must contain x86_64 SAPCAR and SAP HANA client binaries required for configuring monitoring instance. The binaries required for installation can be found here If you have an optional stack xml file (maintenance planner), place it under the 'cos_solution_software_path' directory. Avoid inserting '/' at the beginning for 'cos_hana_software_path', 'cos_solution_software_path' and 'cos_monitoring_software_path'.
object({
cos_region = string
cos_bucket_name = string
cos_hana_software_path = string
cos_solution_software_path = string
cos_monitoring_software_path = optional(string)
cos_swpm_mp_stack_file_name = string
})
{
"cos_bucket_name": "powervs-automation",
"cos_hana_software_path": "HANA_DB/rev78",
"cos_monitoring_software_path": "HANA_CLIENT/x86_64",
"cos_region": "eu-geo",
"cos_solution_software_path": "S4HANA_2023",
"cos_swpm_mp_stack_file_name": ""
}
no
ibmcloud_cos_service_credentials IBM Cloud Object Storage instance service credentials to access the bucket in the instance.json example of service credential string n/a yes
powervs_create_separate_sharefs_instance Deploy separate IBM PowerVS instance as central file system share. All filesystems defined in 'powervs_sharefs_instance_storage_config' variable will be NFS exported and mounted on SAP NetWeaver PowerVS instances if enabled. Optional parameter 'powervs_share_fs_instance' can be configured if enabled. bool n/a yes
powervs_default_sap_images Default Red Hat Linux images to use for PowerVS SAP HANA and SAP NetWeaver instances.
object({
rhel_hana_image = string
rhel_nw_image = string
})
{
"rhel_hana_image": "RHEL9-SP4-SAP",
"rhel_nw_image": "RHEL9-SP4-SAP-NETWEAVER"
}
no
powervs_hana_instance_additional_storage_config Additional File systems to be created and attached to PowerVS SAP HANA instance. 'size' is in GB. 'count' specify over how many storage volumes the file system will be striped. 'tier' specifies the storage tier in PowerVS workspace. 'mount' specifies the target mount point on OS.
list(object({
name = string
size = string
count = string
tier = string
mount = string
pool = optional(string)
}))
[
{
"count": "1",
"mount": "/usr/sap",
"name": "usrsap",
"size": "50",
"tier": "tier3"
}
]
no
powervs_hana_instance_custom_storage_config Custom file systems to be created and attached to PowerVS SAP HANA instance. 'size' is in GB. 'count' specify over how many storage volumes the file system will be striped. 'tier' specifies the storage tier in PowerVS workspace. 'mount' specifies the target mount point on OS.
list(object({
name = string
size = string
count = string
tier = string
mount = string
pool = optional(string)
}))
[
{
"count": "",
"mount": "",
"name": "",
"size": "",
"tier": ""
}
]
no
powervs_hana_instance_name PowerVS SAP HANA instance hostname (non FQDN). Will get the form of <var.prefix>-<var.powervs_hana_instance_name>. Max length of final hostname must be <= 13 characters. string "hana" no
powervs_hana_instance_sap_profile_id PowerVS SAP HANA instance profile to use. Must be one of the supported profiles. See here. File system sizes are automatically calculated. Override automatic calculation by setting values in optional parameter 'powervs_hana_instance_custom_storage_config'. string "ush1-4x256" no
powervs_netweaver_cpu_number Number of CPUs for PowerVS SAP NetWeaver instance. string "3" no
powervs_netweaver_instance_name PowerVS SAP NetWeaver instance hostname (non FQDN). Will get the form of <var.prefix>-<var.powervs_netweaver_instance_name>-. Max length of final hostname must be <= 13 characters. string "nw" no
powervs_netweaver_instance_storage_config File systems to be created and attached to PowerVS SAP NetWeaver instance. 'size' is in GB. 'count' specify over how many storage volumes the file system will be striped. 'tier' specifies the storage tier in PowerVS workspace. 'mount' specifies the target mount point on OS. Do not specify volume for 'sapmnt' as this will be created internally if 'powervs_create_separate_sharefs_instance' is false, else 'sapmnt' will be mounted from sharefs instance.
list(object({
name = string
size = string
count = string
tier = string
mount = string
pool = optional(string)
}))
[
{
"count": "1",
"mount": "/usr/sap",
"name": "usrsap",
"size": "50",
"tier": "tier3"
}
]
no
powervs_netweaver_memory_size Memory size for PowerVS SAP NetWeaver instance. string "32" no
powervs_sap_network_cidr Network range for dedicated SAP network. Used for communication between SAP Application servers with SAP HANA Database. E.g., '10.53.0.0/24' string "10.53.0.0/24" no
powervs_sharefs_instance Share fs instance. This parameter is effective if 'powervs_create_separate_sharefs_instance' is set to true. size' is in GB. 'count' specify over how many storage volumes the file system will be striped. 'tier' specifies the storage tier in PowerVS workspace. 'mount' specifies the target mount point on OS.
object({
name = string
processors = string
memory = string
proc_type = string
storage_config = list(object({
name = string
size = string
count = string
tier = string
mount = string
pool = optional(string)
}))
})
{
"memory": "2",
"name": "share",
"proc_type": "shared",
"processors": "0.5",
"storage_config": [
{
"count": "1",
"mount": "/sapmnt",
"name": "sapmnt",
"size": "300",
"tier": "tier3"
},
{
"count": "1",
"mount": "/usr/trans",
"name": "trans",
"size": "50",
"tier": "tier3"
}
]
}
no
powervs_zone IBM Cloud data center location corresponding to the location used in 'Power Virtual Server with VPC landing zone' pre-requisite deployment. string n/a yes
prefix Unique prefix for resources to be created (e.g., SAP system name). Max length must be less than or equal to 6. string n/a yes
prerequisite_workspace_id IBM Cloud Schematics workspace ID of an existing 'Power Virtual Server with VPC landing zone' catalog solution. If you do not yet have an existing deployment, click here to create one. string n/a yes
sap_domain SAP network domain name. string "sap.com" no
sap_hana_master_password SAP HANA master password. string n/a yes
sap_hana_vars SAP HANA SID and instance number.
object({
sap_hana_install_sid = string
sap_hana_install_number = string
})
{
"sap_hana_install_number": "02",
"sap_hana_install_sid": "HDB"
}
no
sap_monitoring_vars Configuration details for SAP monitoring dashboard. Takes effect only when a monitoring instance was deployed as part of Power Virtual Server with VPC landing zone deployment. If 'config_override' is true, an existing configuration will be overwritten, 'sap_monitoring_nr' Two-digit incremental number starting with 01 up to 99. This is not a existing SAP ID, but a pure virtual number and 'sap_monitoring_solution_name' is a virtual arbitrary short name to recognize SAP System.
object({
config_override = bool
sap_monitoring_nr = string
sap_monitoring_solution_name = string
})
{
"config_override": false,
"sap_monitoring_nr": "01",
"sap_monitoring_solution_name": ""
}
no
sap_solution SAP Solution to be installed on Power Virtual Server. string n/a yes
sap_solution_vars SAP SID, ASCS and PAS instance numbers and service/protectedwebmethods parameters.
object({
sap_swpm_sid = string
sap_swpm_ascs_instance_nr = string
sap_swpm_pas_instance_nr = string
sap_swpm_service_protectedwebmethods = string

})
{
"sap_swpm_ascs_instance_nr": "00",
"sap_swpm_pas_instance_nr": "01",
"sap_swpm_service_protectedwebmethods": "SDEFAULT -GetQueueStatistic -ABAPGetWPTable -EnqGetStatistic -GetProcessList -GetEnvironment -BAPGetSystemWPTable",
"sap_swpm_sid": "S4H"
}
no
sap_swpm_master_password SAP SWPM master password. string n/a yes
software_download_directory Software installation binaries will be downloaded to this directory. string "/software" no
ssh_private_key Private SSH key (RSA format) used to login to IBM PowerVS instances. Should match to uploaded public SSH key referenced by 'ssh_public_key' which was created previously. The key is temporarily stored and deleted. For more information about SSH keys, see SSH keys. string n/a yes

Outputs

Name Description
access_host_or_ip Public IP of Provided Bastion/JumpServer Host.
infrastructure_data PowerVS infrastructure details.
powervs_hana_instance_ips All private IPS of HANA instance.
powervs_hana_instance_management_ip Management IP of HANA Instance.
powervs_lpars_data All private IPS of PowerVS instances and Jump IP to access the host.
powervs_netweaver_instance_ips All private IPs of NetWeaver instance.
powervs_netweaver_instance_management_ip Management IP of NetWeaver instance.
powervs_sharefs_instance_ips Private IPs of the Share FS instance.
sap_hana_vars SAP HANA system details.
sap_monitoring_vars SAP Monitoring Instance details.
sap_solution_vars SAP NetWeaver system details.