2장. 베어 메탈 배포 구성
OpenStack 환경에서 베어 메탈 배포를 활성화하도록 베어 메탈 프로비저닝, 이미지 서비스 및 컴퓨팅을 구성합니다. 다음 섹션에서는 베어 메탈 노드를 배포하는 데 필요한 추가 구성 단계를 간략하게 설명합니다.
2.1. 베어 메탈 프로비저닝 서비스에 대한 OpenStack 구성 생성 링크 복사링크가 클립보드에 복사되었습니다!
2.1.1. OpenStack Networking 구성 구성 링크 복사링크가 클립보드에 복사되었습니다!
DHCP, PXE 부팅 및 기타 요구 사항에 대한 베어 메탈 프로비저닝과 통신하도록 OpenStack 네트워킹을 구성합니다. 아래 절차에서는 베어 메탈에 프로비저닝하기 위한 단일 플랫 네트워크 사용 사례에 대해 OpenStack Networking을 구성합니다. 구성에서는 ML2 플러그인 및 Open vSwitch 에이전트를 사용합니다.
프로비저닝에 사용되는 네트워크 인터페이스가 OpenStack Networking 노드의 원격 연결에 사용되는 네트워크 인터페이스와 동일하지 않은지 확인합니다. 이 절차에서는 베어 메탈 프로비저닝 네트워크 인터페이스를 사용하여 브릿지를 생성하고 원격 연결을 삭제합니다.
다음 절차의 모든 단계는 root 사용자로 로그인한 동안 OpenStack Networking을 호스팅하는 서버에서 수행해야 합니다.
베어 메탈 프로비저닝과 결합하도록 OpenStack 네트워킹 구성
관리자로 ID에 액세스하도록 쉘을 설정합니다.
source ~stack/overcloudrc
# source ~stack/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 베어 메탈 인스턴스를 프로비저닝할 flat 네트워크를 생성합니다.
neutron net-create --tenant-id TENANT_ID sharednet1 --shared \ --provider:network_type flat --provider:physical_network PHYSNET
# neutron net-create --tenant-id TENANT_ID sharednet1 --shared \ --provider:network_type flat --provider:physical_network PHYSNETCopy to Clipboard Copied! Toggle word wrap Toggle overflow TENANT_ID 를 네트워크를 생성할 테넌트의 고유 식별자로 바꿉니다. Cryo statYSNET 을 물리적 네트워크의 이름으로 바꿉니다.
flat 네트워크에 서브넷을 생성합니다.
neutron subnet-create sharednet1 NETWORK_CIDR --name SUBNET_NAME \ --ip-version 4 --gateway GATEWAY_IP --allocation-pool \ start=START_IP,end=END_IP --enable-dhcp
# neutron subnet-create sharednet1 NETWORK_CIDR --name SUBNET_NAME \ --ip-version 4 --gateway GATEWAY_IP --allocation-pool \ start=START_IP,end=END_IP --enable-dhcpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 값을 바꿉니다.
- NETWORK_CIDR 를 서브넷이 나타내는 IP 주소 블록의 CIDR(Classless Inter-Domain Routing) 표현으로 바꿉니다. START_IP 에서 시작한 범위에서 지정한 IP 주소 블록에서 END_IP 로 종료한 IP 주소 블록은 NETWORK_CIDR 에서 지정하는 IP 주소 블록에 속해야 합니다.
- SUBNET_NAME 을 서브넷의 이름으로 바꿉니다.
- GATEWAY_IP 를 새 서브넷의 게이트웨이 역할을 할 시스템의 IP 주소 또는 호스트 이름으로 교체합니다. 이 주소는 NETWORK_CIDR 에서 지정하는 IP 주소 블록 내에 있어야 하지만, START_IP 에서 시작하고 END_IP.com에 의해 종료되는 범위로 지정된 IP 주소 블록 외부에 있어야 합니다.
- START_IP 를 유동 IP 주소가 할당될 새 서브넷 내의 IP 주소 범위를 시작하는 IP 주소로 바꿉니다.
- END_IP 를 유동 IP 주소가 할당될 새 서브넷 내의 IP 주소 범위 끝을 나타내는 IP 주소로 바꿉니다.
네트워크와 서브넷을 라우터에 연결하여 OpenStack Networking 서비스에서 메타데이터 요청을 제공하는지 확인합니다.
neutron router-create ROUTER_NAME
# neutron router-create ROUTER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow ROUTER_NAME을 라우터의 이름으로 바꿉니다.이 라우터에서 Bare Metal 서브넷을 인터페이스로 추가합니다.
neutron router-interface-add ROUTER_NAME BAREMETAL_SUBNET
# neutron router-interface-add ROUTER_NAME BAREMETAL_SUBNETCopy to Clipboard Copied! Toggle word wrap Toggle overflow ROUTER_NAME 을 라우터 이름으로 바꾸고
BAREMETAL_SUBNET을 이전에 생성한 ID 또는 서브넷 이름으로 바꿉니다. 이를 통해cloud-init의 메타데이터 요청을 제공하고 노드를 구성할 수 있습니다.Bare Metal Provisioning 서비스를 실행하는 컴퓨팅 노드에서
/etc/ironic/ironic.conf파일을 업데이트하여 정리 서비스에 동일한 네트워크를 활용합니다. 베어 메탈 프로비저닝 서비스가 실행 중인 컴퓨팅 노드에 로그인하고root사용자로 다음을 실행합니다.openstack-config --set /etc/ironic/ironic.conf neutron cleaning_network_uuid NETWORK_UUID
# openstack-config --set /etc/ironic/ironic.conf neutron cleaning_network_uuid NETWORK_UUIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow NETWORK_UUID 를 이전 단계에서 만든 베어 메탈 프로비저닝 네트워크의 ID로 바꿉니다.
베어 메탈 프로비저닝 서비스를 다시 시작합니다.
systemctl restart openstack-ironic-conductor.service
# systemctl restart openstack-ironic-conductor.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1.2. 베어 메탈 프로비저닝 플레이버 생성 링크 복사링크가 클립보드에 복사되었습니다!
베어 메탈 노드에서 제공하는 것과 같거나 그 이하의 사양(메모리, CPU 및 디스크)이 있어야 하는 배포의 일부로 사용할 플레이버를 생성해야 합니다.
기존 플레이버를 나열합니다.
openstack flavor list
# openstack flavor listCopy to Clipboard Copied! Toggle word wrap Toggle overflow Bare Metal Provisioning 서비스에 대한 새 플레이버를 생성합니다.
openstack flavor create --id auto --ram RAM --vcpus VCPU --disk DISK --public baremetal
# openstack flavor create --id auto --ram RAM --vcpus VCPU --disk DISK --public baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow RAM을 RAM 메모리로 바꾸고, Cryostat를 vCPU 수로,DISK를 디스크 스토리지 값으로 바꿉니다.로컬 디스크에서 부팅되도록 플레이버를 설정합니다. 그렇지 않으면 기본 netboot 방법이 사용됩니다.
openstack flavor set --property capabilities:boot_option='local' baremetal
# openstack flavor set --property capabilities:boot_option='local' baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 값을 사용하여 새 플레이버가 생성되었는지 확인합니다.
openstack flavor list
# openstack flavor listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1.3. 베어 메탈 이미지 생성 링크 복사링크가 클립보드에 복사되었습니다!
베어 메탈 프로비저닝 배포에는 두 가지 이미지 세트( 배포 이미지와 사용자 이미지)가 필요합니다. 배포 이미지는 노드를 부팅하고 사용자 이미지를 베어 메탈 프로비저닝 노드에 복사하는 유일한 용도인 기본 이미지입니다. 배포 이미지가 이미지 서비스에 로드되면 Bare Metal Provisioning 노드를 업데이트하여 배포 이미지를 부팅 이미지로 사용하도록 설정할 수 있습니다. 언더클라우드에서 오버클라우드를 배포 할 때 이미 사용되었기 때문에 배포 이미지를 생성할 필요가 없습니다. 배포 이미지는 다음과 같이 커널 과 램디스크 의 두 부분으로 나눌 수 있습니다.
ironic-python-agent.kernel ironic-python-agent.initramfs
ironic-python-agent.kernel
ironic-python-agent.initramfs
이러한 이미지는 삭제하지 않은 경우 ~/stack/images 디렉터리에 있어야 합니다. 그렇지 않은 경우, 아직 rhosp-director-images-ips 패키지가 설치되어 있으면 이러한 이미지는 /usr/share/rhosp-director-images/ironic-python-agent*.el7ost.tar 파일에 있습니다.
이미지를 추출하여 이미지 서비스에 로드합니다.
openstack image create --container-format aki --disk-format aki --public --file ./ironic-python-agent.kernel bm-deploy-kernel openstack image create --container-format ari --disk-format ari --public --file ./ironic-python-agent.initramfs bm-deploy-ramdisk
# openstack image create --container-format aki --disk-format aki --public --file ./ironic-python-agent.kernel bm-deploy-kernel
# openstack image create --container-format ari --disk-format ari --public --file ./ironic-python-agent.initramfs bm-deploy-ramdisk
필요한 최종 이미지는 베어 메탈 프로비저닝 노드에 배포되는 실제 이미지입니다. 예를 들어 이미 cloud-init 가 있으므로 Red Hat Enterprise Linux KVM 이미지를 다운로드할 수 있습니다.
이미지 서비스에 이미지를 로드합니다.
openstack image create --container-format bare --disk-format qcow2 --public --file ./IMAGE_FILE rhel
# openstack image create --container-format bare --disk-format qcow2 --public --file ./IMAGE_FILE rhel
2.1.4. 베어 메탈 프로비저닝 서비스에 베어 메탈 프로비저닝 노드 추가 링크 복사링크가 클립보드에 복사되었습니다!
베어 메탈 프로비저닝 노드를 베어 메탈 프로비저닝 서비스에 추가하려면, 클라우드를 인스턴스화하고 필요에 따라 수정하는 데 사용된 instackenv.json 파일의 섹션을 복사합니다.
overcloudrc파일을 가져오고.json파일을 가져옵니다.source ~stack/overcloudrc openstack baremetal import --json ./baremetal.json
# source ~stack/overcloudrc # openstack baremetal import --json ./baremetal.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 노드의
driver_info섹션에deploy_kernel및deploy_ramdisk를 지정하여 배포된 이미지를 초기 부팅 이미지로 사용하도록 베어 메탈 노드를 업데이트합니다.ironic node-update NODE_UUID add driver_info/deploy_kernel=DEPLOY_KERNEL_ID driver_info/deploy_ramdisk=DEPLOY_RAMDISK_ID
# ironic node-update NODE_UUID add driver_info/deploy_kernel=DEPLOY_KERNEL_ID driver_info/deploy_ramdisk=DEPLOY_RAMDISK_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
NODE_UUID 를 베어 메탈 노드의 UUID로 바꿉니다. director 노드에서 ironic node-list 명령을 실행하여 이 값을 가져올 수 있습니다. DEPLOY_KERNEL_ID 를 배포 커널 이미지의 ID로 바꿉니다. director 노드에서 glance image-list 명령을 실행하여 이 값을 가져올 수 있습니다. DEPLOY_RAMDISK_ID 를 배포 램디스크 이미지의 ID로 바꿉니다. director 노드에서 glance image-list 명령을 실행하여 이 값을 가져올 수 있습니다.
2.1.5. 베어 메탈 프로비저닝 노드 배포 링크 복사링크가 클립보드에 복사되었습니다!
nova boot 명령을 사용하여 베어 메탈 프로비저닝 노드를 배포합니다.
nova boot --image BAREMETAL_USER_IMAGE --flavor BAREMETAL_FLAVOR --nic net-id=IRONIC_NETWORK_ID --key default MACHINE_HOSTNAME
# nova boot --image BAREMETAL_USER_IMAGE --flavor BAREMETAL_FLAVOR --nic net-id=IRONIC_NETWORK_ID --key default MACHINE_HOSTNAME
BAREMETAL_USER_IMAGE 를 이미지 서비스에 로드된 이미지, BAREMETAL_FLAVOR 을 베어 메탈 배포용 플레이버로, IRONIC_NETWORK_ID 를 OpenStack Networking 서비스의 베어 메탈 프로비저닝 네트워크의 ID로, MACHINE_HOSTNAME 을 배포 후 원하는 시스템의 호스트 이름으로 교체합니다.