Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

4.5. コンピュート用のカスタム NIC 設定の作成

以下の手順では、Leaf0、Leaf1、および Leaf2 上のコンピュートノードの YAML 設定を作成します。

手順

  1. カスタムの NIC ディレクトリーに移動します。

    $ cd ~/templates/spine-leaf-nics/
  2. compute0.yaml テンプレートを編集します。
  3. parameters セクションの ControlPlaneSubnetCidr パラメーターおよび ControlPlaneDefaultRoute パラメーターまでスクロールします。これらのパラメーターは、以下のスニペットのようになります。

      ControlPlaneSubnetCidr: # Override this via parameter_defaults
        default: '24'
        description: The subnet CIDR of the control plane network.
        type: string
      ControlPlaneDefaultRoute: # Override this via parameter_defaults
        description: The default route of the control plane network.
        type: string

    Leaf0 に応じてこれらのパラメーターを変更します。

      ControlPlane0SubnetCidr: # Override this via parameter_defaults
        default: '24'
        description: The subnet CIDR of the control plane network.
        type: string
      ControlPlane0DefaultRoute: # Override this via parameter_defaults
        description: The default route of the control plane network.
        type: string
  4. parameters セクションの EC2MetadataIp パラメーターまでスクロールします。このパラメーターは、以下のスニペットのようになります。

      EC2MetadataIp: # Override this via parameter_defaults
        description: The IP address of the EC2 metadata server.
        type: string

    Leaf0 に応じてこれらのパラメーターを変更します。

      Leaf0EC2MetadataIp: # Override this via parameter_defaults
        description: The IP address of the EC2 metadata server.
        type: string
  5. ネットワーク設定のセクションまでスクロールします。このセクションは、以下のスニペットのようになります。

    resources:
      OsNetConfigImpl:
        type: OS::Heat::SoftwareConfig
        properties:
          group: script
          config:
            str_replace:
              template:
                get_file: ../../scripts/run-os-net-config.sh
              params:
                $network_config:
                  network_config:

    スクリプトの場所を絶対パスに変更します。

    resources:
      OsNetConfigImpl:
        type: OS::Heat::SoftwareConfig
        properties:
          group: script
          config:
            str_replace:
              template:
                get_file: /usr/share/openstack-tripleo-heat-templates/network/scripts/run-os-net-config.sh
              params:
                $network_config:
                  network_config:
  6. network_config セクションで、コントロールプレーンとプロビジョニングのインターフェイスを定義します。以下に例を示します。

                  network_config:
                  - type: interface
                    name: nic1
                    use_dhcp: false
                    dns_servers:
                      get_param: DnsServers
                    addresses:
                    - ip_netmask:
                        list_join:
                        - /
                        - - get_param: ControlPlaneIp
                          - get_param: ControlPlane0SubnetCidr
                    routes:
                    - ip_netmask: 169.254.169.254/32
                      next_hop:
                        get_param: Leaf0EC2MetadataIp
                    - ip_netmask: 192.168.10.0/24
                      next_hop:
                        get_param: ControlPlane0DefaultRoute

    この例で使用されているパラメーターは Leaf0 固有の ControlPlane0SubnetCidrLeaf0EC2MetadataIp、および ControlPlane0DefaultRoute です。ルートとして使用されているプロビジョニングネットワーク (192.168.10.0/24) 上の Leaf0 の CIDR の使用方法にも注目してください。

  7. members セクションの各 VLAN には、関連する Leaf0 パラメーターが含まれている必要があります。たとえば、Storage ネットワークの VLAN 情報は、以下のスニペットのようになります。

                    - type: vlan
                      vlan_id:
                        get_param: Storage0NetworkVlanID
                      addresses:
                      - ip_netmask:
                          get_param: Storage0IpSubnet

    ルーティングのパラメーターを定義するセクションを追加します。これには、supernet ルート (ここでは StorageSupernet) およびリーフのデフォルトルート (ここでは Storage0InterfaceDefaultRoute) が含まれます。

                    - type: vlan
                      vlan_id:
                        get_param: Storage0NetworkVlanID
                      addresses:
                      - ip_netmask:
                          get_param: Storage0IpSubnet
                      routes:
                      - ip_netmask:
                          get_param: StorageSupernet
                        next_hop:
                          get_param: Storage0InterfaceDefaultRoute

    StorageInternalApi、および Tenant コントローラーネットワークの VLAN 設定を追加します。

  8. このファイルを保存します。
  9. compute1.yaml を編集して、同じ手順を実施します。変更の一覧は以下のとおりです。

    • ControlPlaneSubnetCidrControlPlane1SubnetCidr に変更します。
    • ControlPlaneDefaultRouteControlPlane1DefaultRoute に変更します。
    • EC2MetadataIpLeaf1EC2MetadataIp に変更します。
    • ネットワーク設定スクリプトを ../../scripts/run-os-net-config.sh から /usr/share/openstack-tripleo-heat-templates/network/scripts/run-os-net-config.sh に変更します。
    • Leaf1 パラメーターを使用するように、コントロールプレーンとプロビジョニングのインターフェイスを変更します。
    • Leaf1 ルートが含まれるように各 VLAN を変更します。

    編集が終わったらファイルを保存してください。

  10. compute2.yaml を編集して、同じ手順を実施します。変更の一覧は以下のとおりです。

    • ControlPlaneSubnetCidrControlPlane2SubnetCidr に変更します。
    • ControlPlaneDefaultRouteControlPlane2DefaultRoute に変更します。
    • EC2MetadataIpLeaf2EC2MetadataIp に変更します。
    • ネットワーク設定スクリプトを ../../scripts/run-os-net-config.sh から /usr/share/openstack-tripleo-heat-templates/network/scripts/run-os-net-config.sh に変更します。
    • Leaf2 パラメーターを使用するように、コントロールプレーンとプロビジョニングのインターフェイスを変更します。
    • Leaf2 ルートが含まれるように各 VLAN を変更します。

    編集が終わったらファイルを保存してください。