4.3. 为叶角色创建自定义 NIC 配置

Red Hat OpenStack Platform (RHOSP) director 创建的每个角色都需要一个唯一的 NIC 配置。完成以下步骤以创建一组自定义 NIC 模板和一个自定义环境文件,用于将自定义模板映射到对应的角色。

先决条件

  • 访问 stack 用户的 undercloud 主机和凭据。
  • 您有一个自定义网络定义文件。
  • 您有一个自定义角色数据文件。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭据文件:

    $ source ~/stackrc
  3. 复制其中一个默认 NIC 模板中的内容,以用作 NIC 配置的自定义模板的基础。

    示例

    在本例中,single-nic-vlans NIC 模板被复制,它将用作 NIC 配置的自定义模板的基础:

    $ cp -r /usr/share/ansible/roles/tripleo_network_config/\
    templates/single-nic-vlans/* /home/stack/templates/spine-leaf-nics/.
  4. 编辑您在上一步中复制的 NIC 模板中的每个 NIC 配置,以反映您的 spine-leaf 拓扑的具体内容。

    示例

    {% set mtu_list = [ctlplane_mtu] %}
    {% for network in role_networks %}
    {{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
    {%- endfor %}
    {% set min_viable_mtu = mtu_list | max %}
    network_config:
    - type: ovs_bridge
      name: {{ neutron_physical_bridge_name }}
      mtu: {{ min_viable_mtu }}
      use_dhcp: false
      dns_servers: {{ ctlplane_dns_nameservers }}
      domain: {{ dns_search_domains }}
      addresses:
      - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }}
      routes: {{ ctlplane_host_routes }}
      members:
      - type: interface
        name: nic1
        mtu: {{ min_viable_mtu }}
        # force the MAC address of the bridge to this interface
        primary: true
    {% for network in role_networks %}
      - type: vlan
        mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
        vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
        addresses:
        - ip_netmask:
            {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
        routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
    {% endfor %}

    提示

    如需更多信息,请参阅 Director 安装和使用 指南中的 自定义网络接口模板

  5. 创建自定义环境文件,如 spine-leaf-nic-roles-map.yaml,其中包含将自定义 NIC 模板映射到每个自定义角色的 parameter_defaults 部分。

    parameter_defaults:
      %%ROLE%%NetworkConfigTemplate: <path_to_ansible_jinja2_nic_config_file>

    示例

    parameter_defaults:
      Controller0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
      Controller1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
      Controller2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
      ComputeLeaf0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
      ComputeLeaf1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
      ComputeLeaf2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
      CephStorage0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
      CephStorage1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
      CephStorage2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'

后续步骤

  1. 请注意自定义 NIC 模板的路径和文件名,以及将自定义 NIC 模板映射到每个自定义角色的自定义环境文件。部署 overcloud 时,您将需要此信息。
  2. 继续下一步 映射单独的网络并设置 control plane 参数

其他资源