第7章 ML2 networking-ansible


本項では、OpenStack Networking (neutron) の networking-ansible ML2 ドライバー、OpenStack Bare Metal (ironic) との統合、およびオーバークラウドでこのドライバーの有効化および設定を行う手順について説明します。

7.1. Modular Layer 2 (ML2) networking-ansible

OpenStack Networking (neutron) に含まれる networking-ansible は、Ansible Engine Networking を使用してネットワークスイッチを管理する ML2 ドライバーです。また、このドライバーは、OpenStack Bare Metal (ironic) と統合して、ベアメタルゲスト用にスイッチポート上の VLAN 設定も行います。つまり、オーバークラウドのデプロイメントプロセスがトリガーとなり、networking-ansible ドライバーが、VLAN neutron ネットワークを使用するベアメタルゲストおよびそれに対応する物理スイッチを設定します。

現在の networking-ansible ドライバーには、以下の機能が備わっています。

  • OpenStack でネットワークを作成する際に、スイッチに VLAN を定義する
  • OpenStack でポートを作成または更新する際に、スイッチ上のアクセスポートに VLAN を割り当てる
  • OpenStack でポートを削除する際に、スイッチ上のアクセスポートから VLAN を削除する

7.2. networking-ansible のネットワーク要件

以下の一覧で、networking-ansible 機能を有効にするためのネットワーク要件の概要を説明します。

  • Ansible Network Automation 対応のネットワークスイッチ。現在、Red Hat では Juniper Networks (Junos) スイッチの使用のみをサポートしています。
  • ネットワークスイッチには、Ansible Network Automation がデバイスと対話できるようにするため、SSH ユーザーも必要です。このユーザーには、スイッチでの特定の権限が必要です。

    • アクセスモード
    • VLAN のポートへの割り当て
    • VLAN の作成

    セキュリティー上の理由から、SSH ユーザーにはスイッチへの管理者アクセス権限を付与しないでください。

  • VLAN を手動で管理する場合、スイッチが使用する VLAN を準備します。そのためには、それぞれのスイッチポートの VLAN を作成します。この要件は、networking-ansible 機能を有効にする際の manage_vlans オプションに基づいています。
  • ベアメタルゲスト用に予約済みのネットワークスイッチポートは、初めに、イントロスペクション専用のネットワークに接続するよう設定する必要があります。これ以外では、これらのポートに追加設定は必要ありません。

7.3. networking-ansible 用の Openstack Bare Metal (ironic) の要件

networking-ansible ドライバーは、Openstack Bare Metal (ironic) サービスと統合します。正常に統合するためには、以下の推奨事項に従ってオーバークラウドに ironic サービスをデプロイします。

  • オーバークラウドには、プロビジョニングネットワークが必要です。以下のいずれかのオプションを使用します。

    • Ironic サービス用のブリッジネットワーク。
    • Ironic サービス用のカスタムコンポーザブルネットワーク。

    プロビジョニングネットワークのその他の設定例については、「3章Bare Metal サービスを有効にしたオーバークラウドのデプロイ」を参照してください。

  • オーバークラウドには、プロビジョニングプロセスの後に使用するベアメタルシステム用のテナントネットワークが必要です。本ガイドの例では、br-baremetal という名前のブリッジにマッピングされた、デフォルトの baremetal ネットワークを使用します。このネットワークには、VLAN ID の範囲も必要です。以下の Heat パラメーターセットは、本ガイドの例に合わせてこれらの値を設定します。

    parameter_defaults:
      NeutronNetworkVLANRanges: baremetal:1200:1299
      NeutronFlatNetworks: datacentre,baremetal
      NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal
    Copy to Clipboard Toggle word wrap

OpenStack Bare Metal (ironic) のデプロイについての詳しい情報は、「3章Bare Metal サービスを有効にしたオーバークラウドのデプロイ」を参照してください。

7.4. networking-ansible ML2 機能の有効化

この手順では、オーバークラウドで networking-ansible ML2 ドライバーを有効にする方法を説明します。この設定では、デプロイメントに 2 つの環境ファイルを追加する必要があります。

/usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ansible.yaml
このファイルは、networking-ansible ドライバーを有効にし、ネットワーク種別を vlan に設定します。このファイルは、コア Heat テンプレートコレクションにすでに存在します。
/home/stack/templates/ml2-ansible-hosts.yaml
このファイルには、スイッチの詳細情報が含まれます。このファイルは手動で作成します。

手順

  1. /home/stack/templates/ml2-ansible-hosts.yaml を作成し、以下の初期コンテンツを追加します。

    parameter_defaults:
      ML2HostConfigs:
    Copy to Clipboard Toggle word wrap
  2. 環境内の各スイッチ用に、ML2HostConfigs パラメーターに dict 定義を追加します。それぞれの dict キーはスイッチの名前で、OpenStack Networking (neutron) ML2 設定の特定の ansible:[switchname] セクションを定義します。各スイッチの dict 値には、スイッチの詳細情報が含まれます。たとえば、スイッチを 3 つ設定するには、ML2HostConfigs パラメーターにスイッチキーを 3 つ追加します。

    parameter_defaults:
      ML2HostConfigs:
        switch1:
          [SWITCH DETAILS]
        switch2:
          [SWITCH DETAILS]
        switch3:
          [SWITCH DETAILS]
    Copy to Clipboard Toggle word wrap
  3. それぞれのスイッチの dict に、以下のキー/値のペアを含めます。

    ansible_network_os
    (必須) スイッチのオペレーティングシステム。現在、Red Hat では Junos のみをサポートしています。
    ansible_host
    (必須) スイッチの IP またはホスト名
    ansible_user
    (必須) Ansible がスイッチにアクセスする際に使用するユーザー
    ansible_ssh_pass
    (必須) Ansible がスイッチにアクセスするために使用する SSH パスワード
    mac
    ネットワークデバイスのシャーシ MAC ID。これを使用して、Link Layer Discovery Protocol (LLDP) MAC アドレス値を、ML2HostConfigs 設定で定義されたスイッチ名にマッピングします。
    manage_vlans
    OpenStack Networking (neutron) が物理デバイス上の VLAN の作成と削除を制御するかどうかを定義するブール型変数。この機能によって、スイッチは各 Neutron ネットワークに対応する ID を持つ VLAN を作成および削除します。スイッチにこれらの VLAN が事前定義されていて、Neutron でスイッチに VLAN を作成したり削除したりする必要がない場合は、このパラメーターを false に設定します。デフォルト値は true です。
  4. 以下の例は、全 ML2HostConfigs パラメーターで、これらの値を対応するキーにマッピングする方法を示しています。

    parameter_defaults:
      ML2HostConfigs:
        switch1:
          ansible_network_os: junos
          ansible_host: 10.0.0.1
          ansible_user: ansible
          ansible_ssh_pass: "p@55w0rd!"
          mac: 01:23:45:67:89:AB
          manage_vlans: false
    Copy to Clipboard Toggle word wrap
  5. /home/stack/templates/ml2-ansible-hosts.yaml ファイルを保存します。
  6. オーバークラウドのデプロイメントコマンドの実行時に、-e オプション指定して /usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ansible.yaml/home/stack/templates/ml2-ansible-hosts.yaml ファイルを追加します。

    $ openstack overcloud deploy --templates \
      ...
      -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ansible.yaml \
      -e /home/stack/templates/ml2-ansible-hosts.yaml \
      ...
    Copy to Clipboard Toggle word wrap

director は、neutron_api コンテナーの OpenStack Networking (neutron) API の一部としてドライバーを有効にします。

7.5. networking-ansible 用ネットワーク設定

Bare Metal Provisioning および networking-ansible ドライバーを有効にしてオーバークラウドをデプロイしたら、ベアメタルノード用に以下のネットワークを作成します。

プロビジョニングネットワーク
ベアメタルシステムは、このネットワークを初期作成に使用します。
テナントネットワーク
ベアメタルシステムは、プロビジョニング後にこのネットワークに切り替え、このネットワークを内部通信に使用します。

手順

  1. プロビジョニングネットワークおよびサブネットを作成します。この操作は、使用しているプロビジョニングネットワークの種別により異なります。プロビジョニングネットワークの設定については、「4章デプロイ後の Bare Metal サービスの設定」を参照してください。
  2. テナントネットワークおよびサブネットを作成します。

    $ openstack network create --provider-network-type vlan --provider-physical-network baremetal tenant-net
    $ openstack subnet create --network tenant-net --subnet-range 192.168.3.0/24 --allocation-pool start=192.168.3.10,end=192.168.3.20 tenant-subnet
    Copy to Clipboard Toggle word wrap

    networking-ansible が機能するように、必ず --provider-network-type オプションを vlan に設定してください。

7.6. ベアメタルゲスト用のポート設定

ベアメタルゲストには、スイッチに接続するためのポート情報が必要です。そのためには、OpenStack Networking (neutron) ポート設定を定義します。お使いのオーバークラウドにベアメタルイントロスペクション機能がない場合には、この手法を使用します。

手順

  1. ベアメタルノードのポートを作成します。以下のコマンド例を、ポート作成のベースとして使用します。

    $ openstack baremetal port create [NODE NIC MAC] --node [NODE UUID] \
        --local-link-connection port_id=[SWICH PORT ID] \
        --local-link-connection switch_info=[SWITCH NAME] \
        --local-link-connection switch_id=[SWITCH MAC]
    Copy to Clipboard Toggle word wrap

    以下の大かっこ内の値は、実際の環境の情報に置き換えてください。

    [NODE NIC MAC]
    スイッチに接続された NIC の MAC アドレス。
    --node [NODE UUID]
    新しいポートを使用するノードの UUID
    --local-link-connection port_id=[SWITCH PORT ID]
    ベアメタルノードに接続するスイッチ上のポート ID。
    --local-link-connection switch_info=[SWITCH NAME]
    ベアメタルノードに接続するスイッチの名前。スイッチ名は、ML2HostConfigs パラメーターで定義した各スイッチ名と一致していなければなりません。
    --local-link-connection switch_id=[SWITCH MAC]
    スイッチの MAC アドレス。この値は、ML2HostConfigs パラメーターのスイッチ設定の各 mac 値と一致していなければなりません。これは、switch_info の使用に対する代替オプションです。

7.7. networking-ansible ML2 機能のテスト

ベアメタルノードの networking-ansible 設定が完了したら、動作を確かめるために機能をテストします。これを行うには、ベアメタルに関する負荷を作成する必要があります。

前提条件

  • OpenStack Baremetal (ironic) サービスが設定されたオーバークラウド
  • 有効な networking-ansible ML2 ドライバー
  • スイッチのアクセス情報が含まれる ML2HostConfigs パラメーター
  • 登録済みのベアメタルノード

    1. スイッチ上のノード接続に使用する各ベアメタルポートの設定
  • 初期プロビジョニング用に OpenStack Networking (neutron) で定義された VLAN ベースのプロビジョニングネットワーク
  • 内部通信用に OpenStack Networking (neutron) で定義された VLAN ベースのテナントネットワーク

手順

  1. ベアメタルシステムを作成します。

    openstack server create --flavor baremetal --image overcloud-full --key default --network tenant-net test1
    Copy to Clipboard Toggle word wrap

    オーバークラウドは、まずプロビジョニングネットワークにベアメタルシステムを作成します。作成が完了すると、networking-ansible ドライバーによってスイッチ上のポート設定が変更され、ベアメタルシステムがテナントネットワークを使用するようになります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat