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::ControllerExtraConfigPre
및 OS::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를 구성하려면 몇 가지 단계만 수행해야 합니다.
environment/cisco-n1kv-config.yaml
파일을 로컬 위치에 복사하여 편집할 수 있습니다.$ cp /usr/share/openstack-tripleo-heat-templates/environments/cisco-n1kv-config.yaml ~/templates/.
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!
-
배포에
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 서비스와 통합하는 방법을 보여줍니다.