1.4. 베어 메탈 프로비저닝에 대한 컴퓨팅 노드 구성
여기에서는 베어 메탈 프로비저닝 서비스를 실행하는 컴퓨팅 노드에 만 적용됩니다. 컴퓨팅 노드에서 root 사용자로 다음 단계를 수행해야 합니다.
컴퓨팅 노드에는 베어 메탈 프로비저닝 NIC(예: eth6 )가 있습니다. 이 절차의 목표는 다음과 같습니다.
-
베어 메탈 프로비저닝 NIC를 연결하려면 이 예제의
eth6을 Open vSwitch에 연결합니다. - 이 연결에서 IP 주소를 할당하려면 베어 메탈 노드에서 iPXE 프로세스의 일부로 부팅 이미지를 가져와야 합니다.
eth6 을 Open vSwitch에 연결
1.3절. “베어 메탈 프로비저닝 서비스에 대한 컨트롤러 노드 구성” 의 컨트롤러 노드와 마찬가지로 베어 메탈 프로비저닝 서비스를 실행하는 컴퓨팅 노드의 Open vSwitch 내에 브릿지를 생성합니다.
# ovs-vsctl add-br br-ironic # ovs-vsctl add-port br-ironic IRONIC_PROVISIONING_NIC여기에서
br-ironic은 브리지의 이름이며,IRONIC_PROVISIONING NIC는 베어 메탈 프로비저닝 네트워크에 연결된 NIC입니다(예:eth6).참고이 노드와 1.3절. “베어 메탈 프로비저닝 서비스에 대한 컨트롤러 노드 구성” 의 유일한 차이점은 컴퓨팅 노드에서 OpenStack Networking 서비스를 재시작하지 않는다는 것입니다.
그러면 Open vSwitch에 브리지와 포트가 추가되어
ovs-vsctl show명령을 사용하여 확인할 수 있습니다. 그러나 OpenStack에서 사용하기 위해 통합 브리지(br-int)에 연결하지 않습니다.연결을 생성하려면 다음과 같이 OpenStack Networking 플러그인 파일을 업데이트해야 합니다.
다음과 같이 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쉼표로 구분된 이 키-값 쌍의 값은 베어 메탈 프로비저닝 네트워크의 이름을 네트워크에 연결된 물리적 장치에 매핑합니다.
OpenStack Networking Open vSwitch 에이전트 서비스를 다시 시작합니다.
# systemctl restart neutron-openvswitch-agent.service
이제 이 절차를 통해 첫 번째 목표를 달성했습니다. 다음으로 br-ironic 브리지에 IP 주소를 할당하고 재부팅 후에도 유지되는지 확인해야 합니다.
베어 메탈 서버에 IP 주소 할당
/etc/sysconfig/network-scripts위치에 표준 구성 파일을 만듭니다. 테넌트 네트워크에서 이미 사용 가능한ifcfg*파일을 복사하고br-ironic및eth6의장치,ipaddr,ovs_및bridge, 브리지 이름MAC주소 값을 편집할 수 있습니다. 새 파일 업데이트를 완료한 경우 다음과 같은 값이 있어야 합니다.ifcfg-br-ironicDEVICE=br-ironic ONBOOT=yes HOTPLUG=no NM_CONTROLLED=no PEERDNS=no DEVICETYPE=ovs TYPE=OVSBridge BOOTPROTO=static IPADDR=BARE_METAL_PROVISIONING_IP NETMASK=255.255.255.0 OVS_EXTRA="set bridge br-ironic other-config:hwaddr=MAC_ADDRESS"ifcfg-eth6DEVICE=eth6 ONBOOT=yes HOTPLUG=no NM_CONTROLLED=no PEERDNS=no DEVICETYPE=ovs TYPE=OVSPort OVS_BRIDGE=br-ironic BOOTPROTO=none네트워크 브리지를 다시 시작하여 IP 주소를 ping할 수 있도록 합니다.
# ifup br-ironic참고네트워크 서비스를 다시 시작할 때 노드에서 연결을 끊으면 서버를 재부팅합니다.
1.4.1. 필수 채널에 가입 링크 복사링크가 클립보드에 복사되었습니다!
베어 메탈 프로비저닝 패키지를 설치하려면 Red Hat Subscription Manager에 서버 또는 서버를 등록하고 필요한 채널을 구독해야 합니다. 컴퓨팅 노드에 Bare Metal Provisioning을 설치하는 경우 서버가 이미 적절하게 서브스크립션될 수 있습니다. yum repolist 를 실행하여 아래 절차의 채널이 활성화되었는지 확인합니다.
필수 채널에 가입
메시지가 표시되면 시스템을 Content Delivery Network에 등록하고, 고객 포털 사용자 이름과 암호를 입력합니다.
# subscription-manager register베어 메탈 프로비저닝을 설치하는 데 필요한 채널이 포함된 인타이틀먼트 풀을 찾습니다.
# subscription-manager list --available | grep -A13 "Red Hat Enterprise Linux Server" # subscription-manager list --available | grep -A13 "Red Hat OpenStack Platform"이전 단계에 있는 풀 ID를 사용하여 Red Hat Enterprise Linux 7 Server 및 Red Hat OpenStack Platform 인타이틀먼트를 연결합니다.
# subscription-manager attach --pool=POOL_ID필요한 채널을 활성화합니다.
# subscription-manager repos --enable=rhel-7-server-rpms \ --enable=rhel-7-server-openstack-8-rpms \ --enable=rhel-7-server-rh-common-rpms --enable=rhel-7-server-optional-rpms \ --enable=rhel-7-server-openstack-8-optools-rpms
1.4.2. 베어 메탈 프로비저닝 패키지 설치 링크 복사링크가 클립보드에 복사되었습니다!
베어 메탈 프로비저닝에는 다음 패키지가 필요합니다.
openstack-ironic-api
Bare Metal Provisioning API 서비스를 제공합니다.
openstack-ironic-conductor
Bare Metal Provisioning conductor 서비스를 제공합니다. 컨덕터를 사용하면 노드를 추가, 편집 및 삭제하고 IPMI 또는 SSH를 사용하여 노드의 전원을 켜거나 끄고 베어 메탈 노드를 프로비저닝, 배포 및 해제할 수 있습니다.
python-ironicclient
베어 메탈 프로비저닝 서비스와 상호 작용을 위한 명령줄 인터페이스를 제공합니다.
패키지를 설치합니다.
# yum install openstack-ironic-api openstack-ironic-conductor python-ironicclient ipxe-bootimgs
1.4.3. iPXE 구성 링크 복사링크가 클립보드에 복사되었습니다!
iPXE, map-files에 필요한 디렉터리를 생성하고
undionly.kpxe부팅 이미지, iPXE 및map-file을 위치에 복사합니다.# mkdir /httpboot # mkdir /tftpboot # echo 'r ([/]) /tftpboot/\1' > /tftpboot/map-file # echo 'r ^(/tftpboot/) /tftpboot/\2' >> /tftpboot/map-file # cp /usr/share/ipxe/undionly.kpxe /tftpboot/ # chown -R ironic:ironic /httpboot # chown -R ironic:ironic /tftpboot기본적으로 director에서 배포한 컴퓨팅 노드는
Enforcing모드에서 SELinux를 실행합니다. iPXE 부팅을 시도할 때 권한 오류가 발생하지 않도록 하려면 이러한 디렉터리에 적절한 레이블을 설정해야 합니다. 이러한 레이블을 적용하려면root사용자로 다음 명령을 실행합니다.# semanage fcontext -a -t httpd_sys_content_t "/httpboot(/.*)?" # restorecon -Rv /httpboot # semanage fcontext -a -t tftpdir_t "/tftpboot(/.*)?" # restorecon -Rv /tftpboot이미지 요청을 처리할 수 있도록 HTTP를 구성합니다.
httpd패키지가 이미 설치되어 있으므로 적절한 가상 호스트 항목을 생성하고 서비스를 시작하는 것이 중요합니다.참고/etc/httpd/conf.d에는 파일 수가 포함되어 있습니다. Red Hat은 모든 노드에 대해 단일 오버클라우드 전체 이미지를 사용하므로 컨트롤러 노드에서만 사용되는 경우에도 모든 노드에 이러한 파일이 포함됩니다./etc/httpd/conf.d의 내용을 삭제하거나 사용하지 않으므로 다른 곳에 복사할 수 있습니다.iPXE 구성에 사용할 새 파일을 에 만듭니다. 이 파일의 이름을
.conf형식으로 지정하고 다음 내용이 있는지 확인할 수 있습니다.# cat 10-ipxe_vhost.conf Listen 8088 <VirtualHost *:8088> DocumentRoot "/httpboot" <Directory "/httpboot"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all Require all granted </Directory> ## Logging ErrorLog "/var/log/httpd/ironic_error.log" ServerSignature Off CustomLog "/var/log/httpd/ironic_access.log" combined </VirtualHost>위의 가상 호스트 구성은 포트 8088의 모든 주소에 나열되도록 HTTPD를 구성하고 모든 요청에 대한 문서 루트를 해당 포트로 설정하여
/httpboot로 이동합니다.이 파일을 저장하고 컴퓨팅 노드에서 HTTPD 서비스를 활성화하고 다시 시작합니다.
# systemctl enable httpd.service # systemctl start httpd.service
1.4.4. 베어 메탈 프로비저닝 서비스 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 /etc/ironic/ironic.conf 파일을 필요한 변경합니다.
1.4.4.1. 데이터베이스 서버와 결합하도록 베어 메탈 프로비저닝 구성 링크 복사링크가 클립보드에 복사되었습니다!
연결 구성 키의 값을 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \
database connection mysql+pymysql://ironic:PASSWORD@IP/ironic
여기에서 PASSWORD 는 데이터베이스 서버의 암호이며 IP 는 데이터베이스 서버의 IP 주소 또는 호스트 이름입니다.
연결 구성 키에 지정된 IP 주소 또는 호스트 이름은 베어 메탈 프로비저닝 데이터베이스 사용자에게 1.3.1절. “베어 메탈 프로비저닝 데이터베이스 생성” 에서 베어 메탈 프로비저닝 데이터베이스를 생성할 때 액세스 권한이 부여된 IP 주소 또는 호스트 이름과 일치해야 합니다. 또한 데이터베이스가 로컬로 호스팅되고 데이터베이스를 만들 때 localhost 에 대한 권한이 부여된 경우 localhost 를 입력해야 합니다.
1.4.4.2. 베어 메탈 프로비저닝 인증 구성 링크 복사링크가 클립보드에 복사되었습니다!
인증에 ID를 사용하도록 베어 메탈 프로비저닝을 구성합니다. 이 절차의 모든 단계는 root 사용자로 로그인한 동안 Bare Metal Provisioning을 호스팅하는 서버 또는 서버에서 수행해야 합니다.
ID를 통해 인증하도록 베어 메탈 프로비저닝 구성
Bare Metal Provisioning에서 사용해야 하는 ID 공용 및 관리자 끝점을 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ keystone_authtoken auth_uri http://IP:5000/v2.0 # openstack-config --set /etc/ironic/ironic.conf \ keystone_authtoken identity_uri http://IP:35357/IP 를 ID 서버의 IP 주소 또는 호스트 이름으로 바꿉니다.
서비스 테넌트로 인증하도록 Bare Metal Provisioning을 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ keystone_authtoken admin_tenant_name serviceironic 관리 사용자 계정을 사용하여 인증하도록 Bare Metal Provisioning을 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ keystone_authtoken admin_user ironic올바른 ironic 관리 사용자 계정 암호를 사용하도록 Bare Metal Provisioning을 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ keystone_authtoken admin_password PASSWORDironic 사용자를 생성할 때 PASSWORD 를 설정한 암호로 교체합니다.
1.4.4.3. 베어 메탈 프로비저닝에 대한 RabbitMQ 메시지 브로커 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
RabbitMQ는 기본(및 권장) 메시지 브로커입니다. RabbitMQ 메시징 서비스는 rabbitmq-server 패키지에서 제공합니다. 다음 절차의 모든 단계는 root 사용자로 로그인한 동안 Bare Metal Provisioning을 호스팅하는 컨트롤러 또는 컴퓨팅 노드에서 수행해야 합니다.
이 절차에서는 RabbitMQ 메시징 서비스가 설치 및 구성되었으며 메시징 서비스를 호스팅하는 서버에서 ironic 사용자 및 관련 암호가 생성되었다고 가정합니다.
RabbitMQ 메시지 브로커를 사용하도록 베어 메탈 프로비저닝 구성
RabbitMQ를 RPC 백엔드로 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ DEFAULT rpc_backend ironic.openstack.common.rpc.impl_kombuRabbitMQ 호스트에 연결하도록 베어 메탈 프로비저닝을 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ oslo_messaging_rabbit rabbit_host RABBITMQ_HOSTRA #159ITMQ_HOST 를 메시지 브로커를 호스팅하는 서버의 IP 주소 또는 호스트 이름으로 바꿉니다.
메시지 브로커 포트를 5672로 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ oslo_messaging_rabbit rabbit_port 5672RabbitMQ를 구성할 때 Bare Metal Provisioning용으로 생성된 RabbitMQ 사용자 이름과 암호를 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ oslo_messaging_rabbit rabbit_userid guest # openstack-config --set /etc/ironic/ironic.conf \ oslo_messaging_rabbit rabbit_password RABBIT_GUEST_PASSWORDRA CryostatIT_GUEST_PASSWORD 를 guest 사용자의 RabbitMQ 암호로 바꿉니다.
RabbitMQ가 시작되면 게스트 사용자에게 가상 호스트를 통해 모든 리소스에 대한 읽기 및 쓰기 권한이 부여되었습니다. 이 가상 호스트에 연결하도록 Bare Metal Provisioning을 구성합니다.
# openstack-config --set /etc/ironic/ironic.conf \ oslo_messaging_rabbit rabbit_virtual_host /
1.4.4.4. 베어 메탈 프로비저닝 드라이버 구성 링크 복사링크가 클립보드에 복사되었습니다!
베어 메탈 프로비저닝에서는 베어 메탈 서버를 배포하고 관리하기 위한 여러 드라이버를 지원합니다. 일부 드라이버에는 하드웨어 요구 사항이 있으며 추가 구성 또는 패키지 설치가 필요합니다. 자세한 드라이버 정보는 부록 A. Bare Metal 프로비저닝 드라이버 를 참조하십시오. 드라이버 이름의 처음 절반은 배포 방법(예: PXE)을 지정하고 두 번째 절반은 전원 관리 방법(예: IPMI)을 지정합니다.
베어 메탈 프로비저닝 드라이버 구성
베어 메탈 서버를 프로비저닝하는 데 사용할 드라이버 또는 드라이버를 지정합니다. 쉼표로 구분된 목록을 사용하여 여러 드라이버를 지정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ DEFAULT enabled_drivers DRIVER1,DRIVER2지원되는 드라이버는 다음과 같습니다.
PXE 배포가 있는 IPMI
-
pxe_ipmitool
-
PXE 배포가 있는 DRAC
-
pxe_drac
-
PXE 배포를 사용하는 ILO
-
pxe_ilo
-
PXE 배포를 통한 SSH
-
pxe_ssh
-
PXE가 있는 iRMC
-
pxe_irmc
-
Bare Metal conductor 서비스를 다시 시작합니다.
# systemctl restart openstack-ironic-conductor.service
1.4.4.5. PXE를 사용하도록 Bare Metal Provisioning 서비스 구성 링크 복사링크가 클립보드에 복사되었습니다!
PXE 템플릿을 사용하도록 Bare Metal Provisioning 서비스를 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ pxe pxe_config_template \$pybasedir/drivers/modules/ipxe_config.templatetftp_server:을 사용하도록 Bare Metal Provisioning 서비스를 설정합니다.# openstack-config --set /etc/ironic/ironic.conf \ pxe tftp_server BARE_METAL_PROVISIONING_NETWORK_IPPXE
tftp_root:을 설정합니다.# openstack-config --set /etc/ironic/ironic.conf \ pxe tftp_root /tftpbootPXE 부팅 파일 이름을 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ pxe pxe_bootfile_name undionly.kpxeiPXE를 사용하도록 Bare Metal Provisioning 서비스를 활성화합니다.
# openstack-config --set /etc/ironic/ironic.conf \ pxe ipxe_enabled truehttp서버의 URL을 설정합니다.# openstack-config --set /etc/ironic/ironic.conf deploy http_url http://BARE_METAL_PROVISIONING_IP:8088Bare Metal conductor 서비스를 다시 시작합니다.
# systemctl restart openstack-ironic-conductor.service
1.4.4.6. OpenStack Networking 및 OpenStack Image와 결합하도록 Bare Metal Provisioning 구성 링크 복사링크가 클립보드에 복사되었습니다!
베어 메탈 프로비저닝에서는 DHCP 및 네트워크 구성에 OpenStack Networking을 사용하고 물리적 시스템을 부팅하는 데 사용되는 이미지를 관리하는 데 이미지 서비스를 사용합니다. OpenStack Networking 및 이미지 서비스에 연결하고 통신하도록 베어 메탈 프로비저닝을 구성합니다. 이 절차의 모든 단계는 root 사용자로 로그인한 동안 Bare Metal Provisioning을 호스팅하는 서버에서 수행해야 합니다.
OpenStack Networking 및 OpenStack Image와 결합하도록 베어 메탈 프로비저닝 구성
OpenStack Networking 엔드포인트를 사용하도록 Bare Metal Provisioning을 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ neutron url http://NEUTRON_IP:9696NEUTRON_IP 를 OpenStack Networking을 호스팅하는 서버의 IP 주소 또는 호스트 이름으로 바꿉니다.
이미지 서비스와 통신하도록 베어 메탈 프로비저닝을 설정합니다.
# openstack-config --set /etc/ironic/ironic.conf \ glance glance_host GLANCE_IPGLANCE_IP 를 이미지 서비스를 호스팅하는 서버의 IP 주소 또는 호스트 이름으로 바꿉니다.
Bare Metal Provisioning API 서비스를 시작하고 부팅 시 시작되도록 구성합니다.
# systemctl start openstack-ironic-api.service # systemctl enable openstack-ironic-api.service베어 메탈 프로비저닝 데이터베이스 테이블을 생성합니다.
# ironic-dbsync --config-file /etc/ironic/ironic.conf create_schemaBare Metal Provisioning conductor 서비스를 시작하고 부팅 시 시작되도록 구성합니다.
# systemctl restart openstack-ironic-conductor.service # systemctl enable openstack-ironic-conductor.service
1.4.5. 베어 메탈 프로비저닝 서비스를 사용하도록 OpenStack Compute 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 베어 메탈 프로비저닝 서비스를 사용하도록 Compute 서비스를 구성하도록 /etc/nova/nova.conf 파일을 업데이트합니다.
베어 메탈 프로비저닝을 사용하도록 OpenStack Compute 구성
클러스터형 컴퓨팅 관리자를 사용하도록 Compute를 설정합니다.
# openstack-config --set /etc/nova/nova.conf \ DEFAULT compute_manager ironic.nova.compute.manager.ClusteredComputeManager가상 RAM을 물리적 RAM 할당 비율로 설정합니다.
# openstack-config --set /etc/nova/nova.conf \ DEFAULT ram_allocation_ratio 1.0호스트에 예약할 디스크 공간을 MB로 설정합니다.
# openstack-config --set /etc/nova/nova.conf \ DEFAULT reserved_host_memory_mb 0Bare Metal Provisioning 드라이버를 사용하도록 Compute를 설정합니다.
# openstack-config --set /etc/nova/nova.conf \ DEFAULT compute_driver nova.virt.ironic.IronicDriver베어 메탈 프로비저닝에 대한 올바른 인증 세부 정보를 사용하도록 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 주소 또는 호스트 이름으로 교체합니다.
컴퓨팅 컨트롤러 노드에서 Compute 스케줄러 서비스를 다시 시작합니다.
# systemctl restart openstack-nova-scheduler.service컴퓨팅 노드에서 compute 서비스를 다시 시작합니다.
# systemctl restart openstack-nova-compute.service