7.. 生成配置文件

预计完成时间:3 天

可操作组件所有者:INV

技能配置文件:部署工程师

需要使用 cellconfig 来引导启动 Google Distributed Cloud (GDC) 经过网闸隔离的实例。它定义了 Distributed Cloud API 对象的初始集,包括实例硬件设备和网络配置。

cellconfig 的格式为一组 Kubernetes 自定义资源,这些资源整理在 YAML 文件目录中。

如需运行 gdcloud CLI 命令,您必须在 /root 文件夹中创建一个工作目录,并使用以下命令更改 $PATH 变量:

PATH=$PATH:/root/WORKING_DIRECTORY

7.1. 概览

如需创建 Distributed Cloud cellconfig,请执行以下步骤:

  1. 验证是否收到硬件设备规范文件:devices.csv
  2. 验证是否收到网络布线规范文件:cables.csv
  3. 生成客户输入问卷 (CIQ) 文件:ciq.yaml
  4. 生成实例 Secret 文件:secrets.yaml。
  5. 验证设备许可目录是否已收到:licenses/
  6. 运行 gdcloud system assets create 命令并使用上述输入来创建 cellconfig。

devices.csv(设备标识)文件之前称为 deid.csv 文件。您可以使用 gdcloud system assets format-deid 命令将之前的文件转换为新文件格式。

7.1.1. devices.csv

devices.csv 文件用于指定分布式云实例中的所有硬件设备。 如需详细了解该文件及其预期格式,请参阅 devices.csv 文档

7.1.2. cables.csv

cables.csv 文件详细说明了分布式云实例中硬件设备之间的所有连接。如需详细了解该文件及其预期格式,请参阅 cables.csv 文档

根据 ciq 中指定的设置,修改 cables.csv 文件中指定的数据连接集。

首先,确定所需的数据上行链路数量:

  • 每个边界叶交换机都需要 2 个上行链路(总共 4 个),以便所有 Distributed Cloud 实例都能连接到客户数据网络。
  • 如果配置了与本地 OCIT 实例的连接,则每个边界 Leaf 交换机需要 2 条上行链路(总共 4 条)。
  • 每个边界 Leaf 交换机都需要 2 个上行链路(总共 4 个),以实现远程 OIC 连接。

接下来,确定所需的管理上行链路数量。

  • 如果配置了与本地 OIC 实例的连接,则每个管理聚合交换机需要 2 条上行链路(总共 4 条)。
  • 如果配置了与远程 OCIT 的连接,则每个管理聚合交换机需要 2 个上行链路(总共 4 个)。

例如,如果当前分布式云实例连接到本地 OCIT、使用多区域互联与其他分布式云实例对等互联,并且还连接到远程 OCIT 实例,则:

  • 每个边界 Leaf 交换机需要 6 个上行链路(总共 12 个数据上行链路)
  • 每个管理聚合交换机需要 4 条上行链路(总共 8 条管理上行链路)

每个外部连接包含两根电缆,对应于 cables.csv 中的两行:

  • 一根线缆,用于将交换机连接到与交换机位于同一机架中的配线架背面。例如:
    • 36,kb-ab-aggsw01,Eth1/31,41,kb-ab-ppl01,c4-smf-port1-bk,(1) R8T17A + (1) R8S79A,(1) QSFP-100G-CWDM4-S + (1) F92ERQ1Q1SNM001,1 meter,,SMF,flag,Right,Link to Customer Border 05 (100G),back,kb-ab-aggsw01:Eth1/31<>kb-ab-ppl01:c4-smf-port1-bk
    • 对于此连接,配线架设备的端口必须带有 -bk 后缀。
  • 一根从配线架正面连接到“伪”外部设备的线缆
    • 36,kb-ab-ppl01,c4-smf-port1-ft,41,ext-kb-ab-aggsw01,Eth1/31,(1) R8T17A + (1) R8S79A,(1) QSFP-100G-CWDM4-S + (1) F92ERQ1Q1SNM001,1 meter,,SMF,flag,Right,Link to Customer Border 05 (100G),front,kb-ab-ppl01:c4-smf-port1-ft<>ext-kb-ab-aggsw01:Eth1/31
    • 对于此连接,配线架设备的端口必须与第一个连接中的端口相同,但后缀为 -ft 而不是 -bk
    • 对于此连接,“伪”外部设备的名称必须遵循以下格式:ext-<name-of-originating-switch>
    • 对于此连接,“伪”外部设备的端口必须与交换机上的原始端口相匹配。

统计所需的上行链路连接总数,并确保 cables.csv 输入文件包含两个边界叶交换机和两个管理聚合交换机上所有必需的上行链路连接的线缆规格。

如果需要添加新的上行链路连接,请执行以下操作:

  1. 找到配线面板上未使用的端口。
  2. 为所需的上行链路连接添加新的线缆规格。
  3. 在 Distributed Cloud 实例上安装新线缆,以建立新的上行链路连接。

7.1.3. ciq.yaml

ciq.yaml 文件包含配置分布式云实例所需的所有客户环境详细信息。如需详细了解该文件及其预期格式,请参阅 ciq.yaml 文档

7.1.4. secrets.yaml

secrets.yaml 包含 Distributed Cloud 实例 Secret。 使用上述输入生成初始 secrets.yaml 文件模板。

gdcloud system assets generate-secrets-template \
  --devices ./devices.csv \
  --cables ./cables.csv \
  --ciq ./ciq.yaml \
  --output ./secrets.yaml

您需要更新 secrets.yaml,将所有 TO-BE-FILLED 值替换为您想为每部设备使用的密码。确保密码至少包含 8 个字符。

7.1.5. 许可/

licenses/ 目录包含分布式云实例的硬件和软件基础架构组件的所有许可。 如需查看有关该目录及其预期格式的完整说明,请参阅许可文档

7.1.6. 创建 cellconfig

使用上述所有输入创建 cellconfig:

gdcloud system assets create \
  --devices ./devices.csv \
  --cables ./cables.csv \
  --ciq ./ciq.yaml \
  --license-dir ./licenses/ \
  --secrets secrets.yaml \
  --output ./output

如需了解详情,请参阅 INV-E1001 或相关错误代码的 Runbook。

如需验证是否存在开关不正确的问题,请运行以下命令:

gdcloud system preinstall install --config <cellcfg> --config-file-only

7.2. 潜在问题

7.2.1. 注意单元格配置中的单元格 ID

简而言之:有时 devices.csvcables.csv 具有错误的单元格标识符,因此生成的单元格配置文件包含错误的资源名称。

解决方法:检查单元格配置文件,确保资源名称的前缀与预期的一致。

示例:如果 cell 标识符为 ai,则所有资源名称都必须以 ai- 开头。如果其中一些具有不同的前缀,则表示存在问题,您必须提前解决。

7.2.2. 缺少防火墙 MAC 地址

简而言之:从 HPE 收到的 devices.csv 文件中缺少 Palo Alto 防火墙的 MAC 地址。

临时解决方法:

如果是首次访问,请使用默认凭据访问 Palo Alto 设备。

如果未提供凭据,请按照此 Palo Alto 指南设置凭据。

访问完成后,运行以下命令以获取设备的 MAC 地址,并将其添加到 devices.csv 文件中的 nic3mac 列:

show system info

7.2.3. 缺少 HSM MAC 地址

总结:从 HPE 收到的 devices.csv 文件中缺少 HSM 设备的 MAC 地址。

解决方法(针对每个 HSM 设备):

  1. 通过串行控制台登录设备。

  2. 确定管理网络接口的 MAC 地址。

    ip -brief link \
        | grep --color=never '^e' \
        | grep -v DOWN \
        | grep -o -E --color=none '([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}' \
        | grep -vf <(nmcli \
            | grep i40e \
            | cut -d "," -f 2 \
            | sed -e 's/^[[:space:]]*//' \
            | sed 's/[A-Z]/\L&/g'))
    

    以下示例展示了运行命令后获得的示例 MAC 地址的输出:

    ksadmin@ciphertrust:~$ ip -brief link \
        | grep --color=never '^e' \
        | grep -v DOWN \
        | grep -o -E --color=none '([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}' \
        | grep -vf <(nmcli \
            | grep i40e \
            | cut -d "," -f 2 \
            | sed -e 's/^[[:space:]]*//' \
            | sed 's/[A-Z]/\L&/g'))
    00:15:b2:b0:3e:80
    
  3. 修改 devices.csv,然后在设备的 nic3mac 列中输入管理 MAC 地址。

  4. 修改 devices.csv,然后在设备的 nic3_MGMT_port_name 列中输入 mgmt0

  5. 确定第一个数据平面网络接口的 MAC 地址。

    export DATA0_MAC=$(nmcli | grep i40e | cut -d "," -f 4 \
      | sed 's/port//g' \
      | sed -e 's/^[[:space:]]*//' \
      | sed 's/[A-Z]/\L&/g' \
      | sed 's/.\{2\}/&:/g' \
      | sed 's/:$//g' \
      | sort | head -1); echo ${DATA0_MAC}
    
  6. 修改 devices.csv,然后在设备的 nic1mac 列中输入 DATA0_MAC 地址。

  7. 修改 devices.csv,然后在设备的 nic1_Data1_port_name 列中输入 data0

  8. 确定第二个数据平面网络接口的 MAC 地址。

    export DATA1_MAC=$(nmcli | grep i40e | cut -d "," -f 4 \
      | sed 's/port//g' \
      | sed -e 's/^[[:space:]]*//' \
      | sed 's/[A-Z]/\L&/g' \
      | sed 's/.\{2\}/&:/g' \
      | sed 's/:$//g' \
      | sort | tail -1); echo ${DATA1_MAC}
    
  9. 修改 devices.csv,然后在设备的 nic2mac 列中输入 DATA1_MAC 地址。

  10. 修改 devices.csv,然后在设备的 nic2_Data2_port_name 列中输入 data1

7.2.4. 对象存储的序列号缺失

总结:从 HPE 收到的 devices.csv 文件中缺少对象存储设备序列号。

解决方法:如果在生成配置时收到类似于 serial number () should be alphanumeric during cellcfg validation 的错误(涉及 xx-ac-objs0n 类型的设备),您必须恢复该设备的序列号。您可以在设备顶部的印刷滑出标签中找到此信息。序列号必须放在 devices.csv 文件的 serial_number 列中。