第 6 章 例子


本章重点介绍了作为 Red Hat OpenStack Platform 的一部分的一些供应商集成示例。

6.1. Cisco Nexus 1000V

Cisco Nexus 1000V 是专为虚拟机访问而设计的网络交换机。它还使用 VXLAN、ACL 和 IGMP 侦听提供高级切换和安全性。Cisco Nexus 1000V 的 ml2 驱动程序包含在 networking-cisco 存储库中,您可以与 Neutron 服务一起安装。

Overcloud 镜像包含 Neutron Puppet 模块(puppet-neutron),它包含一个类(neutron::plugins::ml2::cisco:: observe1000v),用于配置 Neutron 以使用 Cisco Nexus 1000V。此类位于模块的 manifests/plugins/ml2/cisco/ observe1000v.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;
}
Copy to Clipboard Toggle word wrap

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'
Copy to Clipboard Toggle word wrap

resource_registry 设置 Controller 和 Compute 节点的预配置资源(OS::TripleO::ControllerExtraConfigPreOS::TripleO::ComputeExtraConfigPre),以使用 puppet/extraconfig/pre_deploy/controller/cisco-n1kv.yaml 作为模板。parameter_defaults 部分包含一些要传递给这些资源的参数。

在部署中包含此环境文件会定义层次结构数据,供 Puppet 在配置期间用于 Neutron Puppet 模块的参数。

启动 Puppet 配置的实际应用是自动的。Heat 模板集合包含一组核心 Puppet 清单,用于配置 Controller 和 Compute 节点。这些文件包含检测是否设置了 Cisco Nexus 1000V Hiera 数据的逻辑。如果(通过在部署中包含 cisco-n1kv.yaml ),清单包括 neutron::plugins::ml2::cisco::HEKETI1000v 类,以及 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),
    }
  }
Copy to Clipboard Toggle word wrap

这意味着将 Overcloud 配置为使用 Cisco Nexus 1000V 只需要几个步骤:

  1. environments/cisco-n1kv-config.yaml 文件复制到本地位置,以便您可以编辑它:

    $ cp /usr/share/openstack-tripleo-heat-templates/environments/cisco-n1kv-config.yaml ~/templates/.
    Copy to Clipboard Toggle word wrap
  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!
      Copy to Clipboard Toggle word wrap
  3. 在部署中包含 cisco-n1kv-config.yaml 文件:

    $ openstack overcloud deploy --templates -e ~/templates/cisco-n1kv-config.yaml
    Copy to Clipboard Toggle word wrap

这会将 Cisco Nexus 1000V 配置定义为 Overcloud 的 Hiera 数据的一部分。然后 Overcloud 使用此层次结构在核心配置期间配置 Neutron 的 Nexus 1000V ml2 驱动程序。

本例演示了 director 如何将认证供应商中的网络组件与 Overcloud 的 Neutron 服务集成。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat