13.4.12. inventory.yml ファイル

inventory.yml ファイルを使用して、インストールする OpenShift Container Platform クラスターの各種の要素を定義し、作成します。これには、Red Hat Enterprise Linux CoreOS(RHCOS)イメージ、仮想マシンテンプレート、ブートストラップマシン、コントロールプレーンノード、ワーカーノードなどの要素が含まれます。また、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.7/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」から始まる説明のあるパラメーターの値を入力します。 それ以外の場合は、デフォルト値を使用するか、またはこえを新しい値に置き換えることができます。

General セクション

  • 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 との対話に必要な認証情報が含まれます。

Red Hat Enterprise Linux CoreOS (RHCOS) セクション

  • image_url: ダウンロード用に指定した RHCOS イメージの URL を入力します。
  • local_cmp_image_path: 圧縮された RHCOS イメージのローカルダウンロードディレクトリーのパス。
  • local_image_path: 展開した RHCOS イメージのローカルディレクトリーのパス。

Profiles セクション

このセクションは、2 つのプロファイルで構成されます。

  • control_plane: ブートストラップおよびコントロールプレーンノードのプロファイル。
  • compute: コンピュートプレーン内のワーカーノードのプロファイル。

これらのプロファイルには以下のパラメーターが含まれます。パラメーターのデフォルト値は、実稼働クラスターを実行するために必要な最小要件を満たします。これらの値は、ワークロードの要件に応じて増減したり、カスタマイズしたりできます。

  • cluster: 値は、General セクションの ovirt_cluster からクラスター名を取得します。
  • memory: 仮想マシンに必要なメモリーの量 (GB)。
  • sockets: 仮想マシンのソケット数。
  • cores: 仮想マシンのコア数。
  • template: 仮想マシンテンプレートの名前。複数のクラスターをインストールする計画があり、これらのクラスターが異なる仕様が含まれるテンプレートを使用する場合には、テンプレート名の先頭にクラスターの ID を付けます。
  • operating_system: 仮想マシンのゲストオペレーティングシステムのタイプ。oVirt/RHV バージョン 4.4 では、Ignition script の値を仮想マシンに渡すことができるようにするために、この値を rhcos_x64 にする必要があります。
  • type: 仮想マシンのタイプとして server を入力します。

    重要

    type パラメーターの値を high_performance から server に変更する必要があります。

  • disks: ディスクの仕様。control_planecompute ノードには、異なるストレージドメインを設定できます。
  • size: ディスクの最小サイズ。
  • name: RHV のターゲットクラスターに接続されたディスクの名前を入力します。
  • interface: 指定したディスクのインターフェースタイプを入力します。
  • storage_domain: 指定したディスクのストレージドメインを入力します。
  • nics: 仮想マシンが使用する name および network を入力します。仮想ネットワークインターフェースプロファイルを指定することもできます。デフォルトでは、NIC は oVirt/RHV MAC プールから MAC アドレスを取得します。

仮想マシンセクション

この最後のセクション vms は、クラスターで作成およびデプロイする予定の仮想マシンを定義します。デフォルトで、実稼働環境用の最小数のコントロールプレーンおよびワーカーノードが提供されます。

vms には 3 つの必須要素が含まれます。

  • name: 仮想マシンの名前。この場合、metadata.infraID は、仮想マシン名の先頭に metadata.yml ファイルのインフラストラクチャー ID を付けます。
  • ocp_type: OCP クラスター内の仮想マシンのロール。使用できる値は bootstrapmasterworker です。
  • profile: それぞれの仮想マシンが仕様を継承するプロファイルの名前。この例で使用可能な値は control_plane または compute です。

    仮想マシンがプロファイルから継承する値を上書きできます。これを実行するには、inventory.yml の仮想マシンに profile 属性の名前を追加し、これに上書きする値を割り当てます。この例を確認するには、直前の inventory.yml の例の name: "{{ metadata.infraID }}-bootstrap" 仮想マシンを検査します。これには値が servertype 属性があり、この仮想マシンがそれ以外の場合に 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

  ...