你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 上的 SAP 部署自动化框架使用材料清单 (BOM)。 BOM 有助于配置 SAP 系统。
自动化框架的 GitHub 存储库包含一组可用于入门的示例 BOM。 还可以为其他 SAP 应用程序和数据库创建 BOM。
如果要生成包含固定链接的 BOM,请按照创建此类 BOM 的步骤进行操作。
注意
本指南介绍高级部署主题。 有关如何部署自动化框架的基本说明,请参阅入门指南。
先决条件
- 获取、下载并准备好 SAP 安装介质和相关文件(如果尚未这样做)。
- Azure 存储帐户中的 SAP 应用程序 (DB) 或 HANA 介质。
- 用于处理 BOM 文件的 YAML 编辑器。
- 适用于:
- SAP 中心服务 (SCS)
- SAP 主应用程序服务器 (PAS)
- SAP 附加应用程序服务器 (AAS)
- 将所需的堆栈文件下载到你创建用于获取 SAP 介质的文件夹中。 有关详细信息,请参阅基本 BOM 准备操作指南。
- SAP 下载篮清单 (
DownloadBasket.json
) 的副本,已下载到创建用于获取 SAP 介质的文件夹中。- 安装 Postman 实用工具。
- Azure 订阅。 如果你还没有 Azure 订阅,可以创建一个免费帐户。
- 有权处理你要使用的数据库的 SAP 帐户。
- 运行 Linux 类型命令以验证 BOM 的系统。 在系统上安装命令
yamllint
和ansible-lint
。
已编写脚本的创建过程
此过程会自动执行与手动 BOM 创建过程相同的步骤。 使用此过程之前,请查看脚本限制。
导航到堆栈文件文件夹。
cd stackfiles
运行 BOM 生成脚本。 将示例路径替换为实用工具文件夹的正确路径。 例如:
cd ~/Azure_SAP_Automated_Deployment/deploy/scripts/generate_bom.sh >../bom.yml
对于产品参数 (
product
),请输入 SAP 产品名称。 例如,SAP_S4HANA_1809_SP4
。 如果未输入值,则该脚本将尝试从堆栈 XML 文件确定名称。打开生成的
bom.yml
文件进行检查。查看模板部分 (
templates
)。 请确保file
和override_target_location
值正确。 如有必要,请编辑并注释禁止这些行。 例如:templates: # - name: "S4HANA_2020_ISS_v001 ini file" # file: S4HANA_2020_ISS_v001.inifile.params # override_target_location: "{{ target_media_location }}/config"
查看堆栈文件部分 (
stackfiles
)。 请确保项名称和文件正确。 如有必要,请编辑这些行。
脚本限制
已编写脚本的 BOM 创建过程有以下限制。
脚本具有 HANA2 上的硬编码依赖项。 手动编辑 BOM 文件,以匹配所需的依赖项名称。 例如:
dependencies:
- name: "HANA2"
介质参数 override_target_filename:
、override_target_location
和 version:
没有默认值。 手动编辑 BOM 文件以更改这些参数。 例如:
- name: SAPCAR
archive: SAPCAR_1320-80000935.EXE
override_target_filename: SAPCAR.EXE
- name: "SWPM20SP07"
archive: "SWPM20SP07_2-80003424.SAR"
override_target_filename: SWPM.SAR
sapurl: "https://softwaredownloads.sap.com/file/0020000001812632020"
此脚本只为 SAP 维护计划程序所标识的介质文件生成条目。 之所以会出现此限制,是因为它处理堆栈 .xsl
文件。 如果单独将任何文件添加到下载篮,如通过 SAP Launchpad,则必须手动将这些文件添加到 BOM。
手动创建过程
可以通过以下手动过程创建 BOM。 另一种方法是使用已编写脚本的创建过程来执行相同的步骤。
打开创建用于获取 SAP 介质的下载文件夹
创建一个名为
bom.yml
的空 YAML 文件。在编辑器中打开
bom.yml
。添加带有生成和目标名称的 BOM 标头。
name
值必须与存储帐户中的 BOM 文件夹名称相同。 例如:name: 'S4HANA_2020_ISS_v001' target: 'ABAP PLATFORM 2020'
添加具有目标位置的默认部分。 使用目标服务器上要在其中复制安装文件的文件夹的路径。 通常,使用
{{ target_media_location }}
,如下所示:defaults: target_location: "{{ target_media_location }}/download_basket"
添加产品标识符部分。 稍后将这些值作为模板准备的一部分进行填充。 例如:
product_ids: scs: db: pas: aas: web:
添加材料部分以指定所需材料的列表。 添加此部分中其他 BOM 的任何依赖项。 例如:
materials: dependencies: - name: HANA2
获取要包含在 BOM 中的介质列表。
打开下载篮电子表格。 此文件呈现为 XML。
如有必要,将 XML 内容设置为可人工读取的格式。
对于下载篮中的每个项,请注意
String
和Number
数据。String
数据提供文件名(例如igshelper_17-10010245.sar
)和易懂说明(例如SAP IGS Fonts and Textures
)。 你将在 BOM 中的每个条目后记录Number
数据。
将介质列表添加到
bom.yml
。 但这些项的顺序并不重要,你可能希望将相关项组合在一起以提高可读性。 单独添加SAPCAR
,即使 SAP 下载篮包含此实用工具。 例如:media: - name: SAPCAR archive: SAPCAR_1320-80000935.EXE name: "SAP IGS Fonts and Textures" archive: "igshelper_17-10010245.sar" # 61489 <...>
(可选)如果需要替代目标介质位置,请将参数
override_target_location
添加到介质项。 例如,override_target_location: "{{ target_media_location }}/config"
。添加空白模板部分。
templates:
创建堆栈文件部分。 例如:
stackfiles: - name: Download Basket JSON Manifest file: downloadbasket.json - name: Download Basket Spreadsheet file: MP_Excel_2001017452_20201030_SWC.xls
保存对
bom.yml
的更改。
固定链接
可以自动生成正常运行的基本 BOM。 但是,默认情况下,BOM 不会创建指向 SAP 介质的永久 URL(固定链接)。 若要创建固定链接,需要在获取 SAP 介质之前执行更多步骤。
注意
手动生成带有固定链接的完整 SAP BOM 所需的时间大约是手动准备基本 BOM 的两倍。
若要生成带有固定链接的 BOM:
在编辑器中打开
DownloadBasket.json
。对于每个结果,请注意
Value
行的内容。 例如:"Value": "0020000000703122018|SP_B|SAP IGS Fonts and Textures|61489|1|20201023150931|0"
复制以竖线分隔的第一个值和第四个值。
第一个值是文件编号。 例如,
0020000000703122018
。第四个值是将用于与介质列表匹配的数字。 例如,
61489
。(可选)复制表示文件类型的第二个值。 例如,
SP_B
用于内核二进制文件,SPAT
用于非内核二进制文件,CD
用于数据库导出。
使用第四个值作为键,将下载篮与介质列表相匹配。 将值(例如
61489
)与添加为介质项注释的值(例如# 61489
)相匹配。对于
bom.yml
中的每个匹配条目,为 SAP URL 添加一个新值。 对于 URL,使用https://softwaredownloads.sap.com/file/
加上该项的第三个值(例如0020000000703122018
)。 例如:- name: "SAP IGS Fonts and Textures" archive: "igshelper_17-10010245.sar" sapurl: "https://softwaredownloads.sap.com/file/0020000000703122018"
示例 BOM 文件
以下示例是 S/4HANA 1909 SP2 的示例 BOM 文件的一小部分。
step|BOM Content
---
name: 'S4HANA_2020_ISS_v001'
target: 'ABAP PLATFORM 2020'
defaults:
target_location: "{{ target_media_location }}/download_basket"
product_ids:
scs:
db:
pas:
aas:
web:
materials:
dependencies:
- name: HANA2
media:
- name: SAPCAR
archive: SAPCAR_1320-80000935.EXE
- name: SWPM
archive: SWPM20SP06_6-80003424.SAR
- name: SAP IGS HELPER
archive: igshelper_17-10010245.sar
- name: SAP HR 6.08
archive: SAP_HR608.SAR
- name: S4COREOP 104
archive: S4COREOP104.SAR
templates:
- name: "S4HANA_2020_ISS_v001 ini file"
file: S4HANA_2020_ISS_v001.inifile.params
override_target_location: "{{ target_media_location }}/config"
stackfiles:
- name: Download Basket JSON Manifest
file: downloadbasket.json
override_target_location: "{{ target_media_location }}/config"
- name: Download Basket Spreadsheet
file: MP_Excel_2001017452_20201030_SWC.xls
override_target_location: "{{ target_media_location }}/config"
- name: Download Basket Plan doc
file: MP_Plan_2001017452_20201030_.pdf
override_target_location: "{{ target_media_location }}/config"
- name: Download Basket Stack text
file: MP_Stack_2001017452_20201030_.txt
override_target_location: "{{ target_media_location }}/config"
- name: Download Basket Stack XML
file: MP_Stack_2001017452_20201030_.xml
override_target_location: "{{ target_media_location }}/config"
- name: Download Basket permalinks
file: myDownloadBasketFiles.txt
override_target_location: "{{ target_media_location }}/config"
验证 BOM
可以从运行 Linux 类型命令的任何 OS 验证 BOM 结构。 对于 Windows,请使用适用于 Linux 的 Windows 子系统 (WSL)。 如果存在 BOM 文件的副本,也可以选择从部署程序运行验证。
从包含 BOM 的目录中运行验证脚本
check_bom.sh
。 例如:cd ~/Azure_SAP_Automated_Deployment/deploy/scripts/check_bom.sh bom.yml
查看输出。
验证成功
验证成功将显示以下输出。 已在先决条件中安装了 yamllint
和 ansible-lint
命令。
... yamllint [ok]
... ansible-lint [ok]
... bom structure [ok]
验证失败
验证失败将包含错误信息。 例如:
../documentation/ansible/system-design-deployment/examples/S4HANA_2020_ISS_v001/bom_with_errors.yml
178:16 error too many spaces after colon (colons)
179:16 error too many spaces after colon (colons)
180:16 error too many spaces after colon (colons)
... yamllint [errors]
... ansible-lint [ok]
- Expected to find key 'defaults' in 'bom' (Check name: S4HANA_2020_ISS_v001)
- Unexpected key 'default in 'bom' (Check name: S4HANA_2020_ISS_v001)
- Unexpected key 'overide_target_location in 'bom.materials.stackfiles' (Check name: Download Basket Stack text)
... bom structure [errors]
上传 BOM
若要将 BOM 与固定链接一起使用:
登录 Azure 门户。
在“Azure 服务”下选择“资源组”。 或者,在搜索栏中输入
resource groups
。选择 SAP 库的资源组。
在资源组页上,选择“资源”选项卡中的
saplib
存储帐户。在存储帐户页的菜单中,选择“数据存储”下的“容器” 。
选择
sap bits
容器。在容器页上,上传存档和工具。
选择“上传”按钮。
选中“选择文件”。
导航到之前创建的下载目录。