在 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。
创造了什么
脚本分两个阶段运行。 第一阶段在部署 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 实例。 您可以根据需要扩大系统规模。 单主机系统由以下部分组成:
这些脚本旨在通过一个任务流在现有 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。 如需了解更多信息,请参阅 自述文件,了解推荐的工具包版本。
-
使用
ssh
登录部署服务器。 -
克隆版本库并更改 sap-s4hana 文件夹的路径。
git clone https://github.com/IBM-Cloud/sap-s4hana.git cd sap-s4hana
-
编辑输入参数文件
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.
-
使用要传递给 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"
-
初始化 Terraform CLI。
terraform init
-
创建 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 计划。 -
为 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 个小时才能完成。
-
从 IBM Cloud 目录中选择 SAP S/4HANA 瓦片。 磁贴会打开 SAP S/4HANA 的“创建”选项卡。 有关此部署的更多信息,请参阅“关于”选项卡或 Readme 文件链接。
-
在 SAP S/4HANA 页面上,配置工作区:
- 输入工作区名称或使用默认名称。
- 用于创建资源的资源组。 使用默认组或创建资源组。
- 选择一个位置,创建 Schematics 工作区。 工作区位置不必与资源位置一致。
-
输入所需的部署值,查看默认输入变量,并提供与解决方案相匹配的值。 这些参数针对您的部署。 更多详细信息,请参阅 自述文件 - 输入参数。
所需变量 参数 描述 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 -
审查并更新可选参数。 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 -
接受许可协议。
-
选择安装。 部署开始后,您将进入 Schematics 页面,该页面显示脚本日志文件,供您监控部署进度。
利用 Schematics 界面部署 SAP S/4HANA
使用 Schematics 界面在现有 VPC 上配置 SAP S/4HANA。 脚本需要 1-2 个小时才能完成。 S/4HANA 支持的版本有 2020、2021、2022 和 2023。 如需了解更多信息,请参阅 自述文件,了解推荐的工具包版本。
-
从 IBM Cloud 菜单中选择 Schematics.
-
单击创建工作空间。
-
在指定模板页面:
- 输入 Schematics 接口的 URL。
- 选择 Terraform 版本。
- 单击下一步。
-
在工作区详细信息页面:
- 输入工作区名称。
- 选择资源组。
- 为工作区选择一个位置。 工作区位置不必与资源位置一致。
- 选择下一步。
-
选择“**创建 **”来创建工作区。
-
在“工作区设置”页面的“输入变量”部分,查看默认输入变量,并提供与解决方案相匹配的值:
- 您的应用程序接口密钥
- 本地系统中的 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 私钥等敏感信息的参数标记为“敏感”。 这些参数在自述文件的“输入参数文件”中被标记为“敏感”参数。
-
在工作区设置页面,单击生成计划。 等待计划完成。
-
单击查看日志以查看 Terraform 执行计划的日志文件。
-
单击“应用计划”应用 Terraform 模板。
-
查看日志文件,以确保在供应、修改或删除过程中未发生任何错误。