IBM Cloud Docs
在 IBM Cloud® VPC 上部署 SAP 工作负载 S/4HANA HA 部署 (Terraform 和 Ansible )

在 IBM Cloud® VPC 上部署 SAP 工作负载 S/4HANA HA 部署 (Terraform 和 Ansible )

IBM Cloud® 上的 Terraform 可对 IBM Cloud 虚拟私有云 (VPC) 基础设施资源进行可预测和一致的调配,这样您就可以快速构建复杂的云环境。IBM Cloud VPC 基础设施由 SAP 认证的硬件组成,这些硬件使用英特尔® 至强 CPU 和其他英特尔® 技术。

Terraform 脚本用于在堡垒服务器上的 HA 单区和多区架构中创建一个 VPC 和 2 个集群层,一个用于 SAP S/4HANA,另一个用于 SAP HANA 内存数据库。 创建堡垒服务器是所有 IBM SAP VPC 自动解决方案的前提条件。 自动化脚本使用您提供的 VPC 信息,然后调用 Ansible playbook 在指定的 VPC 上创建 SAP 架构。

您有三种部署方法可供选择:

  • Terraform 脚本通过 CLI 在 bastion 服务器上运行。
  • 目录磁砖用户界面来自 IBM Cloud 目录。
  • IBM Cloud Schematics 用户界面,可从云仪表板上的菜单访问。

SAP 已实施的解决方案

SAP S/4HANA 是 SAP ERP 软件产品系列中的一个 ERP 系统。 该软件基于创新的 SAP HANA 数据库技术,于 2015 年作为第四代产品面世。 用户可以选择 SAP S/4HANA 云和内部部署解决方案。

企业资源规划系统用于以需求为导向的业务资源规划。 它用于控制流程,并以有意义的方式将各部门和职能领域联系起来。 单个模块包括会计、销售、生产和营销应用程序。 企业资源规划软件还可以完成客户或供应链管理中更为复杂的任务。 作为核心产品 SAP ECC 的继任者,SAP S/4HANA 被视为新一代的智能 ERP 系统。 在现代技术的帮助下,软件即服务( SaaS )版本旨在帮助企业实现流程标准化和数字化飞跃。

虽然以前的 SAP ERP 解决方案支持最常见的数据库,但 SAP S/4HANA 只使用 SAP 开发的 SAP HANA 内存数据库。 这种内存数据库可为用户带来最大的技术优势,并使他们从更高的性能中受益。 S/4HANA 中的 "S "代表“简单”,而 "4 "指的是生成顺序。 与大多数公司仍在使用的 SAP 核心产品 SAP ECC 相比,SAP S/4HANA 提供了许多创新功能,从根本上彻底改变了系统格局。 由于 SAP 计划到 2027 年停止对其现有 ERP 解决方案的主流维护,许多 SAP ECC 用户已经在考虑迁移到 SAP HA SZ 或 MZ S/4HANA。

创造了什么

脚本分两个阶段运行。 第一阶段是在部署 bastion VSI 时创建的现有 VPC 中自动创建用于 VPC 配置流程的资源。 第二阶段是在分布式环境中创建 SAP 架构。

  1. S/4HANA 单区 HA 架构

    • SAP HA SZ 作为单一区域 VPC 的独立 VSI 上的应用程序群集服务器 S/4HANA
    • SAP HANA 群集 DB 位于 VSI 类型的专用服务器上,作为单区 VPC
  2. S/4HANA 多区 HA 架构

    • SAP HA MZ 作为多区 VPC 的独立 VSI 上的应用程序群集服务器 S/4HANA
    • SAP HANA 作为多区 VPC,在 VSI 类型的专用服务器上运行群集 DB

建议在部署此解决方案时阅读 readme 文件中的指南。

有关此架构的更多信息,请参阅 SAP NetWeaver 7.x 与 SAP HANA IBM Cloud VPC

在第一阶段,将在 VPC 中配置以下资源:

  • 1 个电源放置组,用于此解决方案创建的所有 4 台虚拟机
  • 4 个 VSI,带子网和安全组配置
  • 3 用于 HANA DB 和 SAP ASCS/ERS 的应用程序负载平衡器
  • 1 用于将 ALB FQDN 映射到 SAP ASCS/ERS 和 HANA 虚拟主机名的 VPC DNS 服务
  • 7 个 VPC 文件共享

在第二阶段,调用 Ansible Playbooks,并为专用 VSI SAP App VSI box 和专用 SAP HANA VSI box 安装 SAP 高可用性架构。 在 pacemaker 集群上部署的 SAP 架构是 SAP S/4HANA 版本。 HA 专用 SAP HANA 2.0 VSI 作为分布式部署模式发布。 有关此架构的更多信息,请参阅 使用 Terraform 和 Ansible 在 IBM Cloud VPC 上自动运行 SAP HANA 独立虚拟服务器实例

SAP S/4HANA 单区或多区架构的高可用性系统

图 1。 SAP 用于 应用程序群集节点 PAS (Active) 和 AAS (Active) 部署(单区架构)的 HA 用于 应用程序群集节点 PAS (Active) 和 AAS (Active) 部署(单区架构)的 HA 用于 应用程序群集节点 PAS (Active) 和 AAS (Active) 部署(单区架构)的 HA SAP Schematics
SAP SAP Schematics

图 2。 SAP 用于 HANA DB 实例群集节点主(主动)和辅助(被动)(单区架构)的 HA 用于 HANA DB 实例群集节点主(主动)和辅助(被动)(单区架构)的 HA 用于 HANA DB 实例群集节点主(主动)和辅助(被动)(单区架构)的 HA
SAP

在最基本的层面上,主动-被动配置中的标准 HA HANA 集群有两个节点:一个是主节点,另一个是备用节点。 主节点主动为活动 SAP 实例(PAS 和 AAS)提供服务,而备用节点则等待在必要时加入。

群集设置了虚拟主机 IP。 主机名通过 DNS 映射到 HANA ALB 的 FQDN,这与 SAP ASCS 和 ERS 实例相同。 应用程序实例(PAS 和 AAS)是 SAP 配置文件中用于调用特定组件的详细信息。 群集会将该虚拟 IP 分配给活动节点,并使用心跳监控器来确认组件的可用性。 如果主节点停止响应,就会触发自动故障切换机制,调用备用节点成为主节点。 ALB 会检测到这一变化,将流量重定向到新的活动节点,并为其分配虚拟 IP,从而恢复组件的可用性。 故障节点修复后,将作为备用节点联机。

Terraform 脚本

用于部署的 Terraform 脚本包括

  • 一个 Power Placement 组,包括此解决方案中涉及的所有四个虚拟机。
  • 现有 VPC 中的四个 VSI,具有子网和安全组配置。 VSI 范围:两个用于 HANA 数据库群集实例,两个用于 SAP 应用群集。
  • 配置三个应用程序负载平衡器,如 HANA DB 和 SAP ASCS/ERS。
  • 配置一个 VPC DNS 服务,用于将 ALB FQDN 映射到 SAP ASCS/ERS 和 HANA 虚拟主机名。
  • 为 VPC 配置七个文件共享。

用于部署的 Ansible 脚本包括

  • SAP 应用程序的操作系统要求安装和配置。
  • 群集组件安装
  • Ansible SAP 应用程序群集配置和 群集配置的脚本。SAP HANA
  • HANA 安装
  • HANA 数据库备份
  • HANA 系统副本配置
  • 安装 ASCS 和 ERS 实例
  • DB 负载
  • 安装主应用服务器和额外应用服务器

对于 CLI 部署,Ansible 由 Terraform 启动,两者必须在同一主机(bastion 服务器)上可用。

SAP 套件

您有责任将必要的 SAP 和 DB 工具包下载到部署服务器(堡垒服务器)。 在自动化部署过程中,所有文件存档都由 Ansible 解压缩。 更多信息,请参阅自述文件。

Terraform 部署概述

可从 bastion 服务器(部署服务器)通过 CLI 运行 Terraform 脚本来执行 GitHub 资源库 中的自动化脚本。

编辑输入参数文件 input.auto.tfvars,修改变量,使之与解决方案相匹配:

  • VPC - 现有 VPC 名称
  • 区域 - VSI 的区域
  • DOMAIN_NAME - 外界无法访问的专用域
  • ZONE_1- DB_HOSTNAME_1 和 APP_HOSTNAME_1 VSI 的可用性区域
  • ZONE_2- DB_HOSTNAME_2 和 APP_HOSTNAME_2VSIs
  • SECURITY_GROUP - 现有安全组,之前由用户在同一 VPC 中创建。
  • SUBNET_1- 同一 VPC 中现有子网的名称 ZONE_1,在此创建 DB_HOSTNAME_1 和 APP_HOSTNAME_1 VSI。
  • SUBNET_2- 同一 VPC 中现有子网的名称 ZONE_2,在此创建 DB_HOSTNAME_2 和 APP_HOSTNAME_2 VSI。
  • RESOURCE_GROUP - 用户先前创建的现有资源组。
  • SSH_KEYS - 允许 SSH 作为 root 进入 VSI 的 SSH 密钥 UUID 列表。
  • ID_RSA_FILE_PATH - id_rsa 私钥文件路径,格式为 OpenSSH,权限为 0600
  • APP_HOSTNAME_1/ APP_HOSTNAME_2/DB_HOSTNAME_1/ DB_HOSTNAME_2- 输入主机名,最多 12 个字符。 更多信息,请参阅自述文件。
  • DB_PROFILE/APP_PROFILE - HANA/APP VSI 使用的实例配置文件
  • DB_IMAGE/APP_IMAGE - DB/APP VSI 的操作系统映像

Schematics 部署概览

Schematics IBM Cloud 上使用用户界面。 输入 GitHub 存储库的 SAP S/4HANA 单区上的高可用性 Schematics。

使用 Schematics 界面运行脚本时,您可以

  • 输入工作区信息。
  • 输入所用 Terraform 脚本的 GitHub 路径。
  • 修改 Schematics 界面中的参数。

瓦片目录部署

使用目录磁贴进行部署时,您可以

  • 从目录中选择 SAP S/4HANA 单区高可用性磁贴。
  • 输入您的工作区信息。 目录磁贴可创建 Schematics 工作区。
  • 修改 bastion 服务器参数、个人凭据信息和解决方案的其他特定参数。

支持 - Terraform 和 Schematics

IBM 不对这些材料提供任何担保,也不提供任何服务或技术支持。 建议您在实际系统中使用从本网站下载的任何资料之前,先仔细检查这些资料。

虽然此处提供的材料未得到 IBM 服务组织的支持,但开发人员欢迎您提出意见,并保留随时修改、重新改编或删除材料的权利。 要报告问题或提供建议或意见,请打开 GitHub 问题。

支持 - 磁砖目录

目录磁贴产品支持 IBM Cloud。 更多信息,请参阅 从 IBM Cloud 或 SAP 获取帮助和支持。

如果发现 SAP 软件存在客户问题,SAP 支持部门将为客户提供帮助。 遵循 SAP Note 90835 的建议,其中介绍了 SAP 事件升级程序。 此 SAP Note(及其他 Note)位于 https://support.sap.com/en/index.html

准备工作

在单区或多区上部署 SAP S/4HANA High Availability 之前:

  • 该部署的自动化需要 IBM Cloud File Storage for VPC 才能成功完成。IBM Cloud File Storage for VPC,在法兰克福、伦敦、达拉斯、多伦多、华盛顿、圣保罗、悉尼、大阪和东京地区,经特别批准的客户可预览该服务。 请联系 IBM 销售代表获取访问权限。 更多信息,请参见 IBM Cloud File Storage for VPC.
  • 设置账户以访问 VPC。 确保您的账户已 升级为付费账户
  • 如果还没有,请创建一个堡垒服务器来存储 SAP 套件。 更多信息,请参阅 自动化 SAP bastion 服务器 - SAP 媒体存储库
  • 从 SAP Portal 将 SAP 工具包下载到部署服务器。 记下下载的位置。 Ansible 解压文件。 如需了解更多信息,请参阅 GitHub 仓库中的 Readme 文件和目录磁贴的“关于”页面。
  • 创建或检索 IBM Cloud API 密钥。 API 密钥用于与 IBM Cloud 平台进行身份验证,并确定您使用 IBM Cloud 服务的权限。
  • 创建或获取 SSH 密钥 ID。 您需要的是 SSH 密钥的 40 位 UUID,而不是 SSH 密钥名称。
  • (可选 - 目录磁贴)使用 Secrets Manager.

使用 Terraform 和 bastion 服务器 CLI 部署 SAP HA S/4HANA

使用这些步骤配置 IBM Cloud Provider 插件,并使用 Terraform 在现有 VPC 上安装 SAP HA SZ 或 MZ S/4HANA。 完成脚本最多需要 4 个小时。 S/4HANA 支持的版本有 2020、2021、2022 和 2023。 如需了解更多信息,请参阅 自述文件,了解推荐的工具包版本。

  1. 访问 bastion 服务器 CLI。

  2. https://github.com/IBM-Cloud/sap-s4hana-hacd 中的解决方案资源库克隆到 sap-s4hana-ha 文件夹。

    git clone https://github.com/IBM-Cloud/sap-s4hana-ha.git
    
    cd sap-s4hana-ha
    
    
  3. 指定您的 VPC。 修改 input.auto.tfvars 文件,指定现有 VPC、区域、VPC 和组件名称、配置文件和映像的信息。 该文件需要 40 位 SSH 密钥 ID。 第二个 SSH 密钥是可选的。 有关配置文件的更多选项,请参阅 实例配置文件。 有关图像的更多选项,请参阅 图像。 有关变量的说明,请参阅 自述文件

    ##########################################################
    # General VPC variables:
    ##########################################################
    
    REGION = ""
    # The cloud region where to deploy the solution. Supported regions: https://cloud.ibm.com/docs/containers?topic=containers-regions-and-zones#zones-vpc
    # Example: REGION = "eu-de"
    
    DOMAIN_NAME = "ha.mzexample.com"
    # The DOMAIN_NAME variable should contain at least one "." as a separator. It is a private domain and it is not reacheable to and from the outside world.
    # The DOMAIN_NAME variable could be like a subdomain name. Ex.: staging.example.com
    # Domain names can only use letters, numbers, and hyphens.
    # Hyphens cannot be used at the beginning or end of the domain name.
    # You can't use a domain name that is already in use.
    # Domain names are not case sensitive.
    
    ASCS_VIRT_HOSTNAME = "sapascs"
    # ASCS Virtual Hostname
    # Default value: sapascs
    # When the default value is used, the virtual hostname will automatically be changed based on <SAP_SID> to "sap<sap_sid>ascs"
    
    ERS_VIRT_HOSTNAME = "sapers"
    # ERS Virtual Hostname
    # Default value: sapers
    # When the default value is used, the virtual hostname will automatically be changed based on <SAP_SID> to "sap<sap_sid>ers"
    
    HANA_VIRT_HOSTNAME = "dbhana"
    # Hana Virtual Hostname
    # Default value: dbhana
    # When the default value is used, the virtual hostname will automatically be changed based on <SAP_SID> to "db<hana_sid>hana"
    
    VPC = ""
    # The name of an EXISTING VPC. Must be in the same region as the solution to be deployed. The list of VPCs is available here: https://cloud.ibm.com/infrastructure/network/vpcs.
    # Example: VPC = "ic4sap"
    
    ZONE_1 = ""
    # Availability zone for DB_HOSTNAME_1 and APP_HOSTNAME_1 VSIs, in the same VPC. Supported zones: https://cloud.ibm.com/docs/containers?topic=containers-regions-and-zones#zones-vpc
    # Example: ZONE = "eu-de-1"
    
    SUBNET_1 = ""
    # The name of an EXISTING Subnet, in the same VPC, ZONE_1, where DB_HOSTNAME_1 and APP_HOSTNAME_1 VSIs will be created. The list of Subnets is available here: https://cloud.ibm.com/infrastructure/network/subnets
    # Example: SUBNET = "ic4sap-subnet_1"
    
    ZONE_2 = ""
    # Availability zone for DB_HOSTNAME_2 and APP_HOSTNAME_2 VSIs, in the same VPC. Supported zones: https://cloud.ibm.com/docs/containers?topic=containers-regions-and-zones#zones-vpc.
    # If the same value as for ZONE_1 is used, and the value for SUBNET_1 is the same with the value for SUBNET_2, the deployment will be done in a single zone. If the values for ZONE_1, SUBNET_1 are different than the ones for ZONE_2, SUBNET_2 then an SAP Multizone deployment will be done.
    # Example: ZONE = "eu-de-2"
    
    SUBNET_2 = ""
    # The name of an EXISTING Subnet, in the same VPC, ZONE_2, where DB_HOSTNAME_2 and APP_HOSTNAME_2 VSIs will be created. The list of Subnets is available here: https://cloud.ibm.com/infrastructure/network/subnets.
    # If the same value as for SUBNET_1 is used, and the value for ZONE_1 is the same with the value for ZONE_2, the deployment will be done in a single zone. If the values for ZONE_1, SUBNET_1 are different than the ones for ZONE_2, SUBNET_2 then it an SAP Multizone deployment will be done.
    # Example: SUBNET = "ic4sap-subnet_2"
    
    SECURITY_GROUP = ""
    # The name of an EXISTING Security group for the same VPC. It can be found at the end of the Bastion Server deployment log, in \"Outputs\", before \"Command finished successfully\" message. The list of Security Groups is available here: https://cloud.ibm.com/infrastructure/network/securityGroups.
    # Example: SECURITY_GROUP = "ic4sap-securitygroup"
    
    RESOURCE_GROUP = ""
    # EXISTING Resource group, previously created by the user. The list of available Resource Groups: https://cloud.ibm.com/account/resource-groups
    # Example: RESOURCE_GROUP = "wes-automation"
    
    SSH_KEYS = [""]
    # List of SSH Keys UUIDs that are allowed to connect via SSH, as root, to the VSI. Can contain one or more IDs. The list of SSH Keys is available here: https://cloud.ibm.com/infrastructure/compute/sshKeys.
    # Example: SSH_KEYS = ["r010-8f72b994-c17f-4500-af8f-d05680374t3c", "r011-8f72v884-c17f-4500-af8f-d05900374t3c"]
    
    ID_RSA_FILE_PATH = "ansible/id_rsa"
    # The path to an existing id_rsa private key file, with 0600 permissions. The private key must be in OpenSSH format.
    # This private key is used only during the provisioning and it is recommended to be changed after the SAP deployment.
    # It must contain the relative or absoute path from your Bastion.
    # Examples: "ansible/id_rsa_s4hana_ha" , "~/.ssh/id_rsa_s4hana_ha" , "/root/.ssh/id_rsa".
    
    ##########################################################
    # File Shares variables:
    ##########################################################
    
    SHARE_PROFILE = "dp2"
    # The Storage Profile for the File Share
    # More details on https://cloud.ibm.com/docs/vpc?topic=vpc-file-storage-profiles&interface=ui#dp2-profile."
    
    USRSAP_AS1      = "20"
    USRSAP_AS2      = "20"
    USRSAP_SAPASCS  = "20"
    USRSAP_SAPERS   = "20"
    USRSAP_SAPMNT   = "20"
    USRSAP_SAPSYS   = "20"
    USRSAP_TRANS    = "80"
    # Default File shares sizes:
    
    ##########################################################
    # DB VSI variables:
    ##########################################################
    
    DB_HOSTNAME_1 = "hanadb-1"
    # HANA DB VSI HOSTNAME 1 in SAP HANA Cluster. The hostname should be up to 13 characters, as required by SAP
    # Default value: "hanadb-1"
    # When the default value is used, the virtual hostname will automatically be changed based on <HANA_SID> to "hanadb-<hana_sid>-1"
    
    DB_HOSTNAME_2 = "hanadb-2"
    # HANA DB VSI HOSTNAME 2 in SAP HANA Cluster. The hostname should be up to 13 characters, as required by SAP
    # Default value: "hanadb-2"
    # When the default value is used, the virtual hostname will automatically be changed based on <HANA_SID> to "hanadb-<hana_sid>-2"
    
    DB_PROFILE = "mx2-16x128"
    # The instance profile used for the HANA VSI. The list of certified profiles for HANA VSIs: https://cloud.ibm.com/docs/sap?topic=sap-hana-iaas-offerings-profiles-intel-vs-vpc
    # Details about all x86 instance profiles: https://cloud.ibm.com/docs/vpc?topic=vpc-profiles).
    # For more information about supported DB/OS and IBM Gen 2 Virtual Server Instances (VSI), check [SAP Note 2927211: SAP Applications on IBM Virtual Private Cloud](https://me.sap.com/notes/2927211){: external}
    # Default value: "mx2-16x128"
    
    DB_IMAGE = "ibm-redhat-8-6-amd64-sap-hana-6"
    # OS image for DB VSI. OS images validated for DB VSIs: ibm-redhat-8-6-amd64-sap-hana-6, ibm-redhat-8-4-amd64-sap-hana-10
    # The list of available VPC Operating Systems supported by SAP: SAP note '2927211 - SAP Applications on IBM Virtual Private Cloud (VPC) Infrastructure environment' https://me.sap.com/notes/2927211; The list of all available OS images: https://cloud.ibm.com/docs/vpc?topic=vpc-about-images
    # Example: DB_IMAGE = "ibm-redhat-8-4-amd64-sap-hana-10"
    
    ##########################################################
    # SAP APP VSI variables:
    ##########################################################
    
    APP_HOSTNAME_1 = "sapapp-1"
    # APP VSI HOSTNAME 1 in SAP APP Cluster. The hostname should be up to 13 characters.
    # Default value: "sapapp-1"
    # When the default value is used, the virtual hostname will automatically be changed based on <SAP_SID> to "sapapp-<sap_sid>-1"
    
    APP_HOSTNAME_2 = "sapapp-2"
    # APP VSI HOSTNAME 2 in SAP APP Cluster. The hostname should be up to 13 characters.
    # Default value: "sapapp-2"
    # When the default value is used, the virtual hostname will automatically be changed based on <SAP_SID> to "sapapp-<sap_sid>-2"
    
    APP_PROFILE = "bx2-4x16"
    # The APP VSI profile. Supported profiles: bx2-4x16. The list of available profiles: https://cloud.ibm.com/docs/vpc?topic=vpc-profiles&interface=ui
    
    APP_IMAGE = "ibm-redhat-8-6-amd64-sap-hana-6"
    # OS image for SAP APP VSI. OS images validated for APP VSIs: ibm-redhat-8-6-amd64-sap-hana-6, ibm-redhat-8-4-amd64-sap-hana-10.
    # The list of available VPC Operating Systems supported by SAP: SAP note '2927211 - SAP Applications on IBM Virtual Private Cloud (VPC) Infrastructure environment' https://me.sap.com/notes/2927211; The list of all available OS images: https://cloud.ibm.com/docs/vpc?topic=vpc-about-images
    # Example: APP_IMAGE = "ibm-redhat-8-4-amd64-sap-hana-10"
    
  4. 自定义 SAP 系统配置。 在同一个 input.auto.tfvars 文件中,编辑传递给 Ansible 自动部署的 SAP 系统配置变量。 有关变量的说明,请参阅 自述文件

    ##########################################################
    # S/4HANA version
    ##########################################################
    
    S4HANA_VERSION = "2023"
    # The version of S/4HANA. Supported values: 2023, 2022, 2021, 2020.
    # Example: S4HANA_VERSION = "2022"
    
    ##########################################################
    # SAP HANA configuration
    ##########################################################
    
    HANA_SID = "HDB"
    # SAP HANA system ID. Should follow the SAP rules for SID naming.
    # Obs. This will be used  also as identification number across different HA name resources. Duplicates are not allowed.
    # Example: HANA_SID = "HDB"
    
    HANA_SYSNO = "00"
    # SAP HANA instance number. Should follow the SAP rules for instance number naming.
    # Example: HANA_SYSNO = "00"
    
    HANA_SYSTEM_USAGE = "custom"
    # System usage. Default: custom. Suported values: production, test, development, custom
    # Example: HANA_SYSTEM_USAGE = "custom"
    
    HANA_COMPONENTS = "server"
    # SAP HANA Components. Default: server. Supported values: all, client, es, ets, lcapps, server, smartda, streaming, rdsync, xs, studio, afl, sca, sop, eml, rme, rtl, trp
    # Example: HANA_COMPONENTS = "server"
    
    KIT_SAPHANA_FILE = "/storage/HANADB/51057281.ZIP"
    # SAP HANA Installation kit path
    # Validated SAP HANA versions for S/4HANA 2023 on Red Hat 8: HANA 2.0 SP 7 Rev 73, kit file: 51057281.ZIP
    # Validated SAP HANA versions for S/4HANA 2022, 2021, 2020 on Red Hat 8: HANA 2.0 SP 5 Rev 57, kit file: 51056441.ZIP
    # Example for Red Hat 8: KIT_SAPHANA_FILE = "/storage/HANADB/51056441.ZIP"
    
    ##########################################################
    # SAP system configuration
    ##########################################################
    
    SAP_SID= "S4A"
    # SAP System ID
    # Obs. This will be used  also as identification number across different HA name resources. Duplicates are not allowed.
    
    SAP_ASCS_INSTANCE_NUMBER = "00"
    # The central ABAP service instance number. Should follow the SAP rules for instance number naming.
    # Example: SAP_ASCS_INSTANCE_NUMBER = "00"
    
    SAP_ERS_INSTANCE_NUMBER = "01"
    # The enqueue replication server instance number. Should follow the SAP rules for instance number naming.
    # Example: SAP_ERS_INSTANCE_NUMBER = "01"
    
    SAP_CI_INSTANCE_NUMBER = "10"
    # The primary application server instance number. Should follow the SAP rules for instance number naming.
    # Example: SAP_CI_INSTANCE_NUMBER = "10"
    
    SAP_AAS_INSTANCE_NUMBER = "20"
    # The additional application server instance number. Should follow the SAP rules for instance number naming.
    # Example: SAP_AAS_INSTANCE_NUMBER = "20"
    
    HDB_CONCURRENT_JOBS = "23"
    # Number of concurrent jobs used to load and/or extract archives to HANA Host
    
    ##########################################################
    # SAP S/4HANA APP Kit Paths
    ##########################################################
    
    KIT_SAPCAR_FILE = "/storage/S4HANA/SAPCAR_1010-70006178.EXE"
    KIT_SWPM_FILE = "/storage/S4HANA/SWPM20SP17_0-80003424.SAR"
    KIT_SAPEXE_FILE = "/storage/S4HANA/KERNEL/793/SAPEXE_60-70007807.SAR"
    KIT_SAPEXEDB_FILE = "/storage/S4HANA/KERNEL/793/SAPEXEDB_60-70007806.SAR"
    KIT_IGSEXE_FILE = "/storage/S4HANA/KERNEL/793/igsexe_4-70005417.sar"
    KIT_IGSHELPER_FILE = "/storage/S4HANA/igshelper_17-10010245.sar"
    KIT_SAPHOSTAGENT_FILE = "/storage/S4HANA/SAPHOSTAGENT61_61-80004822.SAR"
    KIT_HDBCLIENT_FILE = "/storage/S4HANA/IMDB_CLIENT20_018_27-80002082.SAR"
    KIT_S4HANA_EXPORT = "/storage/S4HANA/2023"
    

    Ansible 解压 工具包的其他文件。SAP 更多信息,请参阅 自述文件

  5. 初始化 Terraform CLI。

    terraform init
    
  6. 创建 Terraform 执行计划。 Terraform 执行计划总结了在账户中创建虚拟私有云实例的所有操作。

    terraform plan --out plan1
    

    您需要输入以下敏感变量: 'IBMCLOUD_API_KEY', 'SAP_MAIN_PASSWORD' HANA_MAIN_PASSWORD, and 'HA_PASSWORD'.

    SAP 主密码长度必须为 10 - 14 个字符,至少包含一个数字(0-9)。 密码只能包含以下字符:a-z、A-Z、0-9、@、#、$、_。该密码不能包含 !。 不得以数字或下划线 ( _ ) 开头。

  7. 验证计划是否显示了要创建的所有资源,名称和值是否正确。 如果计划需要调整,请编辑 input.auto.tfvars 文件以更正资源,然后再次运行 terraform plan

  8. 为 S/4HANA HA 系统创建 IBM Cloud 资源,并安装 SAP 系统。

    terraform apply "plan1"
    

    虚拟私有云和组件已创建,您将看到与 terraform plan 输出类似的输出。

    terraform destroy
    

    在销毁确认阶段,会要求您提供以下敏感变量: 'IBMCLOUD_API_KEY', 'SAP_MAIN_PASSWORD' HANA_MAIN_PASSWORD, and 'HA_PASSWORD'.

使用目录磁贴界面在单区或多区上部署 SAP S/4HANA 高可用性

使用这些步骤,通过目录瓦片界面在现有 VPC 上配置 SAP HA SZ 或 MZ S/4HANA。 S/4HANA 支持的版本有 2020、2021、2022 和 2023。 如需了解更多信息,请参阅 readme 文件中的推荐套件版本。 脚本需要 2-3 个小时才能完成。

  1. 从 IBM Cloud 目录中,选择 SAP S/4HANA 高可用性磁贴。 磁贴会打开 SAP HA S/4HANA 的“创建”选项卡。 有关此部署的更多信息,请参阅“关于”选项卡或 readme 文件链接。

  2. 在 SAP HA S/4HANA 页面上,配置工作区:

    • 输入工作区名称或使用默认名称。
    • 选择用于创建资源的资源组。 使用默认组或创建资源组。
    • 选择一个位置,创建 Schematics 工作区。 工作区位置不必与资源位置一致。
  3. 输入所需的部署值,查看默认输入变量,并提供与解决方案相匹配的值。 这些参数针对您的部署。 更多信息,请参阅 自述文件 - 输入参数

    所需变量
    参数 描述
    APP_HOSTNAME_1 SAP APP 集群中的 APP VSI HOSTNAME 1。 主机名最多 13 个字符。 观察:使用默认值时,虚拟主机名将根据 <SAP_SID> 自动更改为 sapapp-<sap_sid>-1
    APP_HOSTNAME_2 SAP APP 集群中的 APP VSI HOSTNAME 2。 主机名最多 13 个字符。 观察:使用默认值时,虚拟主机名将根据 <SAP_SID> 自动更改为 sapapp-<sap_sid>-2
    bastion_floating_ip 输入您在开始部署前创建的 bastion 服务器的浮动 IP。 更多信息,请参阅自动化 SAP bastion 服务器 - SAP 媒体存储库。
    DB_HOSTNAME_1 SAP HANA 集群中的 HANA DB VSI HOSTNAME 1。 主机名最多 13 个字符。 观察:使用默认值时,虚拟主机名将根据 <HANA_SID> 自动更改为 hanadb-<hana_sid>-1
    DB_HOSTNAME_2 SAP HANA 集群中的 HANA DB VSI HOSTNAME 2。 主机名最多 13 个字符。 观察:使用默认值时,虚拟主机名将根据 <HANA_SID> 自动更改为 hanadb-<hana_sid>-2
    domain_name 用于 DNS 和 ALB 的域名。 不允许重复的属性。 包含 DNS 资源的列表可在此处找到:https://cloud.ibm.com/resources。
    區域 部署资源的云区域。
    RESOURCE_GROUP VSI 和卷的现有资源组
    SECURITY_GROUP 现有安全组名称
    ssh_keys 访问 VSI 的 SSH 密钥 ID 列表。
    SUBNET 现有子网名称
    VPC 现有 VPC 名称
    ZONE 部署资源的云区。
    HA_PASSWORD HA 集群密码
    hana_components HANA 组件,例如服务器
    hana_main_password HANA 主密码或使用存储在 Secrets Manager 中的秘密。
    HANA_SID HANA sid
    ibmcloud_api_key IBM Cloud API 密钥或使用存储在 中的秘密。Secrets Manager
    private_ssh_key 输入 id_rsa 私钥内容或使用存储在 Secrets Manager 中的密钥。
    sap_main_password SAP 主密码或使用存储在 中的秘密。Secrets Manager
    SAP_SID SAP 侧
  4. 审查并更新可选参数。 Ansible 脚本希望 SAP 工具包位于所列的默认位置。 更多信息,请参阅 自述文件 - 输入参数

    可选变量
    参数 描述
    应用程序图像 APP VSI 操作系统映像
    APP_PROFILE APP VSI简介
    ascs_virt_hostname ASCS 虚拟主机名
    DB_IMAGE DB VSI 操作系统映像
    DB_PROFILE DB VSI 简介
    ers_virt_hostname ERS 虚拟主机名
    hana_virt_hostname HANA 虚拟主机名
    HANA_SYSNO SAP HANA 系统的实例编号。
    hana_system_usage 系统使用。 默认值:“自定义”。 有效值:“生产”、“测试”、“开发”、“自定义”。
    hdb_concurrent_jobs 用于向 HANA 主机加载和/或提取存档的并发作业数。
    kit_hdbclient_file 从 SAP Support Portal 下载的 HANA DB 客户端存档 (SAR) 的路径。
    kit_igsexe_file 从 SAP 支持门户网站下载的 IGS 档案 (SAR) 路径。
    kit_igshelper_file 从 SAP Support Portal 下载的 IGS 助手存档 (SAR) 的路径。
    KIT_S4HANA_EXPORT S/4HANA 安装导出目录的路径。 从 SAP Support Portal 下载的归档文件应存在于此路径中。
    kit_sapcar_file 从 SAP Support Portal 下载的 sapcar 二进制文件的路径。
    kit_sapexe_file 从 SAP Support Portal 下载的 SAP Kernel OS 存档 (SAR) 路径。
    kit_sapexedb_file 从 SAP Support Portal 下载的 SAP Kernel DB 存档 (SAR) 路径。
    kit_saphana_file 从 SAP Support Portal 下载的 SAP HANA ZIP 文件的路径。
    kit_saphostagent_file 从 SAP Support Portal 下载的 SAP Host Agent 存档 (SAR) 路径。
    KIT_SWPM_FILE 从 SAP Support Portal 下载的 SWPM 存档 (SAR) 路径。
    sap_aas_instance_number SAP 附加应用服务器实例编号。 AAS 内部流程的技术标识符。 由 00 到 97 的两位数组成。 在主机上必须是唯一的。 必须遵循 SAP 的实例编号命名规则。
    sap_ascs_instance_number 中央 ABAP 服务实例编号。 ASCS 内部程序的技术标识符。 由 00 到 97 的两位数组成。 在主机上必须是唯一的。 必须遵循 SAP 的实例编号命名规则。
    sap_ci_instance_number SAP 中央实例编号。 PAS 内部流程的技术标识符。 由 00 到 97 的两位数组成。 在主机上必须是唯一的。 必须遵守 SAP 规则,例如数字命名。
    sap_ers_instance_number Enqueue 复制服务器实例编号。 企业资源规划系统内部流程的技术标识符。 由 00 到 97 的两位数组成。 在主机上必须是唯一的。 必须遵守 SAP 规则,例如数字命名。
    分享_简介 输入文件共享存储的 IOPs(每 GB IOPS)层。 有效值为 3、5 和 10。
    S4HANA_VERSION S/4HANA.NET 版本。 支持值:2023、2022、2021 和 2020。
    USRSAP_AS1 的 FS 大小(GB usrsap-as1
    USRSAP_AS2 的 FS 大小(GB usrsap-as2
    USRSAP_SAPASCS usrsap-sapascs 的 FS 大小(GB
    USRSAP_SAPERS 以 GB 为单位的 usrsap-sapers FS 大小
    USRSAP_SAPMNT usrsap-mnt 的 FS 大小(GB
    USRSAP_SAPSYS usrsap-sapsys 的 FS 大小(GB
    USRSAP_TRANS usrsap-trans 的 FS 大小(GB
  5. 接受许可协议。

  6. 选择安装。 部署开始后,您将进入 Schematics 页面,该页面显示脚本日志文件,供您监控部署进度。

使用 Schematics 界面在单区上部署 SAP S/4HANA High Availability

使用以下步骤,通过 Schematics 界面在现有 VPC 上配置 SAP S/4HANA High Availability on Single Zone。 脚本需要 2-3 个小时才能完成。 S/4HANA 支持的版本有 2020、2021、2022 和 2023。 如需了解更多信息,请参阅 自述文件,了解推荐的工具包版本。

  1. 从 IBM Cloud 菜单中选择 Schematics.

  2. 单击创建工作空间

  3. 指定模板页面:

    • 输入 GitHub 储存库 URL,其中包含该产品的 Schematics 代码。
    • 选择 Terraform 版本
    • 单击下一步
  4. 工作区详细信息页面:

    • 输入工作区名称。
    • 选择资源组
    • 为工作区选择一个位置。 工作区位置不必与资源位置一致。
    • 选择下一步
  5. 选择“**创建 **”来创建工作区。

  6. 在“工作区设置”页面的“输入变量”部分,查看默认输入变量,并提供与解决方案相匹配的值。

    有关每个参数的详细说明,请查阅 GitHub repo readme 文件中的“输入参数文件”一章。 此外,确保将包含密码、API 和 ssh 私钥等敏感信息的参数标记为“敏感”。 这些参数在自述文件的“输入参数文件”中被标记为“敏感”参数。

    保存您修改的每个参数。

  7. 在工作区设置页面,单击生成计划。 等待计划完成。

  8. 单击查看日志以查看 Terraform 执行计划的日志文件。

  9. 单击“应用计划”应用 Terraform 模板。

  10. 查看日志文件,以确保在供应、修改或删除过程中未发生任何错误。

后续步骤

如果需要移除 SAP HA S/4HANA 安装,请进入项目文件夹并运行 terraform destroy。 在这种情况下,terraform destroy 命令不会移除 VPC,因为 VPC 并不是用相同的 Terraform 脚本创建的。