13.3.11. inventory.yml 文件

您可以使用 inventory.yml 文件来定义并创建您要安装的 OpenShift Container Platform 集群的元素。这包括 Red Hat Enterprise Linux CoreOS(RHCOS)镜像、虚拟机模板、bootstrap 机器、control plane 节点和 worker 节点等元素。您还可以使用 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" 开头的参数输入值。 否则,您可以使用默认值或将其替换为新值。

常规部分

  • ovirt_cluster:输入现有 RHV 集群的名称,在其中安装 OpenShift Container Platform 集群。
  • OCP.assets_diropenshift-install 安装程序创建的目录的路径以存储它生成的文件。
  • OCP.ovirt_config_path:安装程序生成的 ovirt-config.yaml 文件的路径,如 ./wrk/install-config.yaml。此文件包含与管理器的 REST API 交互所需的凭据。

Red Hat Enterprise Linux CoreOS(RHCOS)部分

  • image_url:输入您指定的用于下载的 RHCOS 镜像的 URL。
  • local_cmp_image_path:压缩的 RHCOS 镜像的本地下载目录的路径。
  • local_image_path:提取的 RHCOS 镜像的本地目录路径。

配置集部分

本节由两个配置集组成:

  • control_plane:bootstrap 和 control plane 节点的配置集。
  • compute:compute plane 中 worker 节点的配置集。

这些配置集有以下参数。参数的默认值满足运行生产集群的最低要求。您可以增加或自定义这些值来满足您的工作负载要求。

  • Cluster:这个值从 General Section 中的 ovirt_cluster 获取集群名称。
  • memory:虚拟机的内存量(以 GB 为单位)。
  • socket:虚拟机的插槽数。
  • cores:虚拟机的内核数。
  • template:虚拟机模板的名称。如果计划安装多个集群,且这些集群使用包含不同规格的模板,则使用集群 ID 前附加模板名称。
  • operating_system:虚拟机中客户端操作系统的类型。对于 oVirt/RHV 版本 4.4,此值必须是 rhcos_x64,以便 Ignition 脚本的值可以传递给虚拟机。
  • type:输入 server 作为虚拟机的类型。

    重要

    您必须将 type 参数的值从 high_performance 改为 server

  • disks:磁盘规格。control_planecompute 节点可以有不同的存储域。
  • size:最小磁盘大小。
  • name:输入连接到 RHV 中目标集群的磁盘名称。
  • interface:输入您指定的磁盘接口类型。
  • storage_domain:输入您指定的磁盘的存储域。
  • nics:输入虚拟机使用的名称网络。您还可以指定虚拟网络接口配置集。默认情况下,NIC 从 oVirt/RHV MAC 池中获取其 MAC 地址。

虚拟机部分

最后部分 vms 定义您要在集群中创建和部署的虚拟机。默认情况下,它为生产环境提供最少的 control plane 和 worker 节点数量。

虚拟机包含三个所需的元素:

  • name:虚拟机的名称。在这种情况下, metadata.infraID 会使用 metadata.yml 文件中的基础架构 ID 预先填充虚拟机名称。
  • ocp_type:OCP 集群中的虚拟机的角色。可能的值有 bootstrapmasterworker
  • profile:每个虚拟机从中继承规格的配置集名称。本例中可能的值是 control_planecompute

    您可以覆盖虚拟机从其配置集中继承的值。要做到这一点,您要将配置集属性的名称添加到 inventory.yml 中的虚拟机,并为它分配一个覆盖值。要查看这个示例,请检查前面的 inventory .yml 示例中的 name: "{{ metadata.infraID }}-bootstrap" 虚拟机:它有一个 type 属性,其值为 server,这会覆盖虚拟机从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

  ...