第6章 例


本章では、Red Hat OpenStack Platform の一部としてベンダー統合の例を説明します。

6.1. Cisco Nexus 1000V

Cisco Nexus 1000V は、仮想マシンへのアクセス用に設計されたネットワークスイッチです。また、VXLAN、ACL、および IGMP スヌーピングを使用した高度なスイッチングおよびセキュリティーも提供します。Cisco Nexus 1000V の ml2 ドライバーは networking-cisco リポジトリーに含まれています。これは、Neutron サービスと一緒にインストールできます。

オーバークラウドのイメージには Neutron Puppet モジュール(puppet-neutron)が含まれています。このモジュールには、クラス(neutron::plugins::ml2::cisco::nexus1000v)が含まれており、Neutron が Cisco Nexus 1000V を使用するように設定します。このクラスは、モジュールの manifests/plugins/ml2/cisco/nexus1000v.pp マニフェストにあります。クラスはデフォルトパラメーターのセットを使用してオーバーライドでき、neutron_plugin_ml2 ライブラリーを使用して ml2 プラグインが Cisco Nexus 1000V を使用するように設定します。

neutron_plugin_ml2 {
  'ml2/extension_drivers'                          : value => $extension_drivers;
  'ml2_cisco_n1kv/n1kv_vsm_ips'                    : value => $n1kv_vsm_ip;
  'ml2_cisco_n1kv/username'                        : value => $n1kv_vsm_username;
  'ml2_cisco_n1kv/password'                        : value => $n1kv_vsm_password;
  'ml2_cisco_n1kv/default_policy_profile'          : value => $default_policy_profile;
  'ml2_cisco_n1kv/default_vlan_network_profile'    : value => $default_vlan_network_profile;
  'ml2_cisco_n1kv/default_vxlan_network_profile'   : value => $default_vxlan_network_profile;
  'ml2_cisco_n1kv/poll_duration'                   : value => $poll_duration;
  'ml2_cisco_n1kv/http_pool_size'                  : value => $http_pool_size;
  'ml2_cisco_n1kv/http_timeout'                    : value => $http_timeout;
  'ml2_cisco_n1kv/sync_interval'                   : value => $sync_interval;
  'ml2_cisco_n1kv/max_vsm_retries'                 : value => $max_vsm_retries;
  'ml2_cisco_n1kv/restrict_policy_profiles'        : value => $restrict_policy_profiles;
  'ml2_cisco_n1kv/enable_vif_type_n1kv'            : value => $enable_vif_type_n1kv;
}

director の Heat テンプレートコレクションには、Cisco Nexus 1000V の Hiera データを設定するための環境ファイルと登録済みテンプレートが含まれています。環境ファイルは environments/cisco-n1kv-config.yaml にあり、以下のデフォルトコンテンツが含まれています。

resource_registry:
  OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/cisco-n1kv.yaml
  OS::TripleO::ComputeExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/cisco-n1kv.yaml

parameter_defaults:
  N1000vVSMIP: '192.0.2.50'
  N1000vMgmtGatewayIP: '192.0.2.1'
  N1000vVSMDomainID: '100'
  N1000vVSMHostMgmtIntf: 'br-ex'

resource_registry は、事前設定に使用するテンプレートとして puppet/extraconfig/pre_deploy/controller/cisco-n1kv.yaml を使用するように、コントローラーノードおよび コンピュートノードの事前設定リソース(OS::TripleO::Controller ExtraConfigPre および OS::TripleO::ComputeExtraConfigPre)を設定します。parameter_defaults セクションには、これらのリソースに渡すパラメーターが含まれています。

デプロイメントにこの環境ファイルを含めると、Puppet が設定中に Neutron Puppet モジュールのパラメーターに使用する Hiera データを定義します。

Puppet 設定の実際のアプリケーションの起動は自動的に行われます。Heat テンプレートコレクションには、コントローラーノードおよびコンピュートノードを設定するためのコア Puppet マニフェストのセットが含まれています。これらのファイルには、Cisco Nexus 1000V Hiera データが設定されているかどうかを検出するロジックが含まれています。その場合(デプロイメントに cisco-n1kv.yaml を含む)、マニフェストには neutron::plugins::ml2::cisco::nexus1000v クラスと Cisco Nexus 1000V の VEM および VSM エージェントが含まれます。

  if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
    include neutron::plugins::ml2::cisco::nexus1000v

    class { 'neutron::agents::n1kv_vem':
      n1kv_source          => hiera('n1kv_vem_source', undef),
      n1kv_version         => hiera('n1kv_vem_version', undef),
    }

    class { 'n1k_vsm':
      n1kv_source       => hiera('n1kv_vsm_source', undef),
      n1kv_version      => hiera('n1kv_vsm_version', undef),
    }
  }

これは、オーバークラウドが Cisco Nexus 1000V を使用するように設定するには、いくつかのステップのみが必要です。

  1. environments/cisco-n1kv-config.yaml ファイルをローカルの場所にコピーして、編集できるようにします。

    $ cp /usr/share/openstack-tripleo-heat-templates/environments/cisco-n1kv-config.yaml ~/templates/.
  2. cisco-n1kv-config.yaml ファイルを編集します。

    • resource_registery セクションを変更して cisco-n1kv.yamlを参照の絶対パスを使用します。
    • parameter_defaults セクションを変更して、Cisco Nexus 1000V パラメーターを追加します。詳細は cisco-n1kv.yaml を参照してください。

      以下に例を示します。

      resource_registry:
        OS::TripleO::ControllerExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/controller/cisco-n1kv.yaml
        OS::TripleO::ComputeExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/controller/cisco-n1kv.yaml
      
      parameter_defaults:
        N1000vVSMIP: '192.0.2.50'
        N1000vMgmtGatewayIP: '192.0.2.1'
        N1000vVSMDomainID: '100'
        N1000vVSMHostMgmtIntf: 'br-ex'
        N1000vVSMUser: admin
        N1000vVSMPassword: p@55w0rd!
  3. デプロイメントに cisco-n1kv-config.yaml ファイルを含めます。

    $ openstack overcloud deploy --templates -e ~/templates/cisco-n1kv-config.yaml

Cisco Nexus 1000V 設定をオーバークラウドの Hiera データの一部として定義します。その後、オーバークラウドはこの Hieradata を使用して、コアの設定中に Neutron の Nexus 1000V ml2 ドライバーを設定します。

以下の例で、director が認定済みベンダーのネットワークコンポーネントをオーバークラウドの Neutron サービスと統合する方法を実証します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.