IBM Cloud Docs
在 3 层 IBM Cloud® VPC 上部署 SAP NetWeaver 7.x 和 Db2 (Terraform 和 Ansible )

在 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 资源库中都有自己的文件夹:

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 个小时才能完成。

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

  2. 单击创建工作空间

  3. 指定模板页面:

    • 输入您计划部署的代码的 GitHub URL。
    • 选择 README 文件中列出的 Terraform 版本
    • 单击下一步
  4. 工作区详细信息页面:

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

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

    • 您的应用程序接口密钥
    • 本地计算机上的 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 文件的 "输入参数文件 "中将其标记为 "敏感 "参数)。

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

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

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

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

使用 Terraform 和 bastion 服务器 CLI 部署 SAP NetWeaver 7.x 和 Db2 3-tier

使用以下步骤配置 IBM Cloud Provider 插件,并使用 Terraform 在现有 VPC 上安装带有 Db2 3-tier 的 SAP NW 7.x。 脚本需要 1-2 个小时才能完成。

  1. 访问 bastion 服务器 CLI。

  2. https://github.com/IBM-Cloud/sap-netweaver-abap-db2-distributedcd 中的解决方案资源库克隆到 sap-netweaver-abap-db2-distributed 文件夹。

    git clone https://github.com/IBM-Cloud/sap-netweaver-abap-db2-distributed.git
    
    cd sap-netweaver-abap-db2-distributed
    
  3. 指定您的 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.
    
  4. 自定义 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_dirkit_db2_dirkit_db2client_dir 文件。 Ansible 解压 工具包的其他文件。SAP 更多信息,请参阅 README 文件

  5. 初始化 Terraform CLI/

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

    terraform plan --out plan1
    

    您必须输入 SAP 主密码和 API 密钥。

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

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

  8. 在 IBM Cloud 中为 SAP 实例和 IAM 访问策略创建虚拟私有云。

    terraform apply "plan1"
    

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

  9. 将 SAP 凭据和虚拟服务器实例 IP 添加到 SAP GUI。 有关 SAP GUI 的更多信息,请参阅 SAP GUI

后续步骤

如果在创建资源后需要重新命名,请修改 input.auto.tfvars 文件以更改名称,然后再次运行 terraform planterraform apply。 创建 VPC 后,请勿使用 IBM Cloud 控制面板和用户界面修改 VPC。 Terraform 脚本创建的是一个完整的解决方案,使用用户界面有选择地修改资源可能会导致意想不到的结果。

如果需要移除 SAP NetWeaver 7.x 和 Db2 分布式安装,请进入项目文件夹并运行 terraform destroy。 在这种情况下,terraform destroy 命令不会移除 VPC,因为 VPC 不是用 Terraform 脚本创建的。