带有附加应用服务器 (AAS) 的 VPC ABAP 在 Linux 上用于 SAP HANA
您可以使用 Terraform 脚本创建单层 VPC,并在 VPC 上创建 AAS to HANA 和 AnyDB 基础架构。 Terraform 脚本使用你提供的 VPC 信息,然后调用 Ansible playbook 在指定的 VPC 上创建 SAP 架构。 IBM Cloud® 上的 Terraform 可对 IBM Cloud 虚拟私有云 (VPC) 基础架构资源进行可预测和一致的调配,从而使您能够快速构建复杂的云环境。IBM Cloud VPC 基础架构由 SAP 认证的硬件组成,这些硬件使用英特尔® 至强 CPU 和更多英特尔® 技术。
您有两种部署方法可供选择:
- 在 bastion 服务器上通过 CLI 运行的 Terraform 脚本。
- Schematics 用户界面,可从云仪表板菜单访问。
您可以在基于 SAP HANA 的 ABAP 栈上创建 SAP AAS NetWeaver 7.x。
SAP 已实施的解决方案
许多 SAP 企业解决方案都建立在 SAP 平台 ( SAP NetWeaver ) 上,包括
- SAP HANA 作为 SAP NetWeaver 应用程序的主持久性
- SAP 业务套件应用软件(ERP、CRM、SCM 及其他应用软件)、
- SAP 业务仓库 (BW),以及
- 其他 SAP 企业解决方案
SAP NetWeaver 有两个截然不同的方面,即 ABAP 和 Java。 在 SAP NetWeaver 的 ABAP 或 Java (或两者)应用服务器上构建的许多应用程序都运行在 SAP DB owned HANA 和 ASE Sybase 上,或运行在 AnyDB 平台(MSSQL、Oracle 和 Db2 )上。
建立在 SAP NetWeaver AS ABAP 和 AS Java 上的应用程序可通过技术接口在 SAP HANA 和 AnyDB 上运行。 不过,每个应用程序通常都需要特定的开发功能,以确保其在 SAP HANA 上以最佳方式运行。 SAP 业务套件应用程序(ERP、CRM、SCM 和其他应用程序)、SAP Business Warehouse (BW),以及其他基于 SAP NetWeaver 的应用程序经修改后可在 SAP HANA 上运行,并具有许多优势。 此外,通过使用提供的 SAP NetWeaver DB 接口,在 SAP NetWeaver 上构建的各种组件和辅助应用程序也可以在 SAP HANA 或 AnyDB 上运行。
SAP HANA 作为基于 SAP NetWeaver 应用程序的主要持久性方案有一个限制: SAP NetWeaver ABAP 和 Java 应用服务器必须与 SAP HANA 硬件分开运行。
创造了什么
这些脚本可自动运行虚拟基础架构资源,为 SAP 架构中的现有 VPC 和分布式环境配置进程。 SAP AAS NetWeaver 7.x (HANA 或 ASE SYB) 应用服务器配置在不同的 VSI VPC 系统上,SAP HANA DB 配置在专用服务器类型的 VSI VPC 盒子上。 脚本分两个阶段运行。
在 Automate SAP bastion 服务器 - SAP 媒体存储库 的第一阶段,基于 bastion 服务器创建的现有 VPC 中的组件的虚拟基础架构资源如下:
- 1 配置虚拟服务器实例的 VPC。
- 1 个安全组。 该安全组的规则是
- 允许 DNS 入站流量(端口 53)。
- 允许 SSH 入站流量(TCP 22 端口)。
- 允许虚拟服务器实例的所有出站流量。
- 允许安全组中的所有流量。
- 1 个子网,以启用 VPC 中的联网。
- 2 个虚拟服务器实例,具有 SAP 认证的存储和网络配置。
- 1 个浮动 IP 地址,用于通过公共网络访问 VPC 虚拟服务器实例。
在第二阶段,调用 Ansible Playbooks 并为专用虚拟服务器实例 (VSI) SAP 应用程序、VSI 系统和专用 SAP HANA VSI box 安装 SAP 架构。 在 SAP NetWeaver 7.x 版本上部署的 SAP 架构是一个独立的专用 SAP HANA 2.0 box 版本。 有关此架构的更多信息,请参阅 使用 Terraform 和 Ansible 在 IBM Cloud® VPC 上自动运行 SAP HANA 独立虚拟服务器实例。
每个 IBM Cloud 区域只能提供一个服务实例。
Schematics 部署
使用 Schematics 界面运行脚本时,您可以
- 输入工作区信息。
- 在 NetWeaver AAS for HANA 上输入所选解决方案的 GitHub 路径。
- 修改 Schematics 界面中的参数。 这些参数与使用 cli 的
input.auto.tfvars
文件相同。
虚拟服务器实例配置
以下是 SAP NetWeaver 主应用服务器支持的操作系统映像:
- ibm-redhat-8-4-amd64-sap-applications-2
- ibm-redhat-8-6-amd64-sap-applications-2
- ibm-sles-15-3-amd64-sap-applications-2
- ibm-sles-15-4-amd64-sap-applications-3
以下是 SAP HANA 数据库支持的操作系统映像:
- ibm-redhat-8-4-amd64-sap-hana-2
- ibm-redhat-8-6-amd64-sap-hana-2
- ibm-sles-15-3-amd64-sap-hana-2
- ibm-sles-15-4-amd64-sap-hana-1
两个服务器实例都有
- 配置了两个 SSH 密钥,以访问 SSH,网址为
root
。 - 三个存储卷,如
input.auto.tfvars
文件所述。
为 anydb 创建的内容
脚本使用您为现有 VPC 提供的信息,并将 AAS 部署到 SAP HANA 或 AnyDB 与 CI( SAP Central Instance)VSI 主机不同的主机上。 有关此架构的更多信息,请参阅 SAP NetWeaver 7.x on UNIX with HANA 或 AnyDB on IBM Cloud VPC on IBM Cloud VPC。 您可在
input.auto.tfvars
文件中指定要使用的 VPC 信息。
脚本调用 Ansible Playbooks 安装 SAP 架构。
脚本文件
配置文件和脚本文件可从 GitHub 上获取。 SAP 解决方案安装支持的每个接口在 GitHub 资源库中都有自己的文件夹:
Terraform 界面
要运行 Terraform 脚本,需要修改
-
input.auto.tfvars
文件,为解决方案指定现有 VPC 资源。 为现有 VPC 指定变量:- VPC 名称
- 安全组
- Subnet
- 主机名
- Profile
- 图像
- 最多两个 SSH 密钥
您可以更改默认的 SAP 系统配置设置,以匹配您的解决方案。 您还可以指定下载 SAP 工具包的位置。
IBM Cloud 上 Terraform 的 IBM Cloud Provider 插件使用这些配置文件将 AAS 安装到 IBM Cloud 账户中指定 VPC 上的 SAP HANA 和 AnyDB。
支持
IBM® 不对这些材料提供任何担保,也不提供任何服务或技术支持。 建议您在实际系统中使用从本网站下载的任何资料之前,先仔细检查这些资料。
尽管此处提供的材料未得到 IBM® 服务组织的支持,但开发人员欢迎您提出意见,并保留随时修改、重新改编或删除材料的权利。 要报告问题或提供建议或意见,请打开 GitHub 问题。
准备工作
在使用 bastion cli 中的脚本之前:
- 设置账户以访问 VPC。 确保您的账户已 升级为付费账户。
- 如果还没有,请创建一个 Bastion 服务器来存储 SAP 套件。 更多信息,请参阅 自动化 SAP bastion 服务器 - SAP 媒体存储库。
- 从 SAP Portal 将 SAP 工具包下载到部署服务器。 记下下载位置。 Ansible 解压文件。 更多信息,请参阅 自述文件。
- 创建或检索 IBM Cloud API 密钥。 API 密钥用于验证 IBM Cloud 平台,并确定您对 IBM Cloud 服务的权限。
- 创建或获取 SSH 密钥 ID。 您需要的是 SSH 密钥的 40 位 UUID,而不是 SSH 密钥名称。
- 部署的 bastion 服务器上应该已经安装了 Terraform。 更多信息,请参阅 SAP 部署的 Bastion 服务器。
- (可选 - 目录瓦片)使用 Secrets Manager.
使用 Schematics 用户界面在 HANA 上部署 SAP AAS NetWeaver 7.x
使用以下步骤,通过 Schematics 界面在现有 VPC 上配置 SAP 附加应用服务器 (AAS) NetWeaver 与 HANA 或 AnyDB。 剧本需要 2-3 个小时才能完成。
-
从 IBM Cloud 菜单中选择 Schematics.
-
单击创建工作空间。
-
在指定模板页面:
- 输入 Schematics 接口的 URL。
- 选择自述文件中列出的 Terraform 版本。
- 单击下一步。
-
在工作区详细信息页面:
- 输入工作区名称。
- 选择资源组。
- 为工作区选择一个位置。 工作区位置不必与资源位置一致。
- 选择下一步。
-
选择“**创建 **”来创建工作区。
-
在工作区设置页面的输入变量部分,查看默认输入变量,并提供与解决方案相匹配的值。
有关各参数的详细说明,请查看 GitHub repo AAS HANA readme 文件中的“输入参数文件”一章。 此外,确保将包含密码、API 和 ssh 私钥等敏感信息的参数标记为“敏感”。 这些参数在自述文件的“输入参数文件”中被标记为“敏感”参数。
-
在工作区设置页面,单击生成计划。 等待计划完成。
-
单击查看日志以查看 Terraform 执行计划的日志文件。
-
单击“应用计划”应用 Terraform 模板。
-
查看日志文件,确保在配置、修改或删除过程中不会出现错误。
使用可部署架构瓦片接口在 HANA 上部署 SAP AAS NetWeaver (ABAP)
使用以下步骤,通过目录瓦片界面在现有 VPC 上配置 SAP AAS NetWeaver (ABAP) on HANA。 剧本需要 2-3 个小时才能完成。
-
从 IBM Cloud 目录中,选择 Linux 上用于 SAP HANA on HANA 的带有附加应用程序服务器 ABAP 的 VPC。 Linux 上的“创建”选项卡为 SAP HANA 打开。 有关此部署的更多信息,请参阅“关于”选项卡或 readme 文件链接。
-
选择最新版本。
-
在可部署架构图块变体上为 SAP HANA 选择 Linux 上带有附加应用程序服务器 ABAP 的 VPC。
-
单击审查部署选项:
- 添加到项目可将此部署添加到 IBM Cloud 项目中,并与其他部署合并。IBM Cloud 项目在部署前还包括几个流水线步骤,包括部署验证、成本计算、合规性验证和审批流程。
- 从 CLI 创建以获取 CLI 命令。 使用此命令,您可以通过 CLI 触发部署。
- 使用代码将代码嵌入到其他 terraform 部署中。
- 使用 IBM Cloud Schematics 直接触发部署流程。
-
选择通过 IBM Cloud Schematics 进行部署。
-
添加此安装的输入参数。 有 3 类参数:
- 工作区- 这些参数定义了在 Schematics 中自动创建的工作区:
- 输入工作区名称或使用默认名称。
- 用于创建资源的资源组。 使用默认值或创建资源组。
- 选择一个位置来创建 Schematics 工作空间。 工作区位置不必与资源位置一致。
- 所需输入变量- 查看默认输入变量,并提供与解决方案相匹配的值。 这些参数针对您的部署。 更多详细信息,请参阅 自述文件。
所需变量 参数 描述 bastion_floating_ip 仅 Schematics 部署需要。 堡垒服务器的浮动 IP。 主机名 VSI 的主机名。 根据 SAP 的要求,主机名应不超过 13 个字符。 有关 SAP 系统主机名规则的更多信息,请查阅 SAP Note 611361:SAP ABAP 平台服务器的主机名 区域 部署解决方案的云区域。 这里 列出了 VPC 的区域和分区。 在 IBM Cloud Schematics 中查看支持的地点。 样本值:eu-de. RESOURCE_GROUP 用于 VSI 和卷资源的现有资源组的名称。 默认值:“默认”。 资源小组列表请 点击此处。 SECURITY_GROUP 现有安全组的名称。 安全组列表可 在此处获取。 ssh_keys 允许以根用户身份 SSH 访问 VSI 的 SSH 密钥 UUID 列表可以包含一个或多个 ID。 这里 有 SSH 密钥列表。 输入示例(从 IBM Cloud 使用自己的 SSH UUID ){: external}:[" r010-57bfc315-f9e5-46bf-bf61-d87a24a9ce7a ", " r010-3fcd9fe7-d4a7-41ce-8bb3-d96e936b2c7e "] SUBNET 现有子网的名称。 子网列表可 在此处获取。 VPC 现有 VPC 的名称。 VPC 列表可 在此处获取。 ZONE 部署解决方案的云区。 样本值:eu-de-2。 ibmcloud_api_key IBM Cloud API 密钥(敏感*值)。 private_ssh_key 仅 Schematics 部署需要 - 以 OpenSSH 格式输入 id_rsa 私钥对内容(敏感*值)。 仅应在 Terraform 配置期间使用此专用密钥,建议在 SAP 部署后进行更改。 hdb_instance_number SAP HANA 数据库服务器的实例编号。 sap_aas_instance_number 附加应用服务器内部进程的技术标识符。 sap_ascs_instance_number ASCS 内部程序的技术标识符。 sap_ci_host 现有 SAP Central 实例的 IP 地址。 sap_ci_hostname 现有 SAP Central 实例的主机名。 sap_ci_instance_number 中央实例内部流程的技术标识符。 sap_sid SAP 系统 ID 标识整个 SAP 系统。 sap_main_password 安装过程中创建的所有用户的通用密码(参见观察结果*)。 - 可选变量- 查看并更新可选输入变量。 Ansible 脚本希望 SAP 工具包位于所列的默认位置。 更多信息,请参阅 自述文件 - 输入参数。
可选变量 参数 描述 id_rsa_file_path private_ssh_key 的文件路径默认为自动生成。 如果更改,则必须包含 Git repo 文件夹的相对路径。 默认值:"ansible/id_rsa"。 图像 用于 VSI 的操作系统映像。 请 点击此处 查看图片列表。 概况书 用于 VSI 的剖面图。 请 点击此处 查看简介列表。 有关支持的 DB/OS 和 IBM Gen 2 虚拟服务器实例 (VSI) 的详细信息,请查看 SAP Note 2927211:SAP Applications on IBM Virtual Private Cloud。 VOL1 卷 1 大小 - 连接到 VSI 并由 SAP 使用的磁盘大小(GB)。 VOL2 卷 2 大小 - 连接到 VSI 并由 SAP 使用的磁盘大小(GB)。 kit_sapcar_file 从 SAP Support Portal 下载的 sapcar 二进制文件的路径。 kit_swpm_file 从 SAP Support Portal 下载的 SWPM 存档 (SAR) 路径。 kit_saphostagent_file 从 SAP Support Portal 下载的 SAP Host Agent 存档 (SAR) 路径。 kit_hdbclient_file 从 SAP Support Portal 下载的 HANA DB 客户端存档 (SAR) 的路径。 - 工作区- 这些参数定义了在 Schematics 中自动创建的工作区:
-
接受许可协议。
-
选择部署。 部署开始后,您将进入 Schematics 页面,该页面显示脚本日志文件,供您监控部署进度。
使用 Terraform 和 bastion 服务器 CLI 创建基础架构
使用这些步骤配置 IBM Cloud Provider 插件,并使用 Terraform 将 SAP AAS 安装到现有 VPC 上的 SAP HANA 和 AnyDB 上已部署的 SAP NetWeaver 7.X,SAP HANA 2.0 或 ASE SYB 作为中心实例。
剧本需要 1-2 个小时完成。
-
访问 bastion 服务器 cli。
-
克隆解决方案资源库并更改为文件夹。
ASE SYB 16 从 https://github.com/IBM-Cloud/sap-aas-abap-ase-syb 克隆解决方案资源库,然后 cd 到 sap-aas-abap-ase-syb/cli 文件夹。
git clone https://github.com/IBM-Cloud/sap-aas-abap-ase-syb cd sap-aas-abap-ase-syb/cli/
SAP HANA 2.0: 从 https://github.com/IBM-Cloud/sap-abap-hana-aas 克隆解决方案资源库,然后 cd 到 sap-abap-hana-aas 文件夹。
git clone https://github.com/IBM-Cloud/sap-abap-hana-aas.git cd sap-abap-hana-aas/
-
修改
input.auto.tfvars
文件,指定现有 VPC、区域、区、网络组件名称、AAS VSI 的主机名、配置文件和映像的信息。 该文件需要 40 位 SSH 密钥 ID。 第二个 SSH 密钥是可选的。 有关配置文件的更多选项,请参阅 实例配置文件。 有关更多选项,请参阅 图像。 有关变量的说明,请参阅 自述文件。Netweaver 附加应用服务器解决方案支持的 VSI 操作系统映像有
- ibm-redhat-8-4-amd64-sap-applications-2
- ibm-redhat-8-6-amd64-sap-applications-2
- ibm-sles-15-3-amd64-sap-applications-2
- ibm-sles-15-4-amd64-sap-applications-4
# Infra VPC variables for ASE SYB REGION = "eu-de" ZONE = "eu-de-2" VPC = "ic4sap" # EXISTING Security group name SECURITY_GROUP = "ic4sap-securitygroup" # EXISTING Security group name RESOURCE_GROUP = "wes-automation" SUBNET = "ic4sap-subnet" # EXISTING Subnet name SSH_KEYS = [ "r010-57bfc315-f9e5-46bf-bf61-d87a24a9ce7a" , "r010-3fcd9fe7-d4a7-41ce-8bb3-d96e936b2c7e" ] # SAP AAS VSI variables: HOSTNAME = "sapnwase-as01" PROFILE = "bx2-4x16" IMAGE = "ibm-redhat-8-4-amd64-sap-applications-2
# Infra VPC variables for ABAP HANA REGION = "eu-de" ZONE = "eu-de-2" VPC = "ic4sap" # EXISTING Security group name SECURITY_GROUP = "ic4sap-securitygroup" # EXISTING Security group name RESOURCE_GROUP = "wes-automation" SUBNET = "ic4sap-subnet" # EXISTING Subnet name SSH_KEYS = [ "r010-57bfc315-f9e5-46bf-bf61-d87a24a9ce7a" , "r010-3fcd9fe7-d4a7-41ce-8bb3-d96e936b2c7e" ] ID_RSA_FILE_PATH = "ansible/id_rsa" # SAP AAS variables: HOSTNAME = "sapnwapp" PROFILE = "bx2-4x16" IMAGE = "ibm-redhat-8-6-amd64-sap-applications-2"
-
自定义 SAP 系统配置。 在同一文件 input.auto.tfvars 中,编辑传递给 Ansible 自动部署的 SAP 系统配置变量。 有关变量的说明,请参阅 自述文件。
# SAP system configuration - for ASE SYB sap_sid = "NWD" sap_ci_host = "10.243.132.10" sap_ci_hostname = "sapnwase" sap_ci_instance_number = "00" sap_ascs_instance_number = "01" sap_aas_instance_number = "00" # Kits paths kit_sapcar_file = "/storage/NW75SYB/SAPCAR_1010-70006178.EXE" kit_swpm_file = "/storage/NW75SYB/SWPM10SP31_7-20009701.SAR" kit_saphotagent_file = "/storage/NW75SYB/SAPHOSTAGENT51_51-20009394.SAR"
# SAP system configuration - for ABAP HANA sap_sid = "NWD" sap_ci_host = "10.243.132.10" sap_ci_hostname = "sapnwapp01" sap_ci_instance_number = "00" sap_ascs_instance_number = "01" hdb_instance_number = "00" sap_aas_instance_number = "00" # Kits paths kit_sapcar_file = "/storage/NW75HDB/SAPCAR_1010-70006178.EXE" kit_swpm_file = "/storage/NW75HDB/SWPM10SP31_7-20009701.SAR" kit_saphotagent_file = "/storage/NW75HDB/SAPHOSTAGENT51_51-20009394.SAR" kit_hdbclient_file = "/storage/NW75HDB/IMDB_CLIENT20_009_28-80002082.SAR"
Ansible 解压 SAP 工具包的其他文件。 更多信息,请参阅 自述文件。
-
初始化 Terraform CLI。
terraform init
-
创建 Terraform 执行计划。 Terraform 执行计划总结了在账户中创建虚拟私有云实例的所有操作。
terraform plan plan1
输入 SAP 主密码和 API 密钥。
SAP 主密码长度必须为 10 - 14 个字符,至少包含一个数字(0-9)。 密码只能包含以下字符:a-z、A-Z、0-9、@、#、$、。该密码不能包含感叹号"!"。 密码不得以数字或下划线 () 开头。
-
验证计划是否显示了要创建的所有资源,名称和值是否正确。 如果需要调整计划,请编辑 input.auto.tfvars 文件以修正资源,然后再次运行 terraform 计划。
-
应用保存的计划。
terraform apply "plan1"
虚拟私有云和组件已创建,您将看到与 terraform plan
输出类似的输出。
- 将 SAP 凭据和虚拟服务器实例 IP 添加到 SAP GUI。 有关 SAP GUI 的更多信息,请参阅 SAP GUI。
后续步骤
如果在创建资源后需要重新命名,请修改 input.auto.tfvars 文件以更改名称,然后再次运行 terraform plan
和 terraform apply
。 创建 VPC 后,请勿使用 IBM Cloud 控制面板和用户界面修改 VPC。 Terraform 脚本创建的是一个完整的解决方案,使用用户界面有选择地修改资源可能会导致意想不到的结果。
如果需要移除 SAP Netweaver 7.X on HANA 或 AnyDB 安装,请进入项目文件夹并运行 terraform destroy
。 在这种情况下,terraform destroy
命令不会移除 VPC,因为 VPC 是在运行这些 Terraform 脚本之前创建的。