在 3 层 IBM Cloud® VPC 上部署 SAP NetWeaver 7.x 和 Db2 (Terraform 和 Ansible )
您可以使用 Terraform 脚本创建单层 VPC,并在 VPC 上创建 SAP NW 和 Db2 分布式 3 层基础架构。 Terraform 脚本使用你提供的 VPC 信息,然后调用 Ansible playbook 在指定的 VPC 上创建 SAP 架构。
IBM Cloud® 上的 Terraform 可对 IBM Cloud® Virtual Private Cloud (VPC) 基础设施资源进行可预测和一致的调配,以便快速构建复杂的云环境。IBM Cloud VPC 基础设施由 SAP 认证的硬件组成,这些硬件使用英特尔®至强 CPU 和其他英特尔®技术。
您有两种部署方法可供选择:
- 在 bastion 服务器上通过 CLI 运行 Terraform 脚本
- Schematics 通过云仪表板上的菜单访问用户界面
创造了什么
脚本使用您为现有 VPC 提供的信息,并通过 Db2 3-tier 部署 NW7.X。 有关此架构的更多信息,请参阅 SAP NetWeaver 7.x on UNIX with Db2 on IBM Cloud® VPC。 您可在 input.auto.tfvars
文件中指定要使用的 VPC 信息。
脚本调用 Ansible Playbook 安装 SAP 架构。
脚本文件
配置文件和脚本文件可从 GitHub 上获取。 SAP 解决方案安装支持的每个接口在 GitHub 资源库中都有自己的文件夹:
- 在 IBM Cloud 上使用 Schematics 用户界面 - GitHub IBM 的存储库 Schematics。
Schematics 部署
使用 Schematics 界面运行脚本时,您可以
- 输入工作区信息。
- 输入 GitHub 路径。
- 修改 Schematics 界面中的参数。 这些参数与 CLI 使用的
input.auto.tfvars
文件相同。
Terraform 部署
您可以在堡垒服务器 CLI 上使用 Terraform 下载并运行位于 SAP NetWeaver ABAP Db2 3 层 GitHub 存储库中的 Terraform 脚本。
要运行 Terraform 脚本,需要修改
input.auto.tfvars
文件,用于指定解决方案的信息:- 输入来自堡垒服务器的浮动 IP 和子网信息。
- 输入现有 VPC 信息:
- VPC 名称
- 安全组
- 子网
- 主机名
- Profile
- 图像
- 最多两个 SSH 密钥
- 您可以更改默认的 SAP 系统配置设置,以匹配您的解决方案。
- 您还可以指定下载 SAP 工具包的位置。
IBM Cloud 上的 IBM Cloud Provider Plug-in for Terraform 会使用这些配置文件将 NW 7.x 与 Db2 3-tier 安装在 IBM Cloud 账户的指定 VPC 上。
支持 - Terraform 和 Schematics
IBM® 不对这些材料提供任何形式的保证,也不提供任何服务或技术支持。建议您在实际系统中使用从本网站下载的任何资料之前,先仔细检查这些资料。
虽然此处提供的材料未得到 IBM 服务组织的支持,但开发人员欢迎您提出意见,并保留随时修改、重新调整或删除材料的权利。 要报告问题或提供建议或意见,请打开 GitHub 问题。
准备工作
在使用 bastion CLI 或 Schematics 中的脚本之前,请先阅读下面的说明:
- 设置账户以访问 VPC。 确保您的账户已 升级为付费账户。
- 如果还没有,请创建一个堡垒服务器来存储 SAP 套件。 更多信息,请参阅 自动化 SAP bastion 服务器 - SAP 媒体存储库。 部署时需要使用堡垒服务器的浮动 IP。
- 从 SAP Portal 将 SAP 工具包下载到部署服务器。 记下下载位置。 Ansible 解压文件。 如需了解更多信息,请参阅 Schematics 和 Terraform 各自的 GitHub 资源库中的 readme 文件,以及目录瓦片的“关于”页面。
- 创建或检索 IBM Cloud API 密钥。 API 密钥用于与 IBM Cloud 平台进行身份验证,并确定您使用 IBM Cloud 服务的权限。
- 创建或获取 SSH 密钥 ID。 您需要的是 SSH 密钥的 40 位 UUID,而不是 SSH 密钥名称。
- (可选 - 目录瓦片)使用 Secrets Manager.
使用 Schematics 用户界面在 3 层上部署 SAP NetWeaver 7.x 和 Db2
使用以下步骤,通过 Schematics 用户界面在现有 VPC 上配置带有 Db2 3-tier 的 SAP NetWeaver 7.x。 脚本需要 1-2 个小时才能完成。
-
从 IBM Cloud 菜单中选择 Schematics.
-
单击创建工作空间。
-
在指定模板页面:
- 输入您计划部署的代码的 GitHub URL。
- 选择 README 文件中列出的 Terraform 版本。
- 单击下一步。
-
在工作区详细信息页面:
- 输入工作区名称。
- 选择资源组。
- 为工作区选择一个位置。 工作区位置不必与资源位置一致。
- 单击下一步。
-
选择“**创建 **”来创建工作区。
-
在“工作区设置”页面的“输入变量”部分,查看默认输入变量并提供与解决方案相匹配的值:
- 您的应用程序接口密钥
- 本地计算机上的 SSH 密钥
- (可选)您可以更改 SSH 密钥的 ID_RSA_FILE_PATH,该密钥将在 Schematics 和 Bastion 服务器上自动生成
- 您创建并上传到 IBM Cloud 的 SSH 密钥的 ID。 在方括号和引号中输入 SSH 密钥 ID,例如 [“ibmcloud_ssh_key_UUID1 "," ibmcloud_ssh_key_UUID2 ",...]。
- 您的资源区域
- 资源区
- 是使用现有 VPC 还是创建 VPC
- 是否使用现有子网
- 是否仅在创建新子网时才创建新端口
- TCP 端口范围、最小值和最大值
- VPC 名称
- 子网名称
- 安全组名称
- 主机名
- Profile
- 图像
- 推荐的最小磁盘尺寸
- SAP 主密码 - 必须至少包含 10 个字符、大写和小写字母、一个数字和一个特殊字符,不能是感叹号。
- 单击保存更改。
有关各参数的详细说明,请查阅 GitHub repo README 文件中的“输入参数文件”一章。 此外,确保将包含密码、API 和 SSH 私钥等敏感信息的参数标记为“敏感”参数(在 README 文件的 "输入参数文件 "中将其标记为 "敏感 "参数)。
-
在工作区设置页面,单击生成计划。 等待计划完善。
-
单击查看日志以查看 Terraform 执行计划的日志文件。
-
单击“应用计划”应用 Terraform 模板。
-
查看日志文件,以确保在供应、修改或删除过程中未发生任何错误。
使用 Terraform 和 bastion 服务器 CLI 部署 SAP NetWeaver 7.x 和 Db2 3-tier
使用以下步骤配置 IBM Cloud Provider 插件,并使用 Terraform 在现有 VPC 上安装带有 Db2 3-tier 的 SAP NW 7.x。 脚本需要 1-2 个小时才能完成。
-
访问 bastion 服务器 CLI。
-
将
https://github.com/IBM-Cloud/sap-netweaver-abap-db2-distributed
和cd
中的解决方案资源库克隆到sap-netweaver-abap-db2-distributed
文件夹。git clone https://github.com/IBM-Cloud/sap-netweaver-abap-db2-distributed.git cd sap-netweaver-abap-db2-distributed
-
指定您的 VPC。 修改
input.auto.tfvars
文件,指定现有 VPC、区域、VPC 和组件名称、配置文件和映像的信息。 该文件需要 40 位 SSH 密钥 ID。 第二个 SSH 密钥是可选的。 有关配置文件的更多选项,请参阅 实例配置文件。 有关图像的更多选项,请参阅 图像。 有关变量的说明,请参见README
文件。# Infra VPC variables REGION = "eu-de" ZONE = "eu-de-2" VPC = "sap" # EXISTING VPC name SECURITY_GROUP = "sap-securitygroup" # EXISTING security group name SUBNET = "sap-subnet" # EXISTING subnet name RESOURCE_GROUP = "wes-automation" # EXISTING resource group SSH_KEYS = [ "r010-57bfc315-f9e5-46bf-bf61-d87a24a9ce7a" , "r010-3fcd9fe7-d4a7-41ce-8bb3-d96e936b2c7e" ] # SAP Database VSI variables: DB-HOSTNAME = "sapnwdb2" DB-PROFILE = "bx2-4x16" DB-IMAGE = "ibm-redhat-8-4-amd64-sap-applications-4" # 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 = "sapnwapp" APP-PROFILE = "bx2-4x16" APP-IMAGE = "ibm-redhat-8-4-amd64-sap-applications-4" # 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 系统配置。 在同一文件
input.auto.tfvars
中,编辑传递给 Ansible 自动部署的 SAP 系统配置变量。有关变量的说明,请参见
README
文件。# SAP system configuration sap_sid = "NWA" sap_ascs_instance_number = "01" sap_ci_instance_number = "00" # Kits paths kit_sapcar_file = "/storage/NW75DB2/SAPCAR_1010-70006178.EXE" kit_swpm_file = "/storage/NW75DB2/SWPM10SP37_2-20009701.SAR" kit_saphotagent_file = "/storage/NW75DB2/SAPHOSTAGENT51_51-20009394.SAR" kit_sapexe_file = "/storage/NW75DB2/SAPEXE_800-80002573.SAR" kit_sapexedb_file = "/storage/NW75DB2/SAPEXEDB_800-80002603.SAR" kit_igsexe_file = "/storage/NW75DB2/igsexe_13-80003187.sar" kit_igshelper_file = "/storage/NW75DB2/igshelper_17-10010245.sar" kit_export_dir = "/storage/NW75DB2/51050829" kit_db2_dir = "/storage/NW75DB2/51055138/DB2_FOR_LUW_11.5_MP6_FP0SAP2_LINUX_" kit_db2client_dir = "/storage/NW75DB2/51055140"
请记住,您必须手动解压
kit_export_dir
、kit_db2_dir
和kit_db2client_dir
文件。 Ansible 解压 工具包的其他文件。SAP 更多信息,请参阅README
文件。 -
初始化 Terraform CLI/
terraform init
-
创建 Terraform 执行计划。 Terraform 执行计划总结了在账户中创建虚拟私有云实例的所有操作。
terraform plan --out plan1
您必须输入 SAP 主密码和 API 密钥。
SAP 主密码长度必须为 10 - 14 个字符,至少包含一个数字(0-9)。 密码只能包含以下字符:a-z、A-Z、0-9、@、#、$、_。该密码不能包含
!
。 不得以数字或下划线 ( _ ) 开头。 -
验证计划是否显示了要创建的所有资源,名称和值是否正确。 如果计划需要调整,请编辑
input.auto.tfvars
文件以更正资源,然后再次运行terraform plan
。 -
在 IBM Cloud 中为 SAP 实例和 IAM 访问策略创建虚拟私有云。
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 和 Db2 分布式安装,请进入项目文件夹并运行 terraform destroy
。 在这种情况下,terraform destroy
命令不会移除 VPC,因为 VPC 不是用 Terraform 脚本创建的。