2.3. 물리적 머신을 베어 메탈 노드로 추가
인스턴스를 프로비저닝할 물리적 시스템을 노드로 추가하고 Compute에서 사용 가능한 하드웨어를 볼 수 있는지 확인합니다. 컴퓨팅의 리소스 추적기가 주기적으로 동기화되므로 Compute에 새 리소스에 대한 즉시 알림이 표시되지 않습니다. 다음 주기 작업이 실행된 후 변경 사항이 표시됩니다. 이 값인 scheduler_driver_task_period 는 /etc/nova/nova.conf 에서 업데이트할 수 있습니다. 기본 기간은 60초입니다.
시스템이 베어 메탈 노드로 등록된 후 하드웨어 세부 정보를 검색하거나 수동으로 추가할 수 있습니다.
2.3.1. 하드웨어 인트로스펙션을 사용하여 노드 추가 링크 복사링크가 클립보드에 복사되었습니다!
물리적 머신을 베어 메탈 노드로 등록한 다음 openstack-ironic-inspector 를 사용하여 노드의 하드웨어 세부 정보를 감지하고 각 이더넷 MAC 주소에 대한 포트를 생성합니다. 다음 절차의 모든 단계는 root 사용자로 로그인하는 동안 Bare Metal Provisioning conductor 서비스를 호스팅하는 서버에서 수행해야 합니다.
하드웨어 인트로스펙션을 사용하여 노드 추가
관리자로 Identity를 사용하도록 쉘을 설정합니다.
# source ~/keystonerc_admin새 노드를 추가합니다.
# ironic node-create -d DRIVER_NAMEDRIVER_NAME 을 Bare Metal Provisioning이 이 노드를 프로비저닝하는 데 사용할 드라이버 이름으로 바꿉니다. /etc/ironic/ironic.conf 파일에서 이 드라이버를 활성화해야 합니다. 노드를 생성하려면 최소한 드라이버 이름을 지정해야 합니다.
중요노드의 고유 식별자를 기록해 둡니다.
논리적 이름 또는 UUID로 노드를 참조할 수 있습니다. 선택적으로 노드에 논리 이름을 할당합니다.
# ironic node-update NODE_UUID add name=NAMENODE_UUID 를 노드의 고유 식별자로 바꿉니다. NAME 을 노드의 논리 이름으로 바꿉니다.
드라이버에 필요한 노드 정보를 확인한 다음 베어 메탈 프로비저닝에서 노드를 관리할 수 있도록 노드 드라이버 정보를 업데이트합니다.
# ironic driver-properties DRIVER_NAME # ironic node-update NODE_UUID add \ driver_info/PROPERTY=VALUE \ driver_info/PROPERTY=VALUE다음 값을 바꿉니다.
- DRIVER_NAME 을 속성을 표시할 드라이버의 이름으로 바꿉니다. /etc/ironic/ironic.conf 파일에서 드라이버가 활성화되어 있지 않으면 정보가 반환되지 않습니다.
- NODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다.
- PROPERTY 를 ironic driver-properties 명령에서 반환하는 필수 속성으로 바꿉니다.
- VALUE 를 해당 속성에 유효한 값으로 바꿉니다.
배포 커널을 지정하고 노드 드라이버의 램디스크를 배포합니다.
# ironic node-update NODE_UUID add \ driver_info/deploy_kernel=KERNEL_UUID \ driver_info/deploy_ramdisk=INITRAMFS_UUID다음 값을 바꿉니다.
- NODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다.
- KERNEL_UUID 를 이미지 서비스에 업로드된 .kernel 이미지의 고유 식별자로 바꿉니다.
- INITRAMFS_UUID 를 이미지 서비스에 업로드된 .initramfs 이미지의 고유 식별자로 바꿉니다.
PXE 또는 가상 미디어를 통해 대신 노드의 디스크에 설치된 로컬 부트 로더에서 초기 배포 후 재부팅하도록 노드를 구성합니다. 노드를 프로비저닝하는 데 사용되는 플레이버에도 로컬 부팅 기능을 설정해야 합니다. 로컬 부팅을 활성화하려면 노드에 사용되는 이미지에 grub2 가 포함되어야 합니다. 로컬 부팅을 구성합니다.
# ironic node-update NODE_UUID add \ properties/capabilities="boot_option:local"NODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다.
베어 메탈 노드를
manageable상태로 이동합니다.# ironic node-set-provision-state NODE_UUID manageNODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다.
인트로스펙션을 시작합니다.
# openstack baremetal introspection start NODE_UUID --discoverd-url http://overcloud IP:5050-
NODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다. 노드를 프로비저닝하기 전에 노드 검색 및 인트로스펙션 프로세스를 실행하여 완료해야 합니다. 노드 인트로스펙션 상태를 확인하려면 ironic node-list 를 실행하고
Provision State를 찾습니다. 인트로스펙션에 성공한 후 노드가사용 가능상태가 됩니다. -
오버클라우드 IP 를 ironic.conf 에 이전에 설정한
service_url값으로 바꿉니다.
-
NODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다. 노드를 프로비저닝하기 전에 노드 검색 및 인트로스펙션 프로세스를 실행하여 완료해야 합니다. 노드 인트로스펙션 상태를 확인하려면 ironic node-list 를 실행하고
노드 설정을 확인합니다.
# ironic node-validate NODE_UUID +------------+--------+----------------------------+ | Interface | Result | Reason | +------------+--------+----------------------------+ | console | None | not supported | | deploy | True | | | inspect | True | | | management | True | | | power | True | | +------------+--------+----------------------------+NODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다. 위의 명령 출력은 각 인터페이스에 대해
True또는None을 보고해야 합니다.None으로 표시된 인터페이스는 구성되지 않은 인터페이스 또는 드라이버에서 지원되지 않는 인터페이스입니다.
2.3.2. 수동으로 노드 추가 링크 복사링크가 클립보드에 복사되었습니다!
물리적 머신을 베어 메탈 노드로 등록한 다음 수동으로 하드웨어 세부 정보를 추가하고 각 이더넷 MAC 주소에 대한 포트를 생성합니다. 다음 절차의 모든 단계는 root 사용자로 로그인하는 동안 Bare Metal Provisioning conductor 서비스를 호스팅하는 서버에서 수행해야 합니다.
하드웨어 인트로스펙션 없이 노드 추가
관리자로 Identity를 사용하도록 쉘을 설정합니다.
# source ~/keystonerc_admin새 노드를 추가합니다.
# ironic node-create -d DRIVER_NAMEDRIVER_NAME 을 Bare Metal Provisioning이 이 노드를 프로비저닝하는 데 사용할 드라이버 이름으로 바꿉니다. /etc/ironic/ironic.conf 파일에서 이 드라이버를 활성화해야 합니다. 노드를 생성하려면 최소한 드라이버 이름을 지정해야 합니다.
중요노드의 고유 식별자를 기록해 둡니다.
논리적 이름 또는 UUID로 노드를 참조할 수 있습니다. 선택적으로 노드에 논리 이름을 할당합니다.
# ironic node-update NODE_UUID add name=NAMENODE_UUID 를 노드의 고유 식별자로 바꿉니다. NAME 을 노드의 논리 이름으로 바꿉니다.
드라이버에 필요한 노드 정보를 확인한 다음 베어 메탈 프로비저닝에서 노드를 관리할 수 있도록 노드 드라이버 정보를 업데이트합니다.
# ironic driver-properties DRIVER_NAME # ironic node-update NODE_UUID add \ driver_info/PROPERTY=VALUE \ driver_info/PROPERTY=VALUE다음 값을 바꿉니다.
- DRIVER_NAME 을 속성을 표시할 드라이버의 이름으로 바꿉니다. /etc/ironic/ironic.conf 파일에서 드라이버가 활성화되어 있지 않으면 정보가 반환되지 않습니다.
- NODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다.
- PROPERTY 를 ironic driver-properties 명령에서 반환하는 필수 속성으로 바꿉니다.
- VALUE 를 해당 속성에 유효한 값으로 바꿉니다.
배포 커널을 지정하고 노드 드라이버의 램디스크를 배포합니다.
# ironic node-update NODE_UUID add \ driver_info/deploy_kernel=KERNEL_UUID \ driver_info/deploy_ramdisk=INITRAMFS_UUID다음 값을 바꿉니다.
- NODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다.
- KERNEL_UUID 를 이미지 서비스에 업로드된 .kernel 이미지의 고유 식별자로 바꿉니다.
- INITRAMFS_UUID 를 이미지 서비스에 업로드된 .initramfs 이미지의 고유 식별자로 바꿉니다.
노드의 하드웨어 사양과 일치하도록 노드의 속성을 업데이트합니다.
# ironic node-update NODE_UUID add \ properties/cpus=CPU \ properties/memory_mb=RAM_MB \ properties/local_gb=DISK_GB \ properties/cpu_arch=ARCH다음 값을 바꿉니다.
- NODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다.
- CPU 를 사용할 CPU 수로 바꿉니다.
- RAM_MB 를 사용할 RAM(MB)으로 바꿉니다.
- DISK_GB 를 사용할 디스크 크기(GB)로 바꿉니다.
- ARCH 를 사용할 아키텍처 유형으로 교체합니다.
PXE 또는 가상 미디어를 통해 대신 노드의 디스크에 설치된 로컬 부트 로더에서 초기 배포 후 재부팅하도록 노드를 구성합니다. 노드를 프로비저닝하는 데 사용되는 플레이버에도 로컬 부팅 기능을 설정해야 합니다. 로컬 부팅을 활성화하려면 노드에 사용되는 이미지에 grub2 가 포함되어야 합니다. 로컬 부팅을 구성합니다.
# ironic node-update NODE_UUID add \ properties/capabilities="boot_option:local"NODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다.
노드의 네트워크 인터페이스 카드를 Bare Metal Provisioning에 알립니다. 각 NIC의 MAC 주소로 포트를 생성합니다.
# ironic port-create -n NODE_UUID -a MAC_ADDRESSNODE_UUID 를 노드의 고유 식별자로 바꿉니다. MAC_ADDRESS 를 노드의 NIC의 MAC 주소로 바꿉니다.
노드 설정을 확인합니다.
# ironic node-validate NODE_UUID +------------+--------+----------------------------+ | Interface | Result | Reason | +------------+--------+----------------------------+ | console | None | not supported | | deploy | True | | | inspect | None | not supported | | management | True | | | power | True | | +------------+--------+----------------------------+NODE_UUID 를 노드의 고유 식별자로 바꿉니다. 또는 노드의 논리 이름을 사용합니다. 위의 명령 출력은 각 인터페이스에 대해
True또는None을 보고해야 합니다.None으로 표시된 인터페이스는 구성되지 않은 인터페이스 또는 드라이버에서 지원되지 않는 인터페이스입니다.