10.3.11. inventory.yml 파일

inventory.yml 파일을 사용하여 설치하려는 OpenShift Container Platform 클러스터의 요소를 정의하고 생성합니다. 여기에는 RHCOS (Red Hat Enterprise Linux CoreOS) 이미지, 가상 머신 템플릿, 부트스트랩 머신, 컨트롤 플레인 노드 및 작업자 노드와 같은 요소가 포함됩니다. 또한 inventory.yml을 사용하여 클러스터를 제거합니다.

다음 inventory.yml예에서는 매개 변수와 매개 변수 기본값을 보여줍니다. 이러한 기본값의 수량과 숫자는 RHV 환경에서 프로덕션 OpenShift Container Platform 클러스터를 실행하기 위한 요구 사항을 충족합니다.

inventory.yml 파일 예

---
all:
  vars:

    ovirt_cluster: "Default"
    ocp:
      assets_dir: "{{ lookup('env', 'ASSETS_DIR') }}"
      ovirt_config_path: "{{ lookup('env', 'HOME') }}/.ovirt/ovirt-config.yaml"

    # ---
    # {op-system} section
    # ---
    rhcos:
      image_url: "https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.6/latest/rhcos-openstack.x86_64.qcow2.gz"
      local_cmp_image_path: "/tmp/rhcos.qcow2.gz"
      local_image_path: "/tmp/rhcos.qcow2"

    # ---
    # Profiles section
    # ---
    control_plane:
      cluster: "{{ ovirt_cluster }}"
      memory: 16GiB
      sockets: 4
      cores: 1
      template: rhcos_tpl
      operating_system: "rhcos_x64"
      type: high_performance
      graphical_console:
        headless_mode: false
        protocol:
        - spice
        - vnc
      disks:
      - size: 120GiB
        name: os
        interface: virtio_scsi
        storage_domain: depot_nvme
      nics:
      - name: nic1
        network: lab
        profile: lab

    compute:
      cluster: "{{ ovirt_cluster }}"
      memory: 16GiB
      sockets: 4
      cores: 1
      template: worker_rhcos_tpl
      operating_system: "rhcos_x64"
      type: high_performance
      graphical_console:
        headless_mode: false
        protocol:
        - spice
        - vnc
      disks:
      - size: 120GiB
        name: os
        interface: virtio_scsi
        storage_domain: depot_nvme
      nics:
      - name: nic1
        network: lab
        profile: lab

    # ---
    # Virtual machines section
    # ---
    vms:
    - name: "{{ metadata.infraID }}-bootstrap"
      ocp_type: bootstrap
      profile: "{{ control_plane }}"
      type: server
    - name: "{{ metadata.infraID }}-master0"
      ocp_type: master
      profile: "{{ control_plane }}"
    - name: "{{ metadata.infraID }}-master1"
      ocp_type: master
      profile: "{{ control_plane }}"
    - name: "{{ metadata.infraID }}-master2"
      ocp_type: master
      profile: "{{ control_plane }}"
    - name: "{{ metadata.infraID }}-worker0"
      ocp_type: worker
      profile: "{{ compute }}"
    - name: "{{ metadata.infraID }}-worker1"
      ocp_type: worker
      profile: "{{ compute }}"
    - name: "{{ metadata.infraID }}-worker2"
      ocp_type: worker
      profile: "{{ compute }}"

중요

매개 변수 설명이 "Enter"로 시작하는 매개 변수의 값을 입력합니다. 그렇지 않으면 기본값을 사용하거나 새 값으로 변경할 수 있습니다.

일반 섹션

  • ovirt_cluster: OpenShift Container Platform 클러스터를 설치할 기존 RHV 클러스터의 이름을 입력합니다.
  • ocp.assets_dir: openshift-install 설치 프로그램이 생성하는 파일을 저장하기 위해 생성하는 디렉터리의 경로입니다.
  • ocp.ovirt_config_path: 설치 프로그램이 생성하는 ovirt-config.yaml 파일의 경로입니다(예: ./wrk/install-config.yaml ). 이 파일에는 Manager의 REST API와 상호 작용하는 데 필요한 인증 정보가 포함되어 있습니다.

RHCOS(Red Hat Enterprise Linux CoreOS) 섹션

  • image_url: 다운로드용으로 지정한 RHCOS 이미지의 URL을 입력합니다.
  • local_cmp_image_path: 압축된 RHCOS 이미지의 로컬 다운로드 디렉터리 경로입니다.
  • local_image_path: 추출된 RHCOS 이미지의 로컬 디렉터리 경로입니다.

프로필 섹션

이 섹션은 두 가지 프로필로 구성됩니다.

  • control_plane: 부트스트랩 및 컨트롤 플레인 노드의 프로필입니다.
  • 컴퓨팅: 컴퓨팅 플레인에 있는 작업자 노드의 프로필입니다.

이러한 프로필에는 다음과 같은 매개 변수가 있습니다. 매개 변수의 기본값은 프로덕션 클러스터 실행을 위한 최소 요구 사항을 충족합니다. 이러한 값을 증가시키거나 사용자 지정하여 워크로드 요구 사항을 충족할 수 있습니다.

  • 클러스터: 이 값은 일반 섹션의 ovirt_cluster 에서 클러스터 이름을 가져옵니다.
  • 메모리: 가상 시스템의 메모리 크기(GB)입니다.
  • 소켓: 가상 시스템의 소켓 수입니다.
  • 코어: 가상 시스템의 코어 수입니다.
  • 템플릿: 가상 머신 템플릿의 이름입니다. 여러 클러스터를 설치할 계획이고 이러한 클러스터가 서로 다른 사양을 포함하는 템플릿을 사용하는 경우 템플릿 이름 앞에 클러스터 ID를 추가합니다.
  • operating_system: 가상 머신의 게스트 운영 체제 유형입니다. oVirt/RHV 버전 4.4에서 이 값은 rhcos_x64이어야 하므로 Ignition script의 값이 가상 시스템에 전달될 수 있습니다.
  • type: 가상 시스템의 유형으로 server 를 입력합니다.

    중요

    type 매개 변수의 값을 high_performance에서 server로 변경해야 합니다.

  • 디스크: 디스크 사양. control_planecompute 노드는 서로 다른 스토리지 도메인을 가질 수 있습니다.
  • 크기: 최소 디스크 크기입니다.
  • name: RHV의 대상 클러스터에 연결된 디스크 이름을 입력합니다.
  • interface: 지정한 디스크의 인터페이스 유형을 입력합니다.
  • storage_domain: 지정한 디스크의 스토리지 도메인을 입력합니다.
  • NIC: 가상 시스템에서 사용하는 이름과 네트워크를 입력합니다. 가상 네트워크 인터페이스 프로필을 지정할 수도 있습니다. 기본적으로 NIC는 oVirt/RHV MAC 풀에서 MAC 주소를 가져옵니다.

가상 머신 섹션

이 마지막 섹션인 vms는 클러스터에서 생성하고 배포할 가상 시스템을 정의합니다. 기본적으로 프로덕션 환경에 대해 최소한의 컨트롤 플레인 및 작업자 노드를 제공합니다.

vms에는 세 가지 필수 요소가 있습니다.

  • name: 가상 시스템의 이름입니다. 이 경우 metadata.infraID는 가상 머신 이름 앞에 metadata.yml 파일의 인프라 ID를 추가합니다.
  • ocp_type: OCP 클러스터에서 가상 시스템의 역할입니다. 가능한 값은 bootstrap, master, worker입니다.
  • profile: 각 가상 머신이 사양을 상속하는 프로필의 이름입니다. 이 예제에서 가능한 값은 control_plane 또는 compute입니다.

    가상 머신이 해당 프로필에서 상속하는 값을 재정의할 수 있습니다. 이렇게 하려면 inventory.yml의 가상 머신에 프로필 속성의 이름을 추가하고 재정의 값을 할당합니다. 이 예제를 보려면 이전 inventory.yml 예제에서 name: "{{ metadata.infraID }}-bootstrap" 가상 머신을 검사합니다. server 값이 있는 type 속성이 있으며, 이 가상 시스템이 control_plane 프로필에서 상속하는 type 속성 값을 재정의합니다.

메타 데이터 변수

가상 머신의 경우 metadata.infraID는 Ignition 파일을 빌드할 때 생성한 metadata.json 파일의 인프라 ID를 가상 머신의 이름 앞에 추가합니다.

Playbook은 ocp.assets_dir에 있는 특정 파일에서 infraID 읽고 다음 코드를 사용합니다.

---
- name: include metadata.json vars
  include_vars:
    file: "{{ ocp.assets_dir }}/metadata.json"
    name: metadata

  ...