你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

准备 SAP BOM

Azure 上的 SAP 部署自动化框架使用材料清单 (BOM)。 BOM 有助于配置 SAP 系统。

自动化框架的 GitHub 存储库包含一组可用于入门的示例 BOM。 还可以为其他 SAP 应用程序和数据库创建 BOM。

如果要生成包含固定链接的 BOM,请按照创建此类 BOM 的步骤进行操作

注意

本指南介绍高级部署主题。 有关如何部署自动化框架的基本说明,请参阅入门指南

先决条件

已编写脚本的创建过程

此过程会自动执行与手动 BOM 创建过程相同的步骤。 使用此过程之前,请查看脚本限制

  1. 导航到堆栈文件文件夹。

    cd stackfiles
    
  2. 运行 BOM 生成脚本。 将示例路径替换为实用工具文件夹的正确路径。 例如:

    cd ~/Azure_SAP_Automated_Deployment/deploy/scripts/generate_bom.sh >../bom.yml
    
  3. 对于产品参数 (product),请输入 SAP 产品名称。 例如,SAP_S4HANA_1809_SP4。 如果未输入值,则该脚本将尝试从堆栈 XML 文件确定名称。

  4. 打开生成的 bom.yml 文件进行检查。

  5. 查看模板部分 (templates)。 请确保 fileoverride_target_location 值正确。 如有必要,请编辑并注释禁止这些行。 例如:

    templates:
      # - name:     "S4HANA_2020_ISS_v001 ini file"
      #   file:     S4HANA_2020_ISS_v001.inifile.params
      #   override_target_location: "{{ target_media_location }}/config"
    
  6. 查看堆栈文件部分 (stackfiles)。 请确保项名称和文件正确。 如有必要,请编辑这些行。

脚本限制

已编写脚本的 BOM 创建过程有以下限制。

脚本具有 HANA2 上的硬编码依赖项。 手动编辑 BOM 文件,以匹配所需的依赖项名称。 例如:

dependencies:
  - name: "HANA2"

介质参数 override_target_filename:override_target_locationversion: 没有默认值。 手动编辑 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。 另一种方法是使用已编写脚本的创建过程来执行相同的步骤。

  1. 打开创建用于获取 SAP 介质的下载文件夹

  2. 创建一个名为 bom.yml 的空 YAML 文件。

  3. 在编辑器中打开 bom.yml

  4. 添加带有生成和目标名称的 BOM 标头。 name 值必须与存储帐户中的 BOM 文件夹名称相同。 例如:

    name:    'S4HANA_2020_ISS_v001'
    target:  'ABAP PLATFORM 2020'
    
  5. 添加具有目标位置的默认部分。 使用目标服务器上要在其中复制安装文件的文件夹的路径。 通常,使用 {{ target_media_location }},如下所示:

    defaults:
      target_location: "{{ target_media_location }}/download_basket"
    
  6. 添加产品标识符部分。 稍后将这些值作为模板准备的一部分进行填充。 例如:

    product_ids:
      scs:
      db:
      pas:
      aas:
      web:
    
  7. 添加材料部分以指定所需材料的列表。 添加此部分中其他 BOM 的任何依赖项。 例如:

    materials:
    dependencies:
        - name:     HANA2
    
  8. 获取要包含在 BOM 中的介质列表。

    1. 打开下载篮电子表格。 此文件呈现为 XML。

    2. 如有必要,将 XML 内容设置为可人工读取的格式。

    3. 对于下载篮中的每个项,请注意 StringNumber 数据。 String 数据提供文件名(例如 igshelper_17-10010245.sar)和易懂说明(例如 SAP IGS Fonts and Textures)。 你将在 BOM 中的每个条目后记录 Number 数据。

  9. 将介质列表添加到 bom.yml。 但这些项的顺序并不重要,你可能希望将相关项组合在一起以提高可读性。 单独添加 SAPCAR,即使 SAP 下载篮包含此实用工具。 例如:

    media:
        - name:     SAPCAR
          archive:  SAPCAR_1320-80000935.EXE
    
        name: "SAP IGS Fonts and Textures"
          archive: "igshelper_17-10010245.sar"
          # 61489
    
        <...>
    
  10. (可选)如果需要替代目标介质位置,请将参数 override_target_location 添加到介质项。 例如,override_target_location: "{{ target_media_location }}/config"

  11. 添加空白模板部分。

    templates:
    
  12. 创建堆栈文件部分。 例如:

    stackfiles:
      - name: Download Basket JSON Manifest
         file: downloadbasket.json
    
      - name: Download Basket Spreadsheet
         file: MP_Excel_2001017452_20201030_SWC.xls
    
  13. 保存对 bom.yml 的更改。

可以自动生成正常运行的基本 BOM。 但是,默认情况下,BOM 不会创建指向 SAP 介质的永久 URL(固定链接)。 若要创建固定链接,需要在获取 SAP 介质之前执行更多步骤。

注意

手动生成带有固定链接的完整 SAP BOM 所需的时间大约是手动准备基本 BOM 的两倍。

若要生成带有固定链接的 BOM:

  1. 在编辑器中打开 DownloadBasket.json

  2. 对于每个结果,请注意 Value 行的内容。 例如:

         "Value": "0020000000703122018|SP_B|SAP IGS Fonts and Textures|61489|1|20201023150931|0"
    
  3. 复制以竖线分隔的第一个值和第四个值。

    1. 第一个值是文件编号。 例如,0020000000703122018

    2. 第四个值是将用于与介质列表匹配的数字。 例如,61489

    3. (可选)复制表示文件类型的第二个值。 例如,SP_B 用于内核二进制文件,SPAT 用于非内核二进制文件,CD 用于数据库导出。

  4. 使用第四个值作为键,将下载篮与介质列表相匹配。 将值(例如 61489)与添加为介质项注释的值(例如 # 61489)相匹配。

  5. 对于 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 文件的副本,也可以选择从部署程序运行验证。

  1. 从包含 BOM 的目录中运行验证脚本 check_bom.sh。 例如:

    cd ~/Azure_SAP_Automated_Deployment/deploy/scripts/check_bom.sh bom.yml
    
  2. 查看输出。

验证成功

验证成功将显示以下输出。 已在先决条件中安装了 yamllintansible-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 与固定链接一起使用:

  1. 验证 BOM

  2. 登录 Azure 门户

  3. 在“Azure 服务”下选择“资源组”。 或者,在搜索栏中输入 resource groups

  4. 选择 SAP 库的资源组。

  5. 在资源组页上,选择“资源”选项卡中的 saplib 存储帐户。

  6. 在存储帐户页的菜单中,选择“数据存储”下的“容器” 。

  7. 选择 sap bits 容器。

  8. 在容器页上,上传存档和工具。

    1. 选择“上传”按钮。

    2. 选中“选择文件”。

    3. 导航到之前创建的下载目录。

后续步骤