6장. 예


이 장에서는 Red Hat OpenStack Platform의 일부 벤더 통합 예를 소개합니다.

6.1. Cisco Nexus 1000V

Cisco Nexus 1000V는 가상 머신 액세스를 위해 설계된 네트워크 스위치입니다. 또한 VXLAN, ACL 및 IGMP 스누핑을 사용한 고급 전환 및 보안을 제공합니다. Cisco Nexus 1000V용 ml2 드라이버는 Neutron 서비스와 함께 설치할 수 있는 networking-cisco 리포지토리에 포함되어 있습니다.

Overcloud 이미지에는 Cisco Nexus 1000V를 사용하도록 Neutron을 구성하도록 클래스(neutron::plugins::ml2::cisco:: Cryostat1000v)를 포함하는 Neutron Puppet 모듈(puppet-neutron)이 포함되어 있습니다. 이 클래스는 모듈의 manifests/plugins/ml2/cisco/ Cryostat1000v.pp 매니페스트에 있습니다. 클래스는 기본 매개변수 세트를 사용하여 재정의한 다음 neutron_plugin_ml2 라이브러리를 사용하여 Cisco Nexus 1000V를 사용하도록 ml2 플러그인을 구성합니다.

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 는 컨트롤러 및 컴퓨팅 노드(OS::TripleO::ControllerExtraConfigPreOS::TripleO::ComputeExtraConfigPre)에 대한 사전 구성 리소스를 설정하여 puppet/extraconfig/pre_deploy/controller/cisco-n1kv.yaml 을 사전 구성에 사용할 템플릿으로 설정합니다. parameter_defaults 섹션에는 이러한 리소스에 전달할 몇 가지 매개변수가 포함되어 있습니다.

배포에 이 환경 파일을 포함하면 구성 중에 Puppet에서 Neutron Puppet 모듈의 매개 변수에 사용하는 Hiera 데이터가 정의됩니다.

Puppet 구성의 실제 애플리케이션 시작은 자동으로 수행됩니다. Heat 템플릿 컬렉션에는 컨트롤러 및 컴퓨팅 노드를 구성하기 위한 코어 Puppet 매니페스트 세트가 포함되어 있습니다. 이러한 파일에는 Cisco Nexus 1000V Hiera 데이터가 설정되어 있는지 감지하는 논리가 포함되어 있습니다. 배포 시 cisco-n1kv.yaml 을 포함하면 매니페스트에는 neutron::plugins::ml2::cisco:: Cryostat1000v 클래스와 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를 사용하도록 Overcloud를 구성하려면 몇 가지 단계만 수행해야 합니다.

  1. environment/cisco-n1kv-config.yaml 파일을 로컬 위치에 복사하여 편집할 수 있습니다.

    $ cp /usr/share/openstack-tripleo-heat-templates/environments/cisco-n1kv-config.yaml ~/templates/.
  2. cisco-n1kv-config.yaml 파일을 편집합니다.

    • cisco-n1kv.yaml을 참조하는 절대 경로를 사용하도록 resource_registery 섹션을 수정합니다.
    • 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 구성을 Overcloud Hiera 데이터의 일부로 정의합니다. 그런 다음 Overcloud는 이 Hieradata를 사용하여 코어 구성 중에 Neutron의 Nexus 1000V ml2 드라이버를 구성합니다.

이 예에서는 director가 인증된 벤더의 네트워크 구성 요소를 Overcloud의 Neutron 서비스와 통합하는 방법을 보여줍니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.