在 IBM Cloud® VPC(Terraform)上部署 SAP AnyDB (非 SAP HANA )2 层和 3 层分布式架构
IBM Cloud® 上的 Terraform 可对 IBM Cloud VPC 基础架构资源进行可预测和一致的调配,从而使您能够快速构建复杂的云环境。IBM Cloud VPC 基础架构由使用英特尔至强 CPU 和其他英特尔技术的 SAP 认证硬件组成。
有关 Terraform on IBM Cloud 的更多信息,请参见 Terraform on IBM Cloud 入门教程。
要使用 Terraform 创建资源,需要使用 Terraform 配置文件来描述所需的 IBM Cloud 资源以及配置方式。 Terraform 会根据配置创建执行计划,并描述创建资源时需要运行的操作。 您可以查看执行计划、更改计划或运行计划。 当你更改配置时,IBM Cloud 上的 Terraform 可以确定更改了哪些配置,并创建增量执行计划,你可以将其应用于现有的 IBM Cloud 资源。
脚本文件
配置和脚本文件在 GitHub 软件源中提供。https://github.com/IBM-Cloud/sap-infra-anydb-distributed.
对于 SAP 的 2 层和 3 层 VPC,您可以修改 input.auto.tfvars
文件,为您的解决方案定制资源。 您可以指定区域、资源名称和 SSH 密钥。
所有其他配置文件均已提供,无需修改。
IBM Cloud Provider plug-in for Terraform on IBM Cloud 使用这些配置文件在 IBM Cloud 账户中配置 VPC。
创造了什么
VPC 是 IBM Cloud 中的一个私有空间,您可以在其中运行一个具有自定义网络策略的隔离环境。 脚本会使用您定义的变量为您配置以下 VPC 基础设施资源:
- 1 配置虚拟服务器实例的 VPC。
- 1 个安全组和该安全组的规则,以允许虚拟服务器实例的 DNS 和 SSH 连接以及所有出站流量。
- 1 个子网,在 VPC 中启用联网。
- 2 个虚拟服务器实例(1 个 SAP App VSI 和 1 个 DB(anydb) 实例服务器 VSI)。
- 2 个存储卷,1 个用于交换,1 个用于数据,用于 SAP app VSI;4 个存储卷,1 个用于交换,3 个用于数据,用于 DB VSI。
VSI 配置了 Red Hat Enterprise Linux 8.x for SAP Applications ( amd64 ) 和 Suse Enterprise Linux 15 ( amd64 ),它们至少有一个 SSH 密钥,被配置为以根用户身份访问。 VSI 有以下存储卷:
DB 虚拟服务器实例磁盘:
- 1x 40 GB 磁盘,10 IOPS / GB - SWAP - 1 x 32 GB 磁盘,10 IOPS / GB - 数据(数据库日志)
- 1x 64 GB 磁盘,10 IOPS / GB - 数据(数据库存档日志)
- 1 x 128/256 GB 磁盘,每 GB 10 IOPS - 数据
SAP 应用虚拟服务器实例磁盘:
- 1x 40 GB 硬盘,10 IOPS / GB - SWAP - 1 x 128 GB 磁盘,10 IOPS / GB - 数据
支持
IBM® 不对这些材料提供任何形式的保证,也不提供任何服务或技术支持。建议您在实际系统中使用从本网站下载的任何资料之前,先仔细检查这些资料。
虽然此处提供的材料未得到 IBM 服务组织的支持,但开发人员欢迎您提出意见,并保留随时修改、重新调整或删除材料的权利。 要报告问题或提供建议或意见,请打开 GitHub 问题。
准备工作
-
如果未安装 Terraform,请 安装 Terraform CLI 和 IBM Cloud Provider 插件。
如果使用的是 Terraform 0.13 及更高版本,则无需安装 IBM Cloud Provider 插件。 您可以修改 1-Tier VPC for SAP GitHub 资源库中提供的配置文件,以指定要使用的插件版本。
如果使用的是 Terraform 1.12.x 及更早版本,请按照 IBM Cloud Provider Plug-in 安装说明 进行操作。 不要配置插件。
无需对 IBM Cloud Provider Plug-in 进行任何配置,因为这些文件已为您提供。
-
创建或检索 IBM Cloud API 密钥。 API 密钥用于与 IBM Cloud 平台进行身份验证,并确定您使用 IBM Cloud 服务的权限。
-
创建或获取 SSH 密钥 ID。 您需要的是 SSH 密钥的 40 位 UUID,而不是 SSH 密钥名称。
过程
使用以下步骤配置 IBM Cloud Provider 插件,并使用 Terraform 为 SAP 创建 VPC。
-
在 Terraform 安装文件夹中创建项目文件夹,并将目录更改为项目文件夹。
mkdir myproject && cd myproject
-
将文件从 https://github.com/IBM-Cloud/sap-infra-anydb-distributed/tree/main 中的文件复制到 Terraform 安装目录下创建的项目文件夹中。
-
编辑
input.auto.tfvars
文件,自定义解决方案。 修改文件以指定 VPC 名称、子网、安全组、主机名、配置文件、映像、SSH 密钥和磁盘大小。 您必须修改:- VPC - 唯一的 VPC 名称。
- SECURITYGROUP - 将 ic4sap 更改为 VPC 名称。
- SUBNET - 将 ic4sap 更改为 VPC 名称。
- DB/APP HOSTNAME(主机名)- 输入主机名,最多 13 个字符。 更多信息,请参阅 README 文件。
对于磁盘大小,会创建所需大小的卷,并附加到 VSI 上。 加密卷的大小以列表形式定义在 VOLUME_SIZES 变量中,每个值指定一个加密卷的容量,单位为 GB。
该文件需要 40 位 SSH 密钥 ID。 第二个 SSH 密钥是可选的。
有关配置文件的更多选项,请参阅 实例配置文件。 有关图像的更多选项,请参阅 图像。
# General VPC variables: REGION = "eu-de" # default value ZONE = "eu-de-2" # default value VPC = "ic4sap" SECURITYGROUP = "ic4sap-securitygroup" SUBNET = "ic4sap-subnet" SSH_KEYS = [ "r010-57bfc315-f9e5-46bf-bf61-d87a24a9ce7a" , "r010-3fcd9fe7-d4a7-41ce-8bb3-d96e936b2c7e" ] DB_PROFILE = "bx2-4x16" APP_PROFILE = "bx2-4x16" DB_IMAGE = "ibm-redhat-8-6-amd64-sap-applications-4" APP_IMAGE = "ibm-redhat-8-6-amd64-sap-applications-4" # SAP Database VSI variables: DB_HOSTNAME = "ep12db" DB_VOLUME_SIZES = [ "40" , "32" , "64" , "128" ] # SAP APPs VSI variables: APP_HOSTNAME = "ep12app" # default value APP_VOLUME_SIZES= [ "40" , "128" ]
参数 描述 區域 部署解决方案的云区域。 这里 列出了 VPC 的区域和分区。 ZONE 部署解决方案的云区。 VPC VPC 的名称。 VPC 列表可 在此处获取。 安全组 安全组的名称。 安全组列表请 点击此处 SUBNET 子网名称。 子网列表请 点击此处 DB_PROFILE 用于 VSI 的剖面图。 请点击此处查看简介列表。 APP_PROFILE 用于 VSI 的剖面图。 请点击此处查看简介列表。 DB_IMAGE 用于 VSI 的操作系统映像。 请 点击此处查看图片列表。 应用程序图像 用于 VSI 的操作系统映像。 请 点击此处查看图片列表。 ssh_keys 允许以根用户身份 SSH 访问 VSI 的 SSH 密钥 ID 列表。 可以包含一个或多个标识。 这里有 SSH 密钥列表。 [db/app_hostname] VSI 的主机名。 根据 SAP的要求,主机名最多不得超过 13 个字符。 有关 SAP 系统主机名规则的更多信息,请参阅 SAP Note 611361 - Hostnames of SAP ABAP Platform servers。 -
初始化 Terraform CLI。
terraform init
-
创建 Terraform 执行计划。 Terraform 执行计划总结了在账户中创建 VPC 实例的所有操作。
terraform init
-
验证计划是否显示了要创建的所有资源,名称和值是否正确。 如果计划需要调整,请编辑
input.auto.tfvars
文件以修正资源,然后再次运行terraform plan
。 -
在 IBM Cloud 中为 SAP 实例创建 VPC 和 IAM 访问策略。
terraform apply
创建 VPC 和组件后,您会看到与 terraform 计划输出类似的输出。
这种自动化是免费提供的,但提供的基础设施需要付费。
后续步骤
如果在创建资源后需要重新命名,请修改 input.auto.tfvars
文件以更改名称,然后再次运行 terraform plan
和 terraform apply
。 创建 VPC 后,请勿使用 IBM Cloud 控制面板和用户界面修改 VPC。 Terraform 脚本创建的是一个完整的解决方案,使用用户界面有选择地修改资源可能会导致意想不到的结果。
如果需要移除 VPC,请进入项目文件夹并运行 terraform destroy
。