8장. 오버클라우드를 배포하기 전에 베어 메탈 노드 프로비저닝

중요

이 기능은 이번 릴리스에서 기술 프리뷰로 제공되므로 Red Hat에서 완전히 지원되지 않습니다. 테스트 용도로만 사용해야 하며 프로덕션 환경에 배포해서는 안 됩니다. 기술 프리뷰 기능에 대한 자세한 내용은 적용 범위 상세 정보를 참조하십시오.

오버클라우드 배포 프로세스에는 다음과 같은 두 개의 기본 작업이 포함되어 있습니다.

  • 노드 프로비저닝
  • 오버클라우드 배포

이 작업을 개별 프로세스로 나누면 이 프로세스와 관련된 위험을 완화하고 실패 지점을 더 효율적으로 파악할 수 있습니다.

  1. 베어 메탈 노드를 프로비저닝합니다.

    1. yaml 형식으로 노드 정의 파일을 작성합니다.
    2. 노드 정의 파일을 포함하여 프로비저닝 명령을 실행합니다.
  2. 오버클라우드를 배포합니다.

    1. 프로비저닝 명령에서 생성하는 Heat 환경 파일을 포함하여 배포 명령을 실행합니다.

프로비저닝 프로세스는 노드를 프로비저닝하고, 노드 개수, 예측 노드 배치, 사용자 지정 이미지, 사용자 지정 NIC를 비롯하여 다양한 노드 사양을 포함하는 Heat 환경 파일을 생성합니다. 오버클라우드를 배포할 때 배포 명령에 이 파일을 추가하십시오.

중요

사전 프로비저닝된 노드와 director 프로비저닝된 노드를 결합할 수 없습니다.

8.1. 오버클라우드에 노드 등록

director에는 수동으로 만든 노드 정의 템플릿이 있어야 합니다. 이 템플릿은 JSON 포멧 및 YAML 포멧을 사용하고, 노드의 하드웨어 및 전원 관리 세부 정보를 포함합니다.

절차

  1. 노드를 나열하는 템플릿을 생성합니다. 다음 JSON 및 YAML 템플릿 예제를 사용하여 노드 정의 템플릿을 구성하는 방법을 파악합니다.

    JSON 템플릿 예

    {
        "nodes":[
            {
                "mac":[
                    "bb:bb:bb:bb:bb:bb"
                ],
                "name":"node01",
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.168.24.205"
            },
            {
                "mac":[
                    "cc:cc:cc:cc:cc:cc"
                ],
                "name":"node02",
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.168.24.206"
            }
        ]
    }

    YAML 템플릿 예

    nodes:
      - mac:
          - "bb:bb:bb:bb:bb:bb"
        name: "node01"
        cpu: 4
        memory: 6144
        disk: 40
        arch: "x86_64"
        pm_type: "ipmi"
        pm_user: "admin"
        pm_password: "p@55w0rd!"
        pm_addr: "192.168.24.205"
      - mac:
          - cc:cc:cc:cc:cc:cc
        name: "node02"
        cpu: 4
        memory: 6144
        disk: 40
        arch: "x86_64"
        pm_type: "ipmi"
        pm_user: "admin"
        pm_password: "p@55w0rd!"
        pm_addr: "192.168.24.206"

    이 템플릿에는 다음 속성이 포함되어 있습니다.

    name
    노드의 논리 이름입니다.
    pm_type

    사용하려는 전원 관리 드라이버. 이 예에서는 IPMI 드라이버(ipmi)를 사용합니다.

    참고

    IPMI는 지원되는 기본 전원 관리 드라이버입니다. 지원되는 추가 전원 관리 유형 및 옵션에 관한 자세한 내용은 부록 A. 전원 관리 드라이버를 참조하십시오. 이러한 전원 관리 드라이버가 예상대로 작동하지 않는 경우 IPMI를 전원 관리에 사용합니다.

    pm_user; pm_password
    IPMI 사용자 이름 및 암호입니다.
    pm_addr
    IPMI 장치의 IP 주소입니다.
    pm_port(선택 사항)
    특정 IPMI 장치에 액세스할 수 있는 포트입니다.
    mac
    (선택 사항) 노드에 있는 네트워크 인터페이스의 MAC 주소 목록입니다. 각 시스템의 프로비저닝 NIC에는 MAC 주소만 사용합니다.
    cpu
    (선택 사항) 노드에 있는 CPU 수입니다.
    memory
    (선택 사항) 메모리 크기(MB)입니다.
    disk
    (선택 사항) 하드 디스크의 크기(GB)입니다.
    arch

    (선택 사항) 시스템 아키텍처입니다.

    중요

    다중 아키텍처 클라우드를 빌드하는 경우 x86_64ppc64le 아키텍처를 사용하여 노드를 구분하려면 arch 키가 필요합니다.

  2. 템플릿을 생성한 후 다음 명령을 실행하여 포멧과 구문을 확인합니다.

    $ source ~/stackrc
    (undercloud) $ openstack overcloud node import --validate-only ~/nodes.json
  3. stack 사용자의 홈 디렉터리(/home/stack/nodes.json)에 파일을 저장하고 다음 명령을 실행하여 템플릿을 director로 가져옵니다.

    (undercloud) $ openstack overcloud node import ~/nodes.json

    이 명령을 수행하면 템플릿의 각 노드가 director에 등록됩니다.

  4. 노드 등록 및 구성이 완료될 때까지 기다립니다. 완료되면 노드가 director에 성공적으로 등록되어 있는지 확인합니다.

    (undercloud) $ openstack baremetal node list