1.3. 베어 메탈 프로비저닝 서비스에 대한 컨트롤러 노드 구성
베어 메탈 프로비저닝 데이터베이스 생성 섹션을 제외하고 Red Hat OpenStack Platform 배포의 모든 컨트롤러 노드에서 root
사용자로 다음 단계를 수행해야 합니다. 한 컨트롤러에서 모두 데이터베이스를 공유하므로 이 절차를 수행해야 합니다.
컨트롤러 노드에서는 OpenStack 배포가 연결할 수 있도록 Bare Metal Provisioning 네트워크가 Open vSwitch에 연결되어 있는지 확인해야 합니다.
Open vSwitch에 브리지를 추가합니다.
# ovs-vsctl add-br br-ironic # ovs-vsctl add-port br-ironic IRONIC_PROVISIONING_NIC # ovs-vsctl show
여기서
br-ironic
은 브리지의 이름이며IRONIC_PROVISIONING_NIC
는 베어 메탈 프로비저닝 네트워크에 연결된 NIC입니다.ovs-vsctl show
명령을 사용하면 연결된 포트를 사용하여 새 브릿지가 생성되는 것을 확인할 수 있지만br-int
통합 브릿지에 새 브릿지에 대한 패치가 없다는 것을 알 수 있습니다.통합 브리지에 새 브릿지를 추가하려면 다음 플러그인 파일을 업데이트해야 합니다.
다음과 같이 ML2 구성 파일
/etc/neutron/plugins/ml2/ml2_conf.ini
를 업데이트합니다.-
type_drivers
매개변수의 경우 드라이버에flat
이 나열되어 있는지 확인합니다(예:type_drivers = vxlan,vlan,flat,gre
). 쉼표로 구분된 목록입니다. -
mechanism_drivers
매개변수의 경우openvswitch
옵션이 드라이버(예:mechanism_drivers =openvswitch
)에 나열되어 있는지 확인합니다. 쉼표로 구분된 목록입니다. -
flat_networks
매개변수의 경우 이름을 생성하여 베어 메탈 프로비저닝 네트워크(예:ironicnet
)를 참조합니다. 이 이름이 나열된flat_networks
에 나열되어 있는지 확인합니다(예:flat_networks =datacentre,ironicnet
). 쉼표로 구분된 목록입니다. -
베어 메탈 프로비저닝 네트워크에 VLAN을 사용하는 경우
ironicnet:VLAN_START:VLAN_END
형식으로network_vlan_ranges
매개변수를 추가합니다(예:network_vlan_ranges =datacentre:1:1000
). 쉼표로 구분된 목록입니다. -
enable_security_group
매개변수가 이미 활성화되어 있어야 합니다. 그러나 설정되지 않은 경우 값을True
로 변경합니다 (예:enable_security_group = True
).
-
/etc/neutron/plugins/ml2/openvswitch_agent.ini
파일에서 다음과 같이bridge_mappings
매개변수 및 업데이트를 찾습니다.bridge_mappings =datacentre:br-ex,ironicnet:br-ironic
쉼표로 구분된 이 키-값 쌍의 값은 베어 메탈 프로비저닝 네트워크의 이름을 네트워크에 연결된 물리적 장치에 매핑합니다.
neutron-openvswitch-agent.service
를 다시 시작하여br-ironic
브리지를 통합 브리지의 일부로 확인합니다.# systemctl restart neutron-openvswitch-agent.service
새 연결을 감지하도록
neutron-server.service
를 다시 시작하십시오.# systemctl restart neutron-server.service
참고이 단계를 수행하지 않으면 OpenStack Networking 서비스 내에서 Bare Metal Provisioning 네트워크를 생성하려고 하면 요청된 플랫 네트워크가 존재하지 않는다는 메시지와 함께 실패합니다.
1.3.1. 베어 메탈 프로비저닝 데이터베이스 생성
베어 메탈 프로비저닝에서 사용하는 데이터베이스 및 데이터베이스 사용자를 만듭니다. 이 절차의 모든 단계는 root 사용자로 로그인한 동안 데이터베이스 서버에서 수행해야 합니다.
베어 메탈 프로비저닝 데이터베이스 생성
데이터베이스 서비스에 연결합니다.
# mysql -u root
ironic 데이터베이스를 생성합니다.
mysql> CREATE DATABASE ironic CHARACTER SET utf8;
ironic 데이터베이스 사용자를 생성하고 ironic 데이터베이스에 대한 액세스 권한을 부여합니다.
mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'%' IDENTIFIED BY 'PASSWORD'; mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'localhost' IDENTIFIED BY 'PASSWORD';
이 사용자로 데이터베이스 서버로 인증하는 데 사용할 보안 암호로 PASSWORD 를 바꿉니다.
데이터베이스 권한을 플러시하여 즉시 적용되도록 합니다.
mysql> FLUSH PRIVILEGES;
mysql 클라이언트를 종료합니다.
mysql> quit
1.3.2. 베어 메탈 프로비저닝을 위해 OpenStack Compute Services 구성
베어 메탈 프로비저닝 드라이버에 대한 Compute 서비스를 구성합니다. 이 드라이버를 사용하면 Compute에서 가상 머신을 프로비저닝하는 데 사용되는 동일한 API를 사용하여 물리적 시스템을 프로비저닝할 수 있습니다. 각 openstack-nova-compute 노드에 대해 하나의 드라이버만 지정할 수 있습니다. Bare Metal Provisioning 드라이버가 있는 노드는 물리적 시스템만 프로비저닝할 수 있습니다. 베어 메탈 프로비저닝 드라이버를 사용하여 모든 베어 메탈 노드를 프로비저닝하도록 단일 openstack-nova-compute 노드를 할당하는 것이 좋습니다. 다음 절차의 모든 단계는 root 사용자로 로그인한 동안 선택한 컴퓨팅 노드에서 수행해야 합니다.
베어 메탈 프로비저닝을 위한 OpenStack Compute 구성
Bare Metal Provisioning 스케줄러 호스트 관리자를 사용하도록 Compute를 설정합니다.
# openstack-config --set /etc/nova/nova.conf \ DEFAULT scheduler_host_manager nova.scheduler.ironic_host_manager.IronicHostManager
인스턴스의 변경 사항을 추적하지 못하도록 Compute 스케줄러를 비활성화합니다.
# openstack-config --set /etc/nova/nova.conf DEFAULT scheduler_tracks_instance_changes false
다음과 같이 기본 필터를 설정합니다.
# openstack-config --set /etc/nova/nova.conf DEFAULT baremetal_scheduler_default_filters AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter
기본 Bare Metal Provisioning 스케줄링 필터를 사용하도록 Compute를 설정합니다.
# openstack-config --set /etc/nova/nova.conf \ DEFAULT scheduler_use_baremetal_filters True
베어 메탈 프로비저닝에 대한 올바른 인증 세부 정보를 사용하도록 Compute를 설정합니다.
# openstack-config --set /etc/nova/nova.conf \ ironic admin_username ironic # openstack-config --set /etc/nova/nova.conf \ ironic admin_password PASSWORD # openstack-config --set /etc/nova/nova.conf \ ironic admin_url http://IDENTITY_IP:35357/v2.0 # openstack-config --set /etc/nova/nova.conf \ ironic admin_tenant_name service # openstack-config --set /etc/nova/nova.conf \ ironic api_endpoint http://IRONIC_API_IP:6385/v1
다음 값을 바꿉니다.
- Bare Metal Provisioning에서 Identity로 인증하는 데 사용하는 암호로 PASSWORD 를 바꿉니다.
- IDENTITY_IP 를 ID를 호스팅하는 서버의 IP 주소 또는 호스트 이름으로 교체합니다.
- IRONIC_API_IP 를 Bare Metal Provisioning API 서비스를 호스팅하는 서버의 IP 주소 또는 호스트 이름으로 교체합니다.
ironic
컴퓨팅 노드에서nova
데이터베이스 인증 정보를 설정합니다.# openstack-config --set /etc/nova/nova.conf database connection "mysql+pymysql://nova:NOVA_DB_PASSWORD@DB_IP/nova"
컴퓨팅 컨트롤러 노드에서 Compute 스케줄러 서비스를 다시 시작합니다.
# systemctl restart openstack-nova-scheduler.service
컴퓨팅 노드에서 compute 서비스를 다시 시작합니다.
# systemctl restart openstack-nova-compute.service
1.3.3. iPXE 요청을 태그하도록 OpenStack Networking DHCP 에이전트를 구성
iPXE의 OpenStack Networking DHCP 요청에는 ipxe
라는 DHCP 태그가 있어야 DHCP 서버에 boot.ipxe
스크립트를 가져오기 위해 클라이언트가 HTTP 작업을 수행해야 함을 알립니다. OpenStack Networking DHCP 에이전트 서비스에서 사용하는 dnsmasq
구성 파일에 dhcp-userclass
항목을 추가하여 이 작업을 수행할 수 있습니다.
오버클라우드 컨트롤러에서 DHCP 에이전트가 사용 중인
dnsmasq
파일을 확인합니다.# grep ^dnsmasq_config_file /etc/neutron/dhcp_agent.ini dnsmasq_config_file =/etc/neutron/dnsmasq-neutron.conf
이 파일을 편집하고 파일 끝에 다음 행을 추가합니다.
# Create the "ipxe" tag if request comes from iPXE user class dhcp-userclass=set:ipxe,iPXE
파일을 저장하고 OpenStack Networking DHCP 에이전트 서비스를 다시 시작합니다.
# systemctl restart neutron-dhcp-agent.service