4.9. 添加清单和补丁


您可以在 Assisted Installer web 控制台中为系统清单上传自定义清单和补丁。您还可以替换和删除这些文件。

有关使用 Assisted Installer API 添加和修改自定义清单的详情,请参考使用 API 添加自定义清单

4.9.1. 准备自定义清单和清单补丁

本节概述了自定义清单和系统清单补丁,包括格式化注意事项和上传文件所需的命名约定。

按照以下准则,确保您上传的文件符合系统要求。

4.9.1.1. 自定义清单

自定义清单是一个 JSON 或 YAML 文件,其包含辅助安装程序用户界面目前不支持的高级配置。您可以创建一个自定义清单,或使用第三方提供的清单。

您可以将自定义清单从文件系统上传到 openshift 文件夹或 manifests 文件夹。允许的自定义清单文件数量没有限制。

一次只能上传一个文件。但是,每个上传的 YAML 文件可以包含多个自定义清单。上传多文档 YAML 清单比单独添加 YAML 文件要快。

对于包含一个自定义清单的文件,可接受的文件扩展名包括 .yaml.yml.json。对于包含多个自定义清单的文件,可接受的文件类型包括 .yaml.yml

一个自定义清单示例

apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
  labels:
    machineconfiguration.openshift.io/role: master
  name: 99-openshift-machineconfig-master-kargs
spec:
  kernelArguments:
    - loglevel=7
Copy to Clipboard Toggle word wrap

多个自定义清单示例

apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
  labels:
    machineconfiguration.openshift.io/role: master
  name: 99-openshift-machineconfig-master-kargs
spec:
  kernelArguments:
    - loglevel=7
---
apiVersion: machineconfiguration.openshift.io/v2
kind: MachineConfig
metadata:
  labels:
    machineconfiguration.openshift.io/role: worker
  name: 98-openshift-machineconfig-worker-kargs
spec:
  kernelArguments:
    - loglevel=5
Copy to Clipboard Toggle word wrap

注意

当在 Oracle Cloud Infrastructure (OCI)外部平台上安装 OpenShift Container Platform 时,您必须添加 Oracle 提供的自定义清单。对于其它外部合作伙伴集成,如 vSphere 或 Nutanix,此步骤是可选的。

4.9.1.2. 系统清单的补丁

清单补丁文件符合 YAML 补丁的语法。它的目的是修改在准备过程中由 Assisted Installer 自动创建的系统清单。清单补丁用于调整调整、管理更新或以结构化和自动化方式应用更改。这种方法可确保一致性,并有助于避免在更改复杂 YAML 文档时出现错误。

4.9.1.2.1. 系统清单补丁的常规 YAML 语法

yaml-patch 软件包是 JavaScript Object Notation (JSON) Patch 的实现,直接转换为 YAML。系统清单 YAML 补丁的一般语法如下:

- op: <add | remove | replace | move | copy | test> 
1

  from: <source-path> 
2

  path: <target-path> 
3

  value: <any-yaml-structure> 
4
Copy to Clipboard Toggle word wrap
1
如需了解每个操作的说明,请参阅 JavaScript Object Notation (JSON)补丁
2
仅对 movecopy 操作有效。
3
始终是必需的。
4
仅对 add, replacetest 操作有效。
4.9.1.2.2. 系统清单补丁的命名惯例

在为系统清单创建新补丁时,使用以下命名约定:<file to be patched>.patch_<suffix>。名称本身可确保正确的清单被覆盖,后缀允许在同一清单中应用多个补丁。

例如,如果原始文件的名称为 50-masters-chrony-configuration.yaml,则新补丁应称为 50-masters-chrony-configuration.yaml.patch_1_apply-chrony-dhcp 或类似内容。

以下示例概述了修复系统清单的步骤,并演示了如何应用命名约定:

  1. Assisted Installer 在安装时会自动将以下 YAML 文件添加到集群清单中。

    目录:OpenShift
    Filename: 50-masters-chrony-configuration.yaml

    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfig
    metadata:
      labels:
        machineconfiguration.openshift.io/role: worker
      name: 50-masters-chrony-configuration
    spec:
      config:
        ignition:
          version: 3.1.0
        storage:
          files:
          - contents:
              source: data:text/plain;charset=utf-8;base64,CnBvb2wgMC5yaGVsLnBvb2wubnRwLm9yZyBpYnVyc3QKZHJpZnRmaWxlIC92YXIvbGliL2Nocm9ueS9kcmlmdAptYWtlc3RlcCAxLjAgMwpydGNzeW5jCmxvZ2RpciAvdmFyL2xvZy9jaHJvbnkKc2VydmVyIHN0YXRpYy4xOTAuMTExLjE2MS41LmNsaWVudHMueW91ci1zZXJ2ZXIuZGUgaWJ1cnN0CnNlcnZlciAyMDguNjcuNzIuNDMgaWJ1cnN0CnNlcnZlciBoMTM1LTEzNC0xMTEtMTIyLm1kc253aS5icm9hZGJhbmQuZHluYW1pYy50ZHMubmV0IGlidXJzdApzZXJ2ZXIgdGltZS5yaWNoaWVtY2ludG9zaC5jb20gaWJ1cnN0CnNlcnZlciBhcm0xLm1heGhvc3QuaW8gaWJ1cnN0CnNlcnZlciBzcGlkZXkucmVsbGltLmNvbSBpYnVyc3QKc2VydmVyIHVzLWVhc3QtMi5jbGVhcm5ldC5wdyBpYnVyc3QKc2VydmVyIDEwOC42MS43My4yNDMgaWJ1cnN0CnNlcnZlciBudHAxLm50cC0wMDEucHJvZC5pYWQyLmRjLnJlZGhhdC5jb20gaWJ1cnN0CnNlcnZlciBjbG9jay5yZWRoYXQuY29tIGlidXJzdApzZXJ2ZXIgaXAyMjkuaXAtNTEtODEtMjI2LnVzIGlidXJzdApzZXJ2ZXIgNjYuMjA1LjI0OS4yOCBpYnVyc3QKc2VydmVyIDEwLjExLjE2MC4yMzggaWJ1cnN0CnNlcnZlciBjLTczLTE5My02Mi01NC5oc2QxLndhLmNvbWNhc3QubmV0IGlidXJzdApzZXJ2ZXIgbnRwMi53aWt0ZWwuY29tIGlidXJzdA==
            mode: 420
            path: /etc/chrony.conf
            overwrite: true
    Copy to Clipboard Toggle word wrap
  2. 要使用不同内容对 YAML 文件进行补丁,您必须生成内容的新 base64 表示并创建补丁文件:

    1. /etc/chrony.conf 生成 base64 文件内容:

      $ cat << EOF | base64 --wrap 0of
      driftfile /var/lib/chrony/drift
      makestep 1.0 3
      rtcsync
      logdir /var/log/chrony
      sourcedir /run/chrony-dhcp
      EOF
      echo
      ZHJpZnRmaWxlIC92YXIvbGliL2Nocm9ueS9kcmlmdAptYWtlc3RlcCAxLjAgMwpydGNzeW5jCmxvZ2RpciAvdmFyL2xvZy9jaHJvbnkKc291cmNlZGlyIC9ydW4vY2hyb255LWRoY3AK
      Copy to Clipboard Toggle word wrap
    2. 使用此 base64 字符串创建补丁文件:

      目录:OpenShift
      Filename: 50-masters-chrony-configuration.yaml.patch_1_apply-chrony-dhcp

       ---
      - op: replace
        path: /spec/config/storage/files/0/contents
        value: data:text/plain;charset=utf-8;base64,ZHJpZnRmaWxlIC92YXIvbGliL2Nocm9ueS9kcmlmdAptYWtlc3RlcCAxLjAgMwpydGNzeW5jCmxvZ2RpciAvdmFyL2xvZy9jaHJvbnkKc291cmNlZGlyIC9ydW4vY2hyb255LWRoY3AK
      Copy to Clipboard Toggle word wrap
  3. 然后,您可以在 Assisted Installer web 控制台中上传补丁文件。详情请查看以下部分。

4.9.2. 上传自定义清单和清单补丁

在上传自定义清单或补丁时,输入文件名并选择目标文件夹。文件名在两个文件夹中都必须是唯一的;您不能在两个文件夹中使用相同的文件名。

先决条件

  • 您已使用适当的文件名和扩展将自定义清单文件保存到本地目录。

流程

  1. 在向导的 Cluster details 页面中,选择 Include custom manifests 复选框。
  2. Custom manifest 页中,在 folder 字段中选择要保存清单或补丁的 Assisted Installer 文件夹。

    注意

    您可以上传文件到 openShiftmanifest 文件夹。对于清单补丁,系统会在两个文件夹中查找需要修补的目标文件。

  3. Filename 字段中输入清单文件的名称,包括扩展:

    • 对于自定义清单,示例包括 manifest1.jsonmultiple1.yaml
    • 对于清单补丁,例如 50-masters-chrony-configuration.yaml.patch_1_apply-chrony-dhcp
  4. Content 下,点 Upload 图标或 Browse 按钮来上传文件。或者,将文件拖到您文件系统的 Content 字段中。
  5. 要上传另一个文件,请点 Add another manifest 并重复此过程。这会保存任何之前上传的文件。
  6. Next 以保存所有文件,再进入 Review and create 页。自定义清单 显示上传的自定义清单和补丁的列表。

4.9.3. 修改自定义清单和清单补丁

您可以重命名上传的自定义清单或补丁文件,并将自定义清单文件保存到不同的文件夹中。另外,您可以复制现有文件的内容,或者将其下载到 Chrome 下载设置中指定的文件夹中。

无法编辑上传的清单或补丁文件的内容。相反,您可以覆盖现有的文件。

先决条件

  • 您至少上传了一个自定义清单或补丁文件。

流程

  1. 要更改自定义清单文件的位置,请从 Folder 列表中选择不同的文件夹。
  2. 要更改文件名,请在 File name 字段中输入清单或补丁的新名称。补丁文件应遵循本节前面讨论的补丁命名约定。
  3. 要覆盖清单或补丁文件,请在 openshiftmanifest 文件夹中保存具有相同文件名的新文件。

    注意

    无论所在的文件夹是什么,系统都会自动检测并替换原始文件。

  4. 要将清单或补丁下载到您的文件系统,请点 Download 图标。
  5. 要复制清单或补丁,点 Copy to clipboard 图标。
  6. 要应用更改,请单击 Add another manifestNext

4.9.4. 删除自定义清单和清单补丁

您可以通过以下两种方式之一在安装前删除上传的自定义清单或补丁:

  • 删除单个自定义清单或补丁。
  • 同时删除所有清单和补丁。
警告

删除清单或补丁文件后,您无法撤销该操作。解决办法是再次上传文件。

4.9.4.1. 删除所有自定义清单和补丁

您可以同时删除所有自定义清单和补丁。这也会隐藏 Custom manifest 页面。

先决条件

  • 您至少上传了一个自定义清单或补丁文件。

流程

  1. 浏览到向导的 Cluster details 页。
  2. 清除 Include custom manifests 复选框。
  3. Remove custom manifests 对话框中,点 Remove

4.9.4.2. 删除单个自定义清单或补丁

您可以一次删除一个文件。此选项不允许删除最后剩余的清单或补丁。

先决条件

  • 您至少上传了两个自定义清单或补丁文件。

流程

  1. 浏览到 Custom manifests 页。
  2. 将鼠标悬停在清单名称上,以显示 Delete (-)图标。
  3. 单击该图标,然后在对话框中单击 Delete
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat