IBM Cloud Docs
在 3 层 IBM Cloud® VPC 上部署 SAP S/4HANA (Terraform 和 Ansible )

在 3 层 IBM Cloud® VPC 上部署 SAP S/4HANA (Terraform 和 Ansible )

您可以使用 Terraform 脚本创建单层 VPC,并在 bastion 服务器上以分布式架构创建 SAP / SAP HANA。 创建堡垒服务器是所有 IBM SAP VPC 自动解决方案的前提条件。 自动化脚本使用您提供的 VPC 信息,然后调用 Ansible playbooks 在指定的 VPC 上创建 SAP 架构。 IBM Cloud® 上的 Terraform 可对 IBM Cloud VPC 基础架构资源进行可预测和一致的调配,从而使您能够快速构建复杂的云环境。IBM Cloud VPC 基础架构由 SAP 认证的硬件组成,这些硬件使用英特尔® 至强 CPU 和其他英特尔® 技术。

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

  • 在 bastion 服务器上通过 CLI 运行的 Terraform 脚本。
  • 目录磁贴用户界面可从 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 S/4HANA。

图 1。 SAP S/4HANA 建筑
SAP S/4HANA 建筑

创造了什么

脚本分两个阶段运行。 第一阶段在部署 bastion VSI 时创建的 VPC 中自动调配 IBM Cloud 资源。 第二阶段在分布式环境中创建 SAP 架构,SAP S/4HANA 应用服务器位于不同的 VSI VPC 系统上,SAP HANA DB 位于专用服务器类型的 VSI 或裸金属 VPC box 系统上。 有关此架构的更多信息,请参阅 SAP NetWeaver 7.x 和 SAP HANA IBM Cloud® VPC。

在第一阶段,VPC 配备了 2 X 个虚拟服务器实例,其存储和网络配置已通过 SAP 认证。

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

单主机 SAP HANA 系统

单主机系统是最简单的系统安装类型,完全在一台主机上运行 SAP HANA 数据库实例。 利用该自动化功能,您可以在 x86 VSI 或英特尔虚拟裸金属服务器类型上部署 HANA DB 实例。 您可以根据需要扩大系统规模。 单主机系统由以下部分组成:

图 2。 单主机 SAP HANA 系统
单主机 SAP HANA 系统

这些脚本旨在通过一个任务流在现有 VPC 上安装 SAP ( SAP S/4HANA release) 解决方案及其专用 DB SAP HANA box。

SAP 套件

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

Terraform 部署

您可以使用 Bastion 服务器 CLI 运行 Terraform 脚本,这些脚本位于 GitHub 存储库中,用于 SAP S/4HANA for Terraform

要在专用 SAP HANA 2.0 BOX VSI 上运行脚本以部署 SAP S/4HANA 版本,您需要这样做:

  • input.auto.tfvars 文件中自定义解决方案的资源。
    • 输入来自 Bastion 服务器的浮动 IP 和子网信息。

    • 默认情况下,VSI 配置为

      • Red Hat Enterprise Linux® 8.6 用于 SAP HANA /Applications ( amd64 )、
      • SSH 密钥,以便在 SSH 上以 root 用户身份访问、
      • 存储卷

      您可以更改默认设置来匹配您的解决方案。

    • 您可以更改默认的 SAP 系统配置设置,以匹配您的解决方案。

    • 您还可以指定下载 SAP 工具包的位置。

IBM Cloud 上 Terraform 的 IBM Cloud Provider 插件使用这些配置文件在 IBM Cloud 账户中配置 S/4HANA 系统。

Schematics 部署

您在 IBM Cloud® 上使用 Schematics 用户界面,进入 GitHub 资源库 S/4HANA Schematics。

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

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

目录瓦片部署

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

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

支持 - Schematics 和 Terraform

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:

  • 确保您的账户已升级为 付费账户

  • 如果还没有,请创建一个堡垒服务器来存储 SAP 套件。 更多信息,请参阅 自动化 SAP bastion 服务器 - SAP 媒体存储库。 部署时需要使用堡垒服务器的浮动 IP。

  • 从 SAP 门户网站下载 SAP 工具包到您的堡垒服务器。 记下下载位置。 Ansible 解压所有压缩包,并需要路径。 如需了解更多信息,请参阅 GitHub 仓库中的 readme 文件和目录瓦片的“关于”页面。

  • 创建或检索 IBM Cloud API 密钥。 API 密钥用于与 IBM Cloud 平台进行身份验证,并确定您使用 IBM Cloud 服务的权限。

  • 创建或获取 SSH 密钥 ID。 你需要的是 SSH 密钥的 40 位 UUID,而不是 SSH 密钥名称。

  • (可选 - 目录瓦片)使用 Secrets Manager.

使用 Terraform 脚本部署 SAP S/4HANA

使用以下步骤在现有 VPC 上部署 SAP S/4HANA 3 层架构。 脚本需要 2-3 个小时才能完成。 脚本需要 1-2 个小时才能完成。 S/4HANA 支持的版本有 2020、2021、2022 和 2023。 如需了解更多信息,请参阅 自述文件,了解推荐的工具包版本。

  1. 使用 ssh 登录部署服务器。

  2. 克隆版本库并更改 sap-s4hana 文件夹的路径。

    	git clone https://github.com/IBM-Cloud/sap-s4hana.git
    
    	cd sap-s4hana
    
  3. 编辑输入参数文件 input.auto.tfvars,修改变量,使之与解决方案相匹配。 该文件预设了建议的最小磁盘大小。 要使用现有的 VPC,必须进行修改:

    • VPC - 现有 VPC 名称
    • 区域 - VSI 的区域
    • ZONE - VSI 可用性区域
    • SECURITY_GROUP - 现有安全组,之前由用户在同一 VPC 中创建。
    • SUBNET - 与 VSI 位于同一区域和区段的现有子网,之前由用户创建。
    • RESOURCE_GROUP - 用户先前创建的现有资源组。
    • SSH_KEYS - 允许以根用户身份 SSH 访问 VSI 的 SSH 密钥 UUID 列表。
    • ID_RSA_FILE_PATH - id_rsa 私钥文件路径,格式为 OpenSSH,权限为 0600。
    • APP_HOSTNAME/DB_HOSTNAME - 输入主机名,最多 12 个字符。 更多信息,请参阅自述文件。
    • DB_PROFILE/APP_PROFILE - 用于 HANA/APP VSI 的实例配置文件。 HANA 数据库实例可部署在 x86 VSI 或裸机服务器类型上。
    • DB_IMAGE/APP_IMAGE - DB/APP VSI 的操作系统映像。

    有关配置文件的更多选项,请参阅实例配置文件。 有关图像的更多选项,请参阅图像。 有关变量的说明,请参阅自述文件。

    	REGION          = ""
    	ZONE            = ""
    	VPC             = ""
    	SECURITYGROUP   = ""
    	SUBNET          = ""
    	SSH_KEYS        = [""]
    ID_RSA_FILE_PATH   = "ansible/id_rsa"
    
    # SAP Database VSI variables:
    	DB_HOSTNAME     = ""
    	DB_PROFILE      = "mx2-16x128"
    	DB_IMAGE        = "ibm-redhat-8-6-amd64-sap-hana-5" # For any manual change in the terraform code, you have to make sure that you use a certified image based on the SAP NOTE: 2927211.
    
    	# SAP APPs VSI variables:
    	APP_HOSTNAME    = ""
    	APP_PROFILE     = "bx2-4x16"
    	APP_IMAGE       = "ibm-redhat-8-6-amd64-sap-applications-5" # For any manual change in the terraform code, you have to make sure that you use a certified image based on the SAP NOTE: 2927211.
    
  4. 使用要传递给 Ansible playbooks 的值自定义 SAP 系统配置,以便进行自动部署。

    # S/4HANA version
    S4HANA_VERSION = ""
    
    	# SAP HANA DB configuration
    	HANA_SID = "HDB"
    	HANA_SYSNO = "00"
    	HANA_SYSTEM_USAGE = "custom"
    	HANA_COMPONENTS = "server"
    HANA_SERVER_TYPE = ""
    HANA_TENANT = ""
    
    	# SAP HANA Installation kit path
    	KIT_SAPHANA_FILE = "/storage/HANADB/51057281.ZIP"
    
    	#SAP system configuration
    	SAP_SID= "S4A"
    	SAP_ASCS_INSTANCE_NUMBER = "01"
    	SAP_CI_INSTANCE_NUMBER = "00"
    
    	# Number of concurrent jobs used to load and/or extract archives to SAP HANA Host
    	HDB_CONCURRENT_JOBS = "23"
    
    	# SAP S4HANA APP Installation kit path
    	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_SAPHOTAGENT_FILE = "/storage/S4HANA/SAPHOSTAGENT61_61-80004822.SAR"
    	KIT_HDBCLIENT_FILE = "/storage/S4HANA/IMDB_CLIENT20_018_27-80002082.SAR"
    	KIT_S4HANA_EXPORT = "/storage/S4HANA/2023"
    
  5. 初始化 Terraform CLI。

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

    	terraform plan --out plan1
    

    您需要提供 SAP HANA 主密码、SAP 主密码和 IBM Cloud API 密钥。

    SAP HANA 主密码必须至少包含一个数字(0-9)、一个小写字母(a-z)和一个大写字母(A-Z)。 只能包含以下字符:a-z、A-Z、0-9、!、@、#、$、_。不得以数字或下划线 ( _ ) 开头。

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

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

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

    	terraform apply "plan1"
    

    IBM Cloud 资源已创建,您可以看到与 terraform 计划输出类似的输出。

Terraform 的下一步行动

如果需要删除 S/4HANA 系统,请进入项目文件夹并运行 terraform destroy.NET Framework。

使用目录磁贴界面部署 SAP S/4HANA

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

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

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

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

    所需变量
    参数 描述
    bastion_floating_ip 输入您在开始部署前创建的 Bastion 服务器的浮动 IP。 更多信息,请参阅 自动化 SAP bastion 服务器 - SAP 媒体存储
    區域 部署资源的云区域
    RESOURCE_GROUP VSI 和卷的现有资源组
    SECURITY_GROUP 现有安全组名称
    ssh_keys 访问 VSI 的 SSH 密钥 ID 列表
    SUBNET 现有子网名称
    VPC 现有 VPC 名称
    ZONE 部署资源的云区
    hana_main_password HANA 主密码或使用存储在 Secrets Manager
    ibmcloud_api_key IBM Cloud API 密钥,或者使用存储在 Secrets Manager
    private_ssh_key 输入 id_rsa 私钥内容或使用存储在 Secrets Manager
    sap_main_password SAP 主密码或使用存储在 Secrets Manager
  4. 审查并更新可选参数。 Ansible 脚本希望 SAP 工具包位于所列的默认位置。 更多详细信息,请参阅 自述文件 - 输入参数

    可选变量
    参数 描述
    APP_HOSTNAME APP VSI 主机名
    应用程序图像 APP VSI 操作系统映像
    APP_PROFILE APP VSI简介
    DB_HOSTNAME DB VSI 主机名
    DB_IMAGE DB VSI 操作系统映像
    DB_PROFILE DB VSI 简介
    hana_components hana_components
    HANA_SID hana_sid
    HANA_SYSNO hana_sysno
    hana_system_usage hana_system_usage
    HANA_TENANT SAP HANA 租户名称
    hana_server_type SAP HANA 服务器的类型。 允许的值:“虚拟”或“裸机”。
    hdb_concurrent_jobs hdb_ccurent_jobs
    kit_hdbclient_file kit_hdbclient_file
    kit_igsexe_file kit_igsexe_file
    kit_igshelper_file kit_igshelper_file
    KIT_S4HANA_EXPORT kit_s4hana_export
    kit_sapcar_file kit_sapcar_file
    kit_sapexe_file kit_sapexe_file
    kit_sapexedb_file kit_sapexedb_file
    kit_saphana_file kit_saphana_file
    kit_saphotagent_file kit_saphotagent_file
    KIT_SWPM_FILE kit_swpm_file
    sap_ascs_instance_number sap_ascs_instance_number
    sap_ci_instance_number sap_ci_instance_number
    SAP_SID sap_sid
    S4HANA_VERSION 版本 S/4HANA
  5. 接受许可协议。

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

利用 Schematics 界面部署 SAP S/4HANA

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

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

  2. 单击创建工作空间

  3. 指定模板页面:

    • 输入 Schematics 接口的 URL。
    • 选择 Terraform 版本
    • 单击下一步
  4. 工作区详细信息页面:

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

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

    • 您的应用程序接口密钥
    • 本地系统中的 SSH 私有密钥
    • 您创建并上传到 IBM Cloud 的 SSH 密钥的 ID。 在方括号和引号中输入 SSH 密钥 ID,例如 [“ibmcloud_ssh_key_UUID1 "," ibmcloud_ssh_key_UUID2 ",...]。
    • 堡垒服务器的浮动 IP 地址。
    • 资源组
    • 为您提供资源的地区
    • 资源区
    • VPC 名称
    • 子网名称
    • 安全组名称
    • 主机名
    • Profile
    • 图像
    • SAP HANA 主密码 - 该密码必须包含 8 - 14 个字符、大小写字母、一个数字和一个特殊字符。
    • SAP 主密码 - 该密码必须包含 10 - 14 个字符、大小写字母、一个数字和一个非感叹号的特殊字符。
    • 单击保存更改

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

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

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

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

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