最佳实践: 设置安装变量
${VARIABLE_NAME} 。 您可以创建脚本以在运行安装命令之前自动将相应的值导出为环境变量。 运行脚本后,您将能够从文档复制大多数安装和升级命令并运行这些命令,而无需进行任何更改。准备工作
在创建脚本之前,请考虑您是否需要支持:
- 跨集群的可重复部署
- 在此场景中,您可以复用同一脚本来提高整个环境中部署的一致性。
- 同一集群上的多个部署
- 在此场景中,您可以创建多个脚本以简化管理每个实例的过程。 请明确命名每个脚本,以确保在运行安装命令之前运行正确的脚本。
创建环境变量文件
- 将以下示例复制到本地文件系统上的文本编辑器:
#=============================================================================== # Cloud Pak for Data installation variables #=============================================================================== # ------------------------------------------------------------------------------ # Cluster variables # ------------------------------------------------------------------------------ export OCP_URL=<enter your Red Hat OpenShift Container Platform URL> # ------------------------------------------------------------------------------ # Project variables # ------------------------------------------------------------------------------ export PROJECT_CPFS_OPS=ibm-common-services export PROJECT_CPD_OPS=<enter your Cloud Pak for Data operator installation project> export PROJECT_CATSRC=openshift-marketplace export PROJECT_CPD_INSTANCE=<enter your Cloud Pak for Data installation project> # export PROJECT_TETHERED=<enter the tethered project> # ------------------------------------------------------------------------------ # Operator installation variables # ------------------------------------------------------------------------------ export APPROVAL_TYPE=Automatic # ------------------------------------------------------------------------------ # Licenses variables # ------------------------------------------------------------------------------ export LICENSE_CPD=<enter the license you purchased> # ------------------------------------------------------------------------------ # IBM Entitled Registry variables # ------------------------------------------------------------------------------ export IBM_ENTITLEMENT_KEY=<enter your IBM entitlement API key> export IBM_ENTITLEMENT_USER=cp export IBM_ENTITLEMENT_SERVER=cp.icr.io # ------------------------------------------------------------------------------ # CASE package management variables # ------------------------------------------------------------------------------ export OFFLINEDIR_CPD=<enter an existing directory> export OFFLINEDIR_CPFS=<enter an existing directory> export PATH_CASE_REPO=https://github.com/IBM/cloud-pak/raw/master/repo/case export USE_SKOPEO=true # ------------------------------------------------------------------------------ # Private container registry variables # ------------------------------------------------------------------------------ # Set the following variables if you mirror images to a private container registry. # # To export these variables, you must uncomment each command in this section. # export PRIVATE_REGISTRY_LOCATION=<enter the location of your private container registry> # export PRIVATE_REGISTRY_PUSH_USER=<enter the username of a user that can push to the registry> # export PRIVATE_REGISTRY_PUSH_PASSWORD=<enter the password of the user that can push to the registry> # export PRIVATE_REGISTRY_PULL_USER=<enter the username of a user that can pull from the registry> # export PRIVATE_REGISTRY_PULL_PASSWORD=<enter the password of the user that can pull from the registry> # ------------------------------------------------------------------------------ # Intermediary container registry variables # ------------------------------------------------------------------------------ # Set the following variables if you use an intermediary container registry to # mirror images to your private container registry. # # To export these variables, you must uncomment each command in this section. # export INTERMEDIARY_REGISTRY_HOST=localhost # export INTERMEDIARY_REGISTRY_PORT=<enter the port to use on the localhost> # INTERMEDIARY_REGISTRY_LOCATION="${INTERMEDIARY_REGISTRY_HOST}:${INTERMEDIARY_REGISTRY_PORT}" # export INTERMEDIARY_REGISTRY_LOCATION # export INTERMEDIARY_REGISTRY_USER=<enter the username to authenticate to the registry> # export INTERMEDIARY_REGISTRY_PASSWORD=<enter the password for the user> - 针对您的环境更新脚本中的每个部分。 请参阅以下各节,以了解脚本的每个部分中的变量和有效值:
- 将文件另存为 shell 脚本。 例如,将文件另存为
cpd_vars.sh。 - 请确认该脚本不包含任何错误。 例如,如果您将脚本命名为
cpd_vars.sh,请运行:bash ./cpd_vars.sh - 如果您将密码存储在文件中,请阻止其他人读取该文件。 例如,如果您将脚本命名为
cpd_vars.sh,请运行:chmod 700 cpd_vars.sh
对环境变量进行寻源
在运行安装和升级命令之前,将该脚本的副本保存到工作站并从 bash 提示符运行该脚本。 该脚本将环境变量导出到命令行会话。
- 切换至您保存脚本的目录。
- 对环境变量进行源。 例如,如果您将脚本命名为
cpd_vars.sh,请运行:source ./cpd_vars.sh
聚类变量
脚本的 集群变量 部分中的变量指定有关 Red Hat® OpenShift® Container Platform 集群的信息。
| 变量 | 描述 |
|---|---|
OCP_URL |
Red Hat OpenShift Container Platform 服务器的 URL 。 例如, https://openshift1.example.com:8443。
|
项目变量
脚本的 项目变量 部分中的变量指定由 Cloud Pak for Data 组成的组件安装到的位置。
| 变量 | 描述 |
|---|---|
PROJECT_CPFS_OPS |
Red Hat OpenShiftIBM Cloud Pak® 基础服务运营商安装的项目。
|
PROJECT_CPD_OPS |
安装了 Cloud Pak for Data 软件操作程序的 Red Hat OpenShift 项目。
|
PROJECT_CATSRC |
目录源所安装在的 Red Hat OpenShift 项目。
|
PROJECT_CPD_INSTANCE |
安装了 Cloud Pak for Data control plane 和服务的 Red Hat OpenShift 项目。 ( Cloud Pak for Data control plane 与操作程序安装在 单独 项目中。)
提示: 如果要在集群上安装 Cloud Pak for Data 的多个实例,请为您计划安装的每个实例创建一个单独的脚本。
|
PROJECT_TETHERED |
一个 Red Hat OpenShift 项目,它与安装了 Cloud Pak for Data 控制平面的项目绑定。 仅当您计划将支持网络共享的服务安装到网络共享项目中时,才需要此变量。 请记住: 如果要使用此环境变量,必须取消注释
export PROJECT_TETHERED 命令。
|
操作程序安装变量
该脚本的 操作程序安装变量 部分中的变量指定如何在集群上安装 Cloud Pak for Data 操作程序。
什么是操作员安装计划?
创建操作程序预订时,请指定该操作程序的安装计划。 Red Hat OpenShift Container Platform 支持以下安装计划:
- 自动
- 如果指定
installPlanApproval: Automatic,那么 OpenShift 将自动装入操作程序的较新版本 (如果可用)。 例如,如果将映像镜像到专用容器注册表并将安装计划设置为自动,那么 Red Hat OpenShift Container Platform 将自动使用专用容器注册表中提供的最新版本的操作程序。 - 手动
- 如果指定
installPlanApproval: Manual,那么 OLM 将在更新版本的操作程序可用时创建更新请求。 集群管理员必须手动核准:- 用于创建操作程序的初始请求
- 将操作程序更新到更高版本的后续请求。
- 该软件不支持定制资源中的
version条目。 例如, Voice Gateway 服务不支持定制资源中的version条目,这意味着在集群上安装较新版本的操作程序时将自动升级该服务。 - 在集群上安装或升级服务时,请选择自动安装计划。 选择自动升级计划时,将从定制资源中除去
version条目。
- 服务支持
version条目 - 这些服务支持自动升级
我应该选择哪个操作程序安装计划?
请使用以下指南来选择安装计划:
- 专用容器注册表
- 从专用容器注册表中提取映像时,必须将这些映像镜像到该注册表并更新目录源,然后才能升级软件。
- 使用自动安装计划,简化管理环境的过程。
- 使用手动安装计划以确保软件的所有方面都保持相同版本,直到您准备好升级该软件为止。
- IBM 授权注册表
- 针对 IBM 授权注册表 的指导信息取决于您创建的目录源的类型:
- 从 IBM 授权注册表 拉取特定版本的软件的目录源
- 创建从 IBM 授权注册表中提取特定版本的软件的目录源时,必须先更新该目录源,然后才能升级该软件。
- 使用自动安装计划,简化管理环境的过程。
- 使用手动安装计划以确保软件的所有方面都保持相同版本,直到您准备好升级该软件为止。
- 目录源,用于从 IBM 授权注册表 中自动提取最新版本的软件
- IBM 操作程序目录会自动从 IBM Entitled Registry中提取软件的最新版本。 无论何时发布任何 IBM 操作程序,都会刷新 IBM 操作程序目录。 OLM 会自动处理它在 IBM 操作程序目录 (
ibm-operator-catalog) 中找到的任何更新。通过此配置,手动安装计划减少 (但不消除) 软件在您不知情的情况下进行更新的可能性。请记住: 如果服务在定制资源中不包含或不支持version条目,那么在升级操作程序时将自动升级该服务。
| 变量 | 描述 |
|---|---|
APPROVAL_TYPE |
这是创建和更新操作程序所需的核准类型。
|
许可证变量
脚本的 许可证变量 部分中的变量指定您购买了哪些许可证。
| 变量 | 描述 |
|---|---|
LICENSE_CPD |
您购买的 IBM Cloud Pak for Data 您购买的许可证。
|
IBM 授权注册表 变量
脚本的 IBM 授权注册表 变量 部分中的变量使您能够连接到 IBM 授权注册表 ,并访问您有权使用的 Cloud Pak for Data 软件映像。
根据您是从 IBM 授权注册表 还是从专用容器注册表中拉取映像,这些变量还可能用于配置全局映像拉取私钥。
| 变量 | 描述 |
|---|---|
IBM_ENTITLEMENT_KEY |
与您的 IBM 帐户相关联的权利 API 密钥。
|
IBM_ENTITLEMENT_USER |
用于访问 Cloud Pak for Data 软件映像的用户名。
|
IBM_ENTITLEMENT_SERVER |
在其中托管 Cloud Pak for Data 软件映像的容器注册表。
|
CASE 包管理变量
脚本的 CASE 包管理变量 部分中的变量指定保存 CASE 包的位置。
什么是 CASE 包?
Container Application Software for Enterprises (CASE) 包是一个归档文件,用于描述 Cloud Pak for Data的容器化组件。
- IBM Cloud Pak 基础服务
- IBM Cloud Pak for Data control plane
- 每项 IBM Cloud Pak for Data 服务
- 控制平面 和服务的软件依赖关系
- 有关组件的元数据
- 部署组件时所需的容器映像的清单
- 对任何软件项的引用
- 将映像镜像到专用容器注册表所需的脚本
- 创建目录源
- 将软件映像镜像到专用容器注册表
- 必须指定具有足够存储空间的现有目录
- 必须使用持久目录。 使用持久目录可避免多次传输文件。
此外,如果使用持久目录,那么您可以多次运行或按计划运行镜像过程。
如果您使用私有容器注册表,并计划在集群上安装多个 IBM Cloud 软件包 ,那么将 CASEIBM Cloud Pak 基础服务的软件包保存在单独的目录中,这有助于您管理哪些镜像文件已镜像到您的私有容器注册表。
运行该命令以镜像映像时,该命令会镜像目录中的任何已更新映像。 使用单独的目录可确保对一组特定映像进行镜像。
| 变量 | 要指定的内容 |
|---|---|
OFFLINEDIR_CPD |
用于存储 Cloud Pak for Data 软件的 CASE 软件包的目录。 最佳实践: 为每个刷新创建单独的目录,并在每次安装新刷新时更新此环境变量。 例如, $HOME/offline/cpd/4.0.x,其中 x 是刷新号。 此方法使您能够将所有特定于刷新的 CASE 软件包,从属 CASE 软件包和映像保存在一起,以便您具有一组一致的特定于刷新的资产。
|
OFFLINEDIR_CPFS |
您将存储 CASEIBM Cloud Pak 基础服务软件的程序包。
|
PATH_CASE_REPO |
托管 CASE 软件包的存储库。
|
USE_SKOPEO |
oc mirror 命令有一些限制,这可能会导致在镜像 Cloud Pak for Data 映像时发生故障。 您必须使用 skopeo 可执行文件,通过 IBM Cloud Pak CLI(cloudctl) 镜像镜像文件。
|
专用容器注册表变量
强烈建议您使用专用容器注册中心。 仅当您 将映像镜像到专用容器注册表时,才需要 专用容器注册表变量 部分中的变量。
如果您使用中间容器注册表来将映像镜像到专用容器注册表,那么还必须更新脚本的 中间容器注册表变量 部分中的变量。 有关详细信息,请参阅 中间容器注册表变量。
通过脚本的 专用容器注册表变量 部分中的变量,您可以将映像从 IBM 授权注册表 镜像到专用容器注册表。
| 变量 | 要指定的内容 |
|---|---|
PRIVATE_REGISTRY_LOCATION |
专用容器注册表的位置。
|
PRIVATE_REGISTRY_PUSH_USER |
具有向专用容器注册表推送映像所需的特权的用户的用户名。
|
PRIVATE_REGISTRY_PUSH_PASSWORD |
具有向专用容器注册表推送映像所需的特权的用户的密码。 提示: 在 创建环境变量文件 部分中,建议您通过运行
chmod 700来阻止其他用户读取环境变量脚本的内容。 但是,如果您仍担心在此文件中存储密码,那么可以执行以下操作:
|
PRIVATE_REGISTRY_PULL_USER |
对专用容器注册表中的 拉 个映像具有必需特权的用户的用户名。
|
PRIVATE_REGISTRY_PULL_PASSWORD |
对专用容器注册表中的 拉 个映像具有必需特权的用户的密码。 提示: 在 创建环境变量文件 部分中,建议您通过运行
chmod 700来阻止其他用户读取环境变量脚本的内容。 但是,如果您仍担心在此文件中存储密码,那么可以执行以下操作:
|
中间容器注册表变量
仅当您使用 中间容器注册表 将映像镜像到专用容器注册表时,此部分中的变量才是必需的。
- 设置中间容器注册中心
- 将映像从 IBM 授权注册表 镜像到中间容器注册表
- 将映像从中间容器注册表镜像到专用容器注册表。
| 变量 | 要指定的内容 |
|---|---|
INTERMEDIARY_REGISTRY_HOST |
中间容器注册中心的位置。 中间容器注册表在本地托管。
|
INTERMEDIARY_REGISTRY_PORT |
这是要用于本地主机上的中间容器注册表的端口。
|
INTERMEDIARY_REGISTRY_LOCATION |
中间容器注册中心的主机和端口。 该脚本会自动并置您为 |
INTERMEDIARY_REGISTRY_USER |
您将用来向中间容器注册表进行认证的用户名。
|
INTERMEDIARY_REGISTRY_PASSWORD |
您将用来向中间容器注册表进行认证的密码。 提示: 在 创建环境变量文件 部分中,建议您通过运行
chmod 700来阻止其他用户读取环境变量脚本的内容。 但是,如果您仍担心在此文件中存储密码,那么可以执行以下操作:
|