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
。
一个自定义清单示例
多个自定义清单示例
当在 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> from: <source-path> path: <target-path> value: <any-yaml-structure>
- op: <add | remove | replace | move | copy | test>
from: <source-path>
path: <target-path>
value: <any-yaml-structure>
- 1
- 如需了解每个操作的说明,请参阅 JavaScript Object Notation (JSON)补丁。
- 2
- 仅对
move
和copy
操作有效。 - 3
- 始终是必需的。
- 4
- 仅对
add
,replace
和test
操作有效。
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
或类似内容。
以下示例概述了修复系统清单的步骤,并演示了如何应用命名约定:
Assisted Installer 在安装时会自动将以下 YAML 文件添加到集群清单中。
目录:
OpenShift
Filename:50-masters-chrony-configuration.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用不同内容对 YAML 文件进行补丁,您必须生成内容的新
base64
表示并创建补丁文件:为
/etc/chrony.conf
生成base64
文件内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用此
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
--- - op: replace path: /spec/config/storage/files/0/contents value: data:text/plain;charset=utf-8;base64,ZHJpZnRmaWxlIC92YXIvbGliL2Nocm9ueS9kcmlmdAptYWtlc3RlcCAxLjAgMwpydGNzeW5jCmxvZ2RpciAvdmFyL2xvZy9jaHJvbnkKc291cmNlZGlyIC9ydW4vY2hyb255LWRoY3AK
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 然后,您可以在 Assisted Installer web 控制台中上传补丁文件。详情请查看以下部分。
4.9.2. 上传自定义清单和清单补丁 复制链接链接已复制到粘贴板!
在上传自定义清单或补丁时,输入文件名并选择目标文件夹。文件名在两个文件夹中都必须是唯一的;您不能在两个文件夹中使用相同的文件名。
先决条件
- 您已使用适当的文件名和扩展将自定义清单文件保存到本地目录。
流程
- 在向导的 Cluster details 页面中,选择 Include custom manifests 复选框。
在 Custom manifest 页中,在 folder 字段中选择要保存清单或补丁的 Assisted Installer 文件夹。
注意您可以上传文件到 openShift 或 manifest 文件夹。对于清单补丁,系统会在两个文件夹中查找需要修补的目标文件。
在 Filename 字段中输入清单文件的名称,包括扩展:
-
对于自定义清单,示例包括
manifest1.json
或multiple1.yaml
。 - 对于清单补丁,例如 50-masters-chrony-configuration.yaml.patch_1_apply-chrony-dhcp。
-
对于自定义清单,示例包括
- 在 Content 下,点 Upload 图标或 Browse 按钮来上传文件。或者,将文件拖到您文件系统的 Content 字段中。
- 要上传另一个文件,请点 Add another manifest 并重复此过程。这会保存任何之前上传的文件。
- 点 Next 以保存所有文件,再进入 Review and create 页。自定义清单 显示上传的自定义清单和补丁的列表。
4.9.3. 修改自定义清单和清单补丁 复制链接链接已复制到粘贴板!
您可以重命名上传的自定义清单或补丁文件,并将自定义清单文件保存到不同的文件夹中。另外,您可以复制现有文件的内容,或者将其下载到 Chrome 下载设置中指定的文件夹中。
无法编辑上传的清单或补丁文件的内容。相反,您可以覆盖现有的文件。
先决条件
- 您至少上传了一个自定义清单或补丁文件。
流程
- 要更改自定义清单文件的位置,请从 Folder 列表中选择不同的文件夹。
- 要更改文件名,请在 File name 字段中输入清单或补丁的新名称。补丁文件应遵循本节前面讨论的补丁命名约定。
要覆盖清单或补丁文件,请在 openshift 或 manifest 文件夹中保存具有相同文件名的新文件。
注意无论所在的文件夹是什么,系统都会自动检测并替换原始文件。
- 要将清单或补丁下载到您的文件系统,请点 Download 图标。
- 要复制清单或补丁,点 Copy to clipboard 图标。
- 要应用更改,请单击 Add another manifest 或 Next。
4.9.4. 删除自定义清单和清单补丁 复制链接链接已复制到粘贴板!
您可以通过以下两种方式之一在安装前删除上传的自定义清单或补丁:
- 删除单个自定义清单或补丁。
- 同时删除所有清单和补丁。
删除清单或补丁文件后,您无法撤销该操作。解决办法是再次上传文件。
4.9.4.1. 删除所有自定义清单和补丁 复制链接链接已复制到粘贴板!
您可以同时删除所有自定义清单和补丁。这也会隐藏 Custom manifest 页面。
先决条件
- 您至少上传了一个自定义清单或补丁文件。
流程
- 浏览到向导的 Cluster details 页。
- 清除 Include custom manifests 复选框。
- 在 Remove custom manifests 对话框中,点 Remove。
4.9.4.2. 删除单个自定义清单或补丁 复制链接链接已复制到粘贴板!
您可以一次删除一个文件。此选项不允许删除最后剩余的清单或补丁。
先决条件
- 您至少上传了两个自定义清单或补丁文件。
流程
- 浏览到 Custom manifests 页。
- 将鼠标悬停在清单名称上,以显示 Delete (-)图标。
- 单击该图标,然后在对话框中单击 Delete。