最佳实践: 设置安装变量

安装和升级命令 IBM® Cloud Pak for Data 使用变量,格式为 ${VARIABLE_NAME} 。 您可以创建脚本以在运行安装命令之前自动将相应的值导出为环境变量。 运行脚本后,您将能够从文档复制大多数安装和升级命令并运行这些命令,而无需进行任何更改。

准备工作

在创建脚本之前,请考虑您是否需要支持:

跨集群的可重复部署
在此场景中,您可以复用同一脚本来提高整个环境中部署的一致性。
同一集群上的多个部署
在此场景中,您可以创建多个脚本以简化管理每个实例的过程。 请明确命名每个脚本,以确保在运行安装命令之前运行正确的脚本。

创建环境变量文件

  1. 将以下示例复制到本地文件系统上的文本编辑器:
    #===============================================================================
    # 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>
  2. 针对您的环境更新脚本中的每个部分。 请参阅以下各节,以了解脚本的每个部分中的变量和有效值:
  3. 将文件另存为 shell 脚本。 例如,将文件另存为 cpd_vars.sh
  4. 请确认该脚本不包含任何错误。 例如,如果您将脚本命名为 cpd_vars.sh,请运行:
    bash ./cpd_vars.sh
  5. 如果您将密码存储在文件中,请阻止其他人读取该文件。 例如,如果您将脚本命名为 cpd_vars.sh,请运行:
    chmod 700 cpd_vars.sh

对环境变量进行寻源

在运行安装和升级命令之前,将该脚本的副本保存到工作站并从 bash 提示符运行该脚本。 该脚本将环境变量导出到命令行会话。

重要信息: 每次打开新的 bash 提示时,都必须重新运行该脚本。
  1. 切换至您保存脚本的目录。
  2. 对环境变量进行源。 例如,如果您将脚本命名为 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。
缺省值
没有缺省值。
有效值
指定 Red Hat OpenShift Container Platform 服务器的 URL 。

项目变量

脚本的 项目变量 部分中的变量指定由 Cloud Pak for Data 组成的组件安装到的位置。

变量 描述
PROJECT_CPFS_OPS Red Hat OpenShiftIBM Cloud Pak® 基础服务运营商安装的项目。
缺省值
ibm-common-services
有效值
仅当您在不同的项目中安装了 IBM Cloud Pak 基础服务时,才可更改 PROJECT_CPFS_OPS 的值。
PROJECT_CPD_OPS 安装了 Cloud Pak for Data 软件操作程序的 Red Hat OpenShift 项目。
缺省值
没有缺省值。
有效值
这些操作程序的位置取决于您要使用的 操作程序安装体系结构 :
快速安装
在快速安装中, Cloud Pak for Data 运营商与 IBM Cloud Pak 基础服务运营商安装在同一项目中: ibm-common-services
专业安装
在专门的安装中, Cloud Pak for Data 操作员与 IBM Cloud Pak 基础服务操作员分开,属于不同的项目。

建议的项目名称为 cpd-operators

PROJECT_CATSRC 目录源所安装在的 Red Hat OpenShift 项目。
缺省值
openshift-marketplace
有效值
唯一受支持的值为 openshift-marketplace
PROJECT_CPD_INSTANCE 安装了 Cloud Pak for Data control plane 和服务的 Red Hat OpenShift 项目。 ( Cloud Pak for Data control plane 与操作程序安装在 单独 项目中。)
缺省值
没有缺省值。
有效值
cpd-instance 用作示例,但您可以选择适合您的名称。
提示: 如果要在集群上安装 Cloud Pak for Data 的多个实例,请为您计划安装的每个实例创建一个单独的脚本。
PROJECT_TETHERED 一个 Red Hat OpenShift 项目,它与安装了 Cloud Pak for Data 控制平面的项目绑定。

仅当您计划将支持网络共享的服务安装到网络共享项目中时,才需要此变量。

请记住: 如果要使用此环境变量,必须取消注释 export PROJECT_TETHERED 命令。
缺省值
没有缺省值。
有效值
cpd-instance-tether 有时用作示例,但您可以选择适合您的名称。

操作程序安装变量

该脚本的 操作程序安装变量 部分中的变量指定如何在集群上安装 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 这是创建和更新操作程序所需的核准类型。
缺省值
自动
有效值
自动
OpenShift 将自动装入操作程序的较新版本 (如果可用)。
手动
OLM 在更新版本的操作程序可用时创建更新请求。 集群管理员必须手动核准用于创建操作程序的初始请求以及用于将操作程序更新到更高版本的后续请求。
提示: 如果选择此选项,那么在安装 Cloud Pak for Data control plane之后,应完成 指定由 Operand Deployment Lifecycle Manager 自动安装的操作程序的安装计划。

许可证变量

脚本的 许可证变量 部分中的变量指定您购买了哪些许可证。

变量 描述
LICENSE_CPD 您购买的 IBM Cloud Pak for Data 您购买的许可证。
缺省值
没有缺省值。
有效值
Enterprise
如果您购买了,请发送邮件至 Enterprise IBM Cloud Pak for DataEnterprise Edition。
标准
如果您购买了,请发送邮件至 Standard IBM Cloud Pak for DataStandard Edition。

IBM 授权注册表 变量

脚本的 IBM 授权注册表 变量 部分中的变量使您能够连接到 IBM 授权注册表 ,并访问您有权使用的 Cloud Pak for Data 软件映像。

根据您是从 IBM 授权注册表 还是从专用容器注册表中拉取映像,这些变量还可能用于配置全局映像拉取私钥。

变量 描述
IBM_ENTITLEMENT_KEY 与您的 IBM 帐户相关联的权利 API 密钥。
缺省值
没有缺省值。
有效值
指定 IBM 权利 API 密钥
IBM_ENTITLEMENT_USER 用于访问 Cloud Pak for Data 软件映像的用户名。
缺省值
cp
有效值
cp
IBM_ENTITLEMENT_SERVER 在其中托管 Cloud Pak for Data 软件映像的容器注册表。
缺省值
cp.icr.io
有效值
cp.icr.io

CASE 包管理变量

脚本的 CASE 包管理变量 部分中的变量指定保存 CASE 包的位置。


什么是 CASE 包?

Container Application Software for Enterprises (CASE) 包是一个归档文件,用于描述 Cloud Pak for Data的容器化组件。

CASE 软件包用于:
  • IBM Cloud Pak 基础服务
  • IBM Cloud Pak for Data control plane
  • 每项 IBM Cloud Pak for Data 服务
  • 控制平面 和服务的软件依赖关系
每个 CASE 软件包都包括:
  • 有关组件的元数据
  • 部署组件时所需的容器映像的清单
  • 对任何软件项的引用
  • 将映像镜像到专用容器注册表所需的脚本

运行以下命令时,将使用 CASE 包中的信息:
  • 创建目录源
  • 将软件映像镜像到专用容器注册表
标识要在系统上存储 CASE 软件包的目录。 请记住以下要求:
  • 必须指定具有足够存储空间的现有目录
  • 必须使用持久目录。 使用持久目录可避免多次传输文件。

    此外,如果使用持久目录,那么您可以多次运行或按计划运行镜像过程。

最佳实践 :建议您将 CASEIBM Cloud Pak 基础服务的软件包应与 CASECloud Pak for Data

如果您使用私有容器注册表,并计划在集群上安装多个 IBM Cloud 软件包 ,那么将 CASEIBM Cloud Pak 基础服务的软件包保存在单独的目录中,这有助于您管理哪些镜像文件已镜像到您的私有容器注册表。

运行该命令以镜像映像时,该命令会镜像目录中的任何已更新映像。 使用单独的目录可确保对一组特定映像进行镜像。

变量 要指定的内容
OFFLINEDIR_CPD 用于存储 Cloud Pak for Data 软件的 CASE 软件包的目录。
最佳实践: 为每个刷新创建单独的目录,并在每次安装新刷新时更新此环境变量。 例如, $HOME/offline/cpd/4.0.x,其中 x 是刷新号。 此方法使您能够将所有特定于刷新的 CASE 软件包,从属 CASE 软件包和映像保存在一起,以便您具有一组一致的特定于刷新的资产。
缺省值
没有缺省值。
有效值
$HOME/offline/cpd 用作示例,但您可以选择适合您的目录。 请确保指定了现有目录。
OFFLINEDIR_CPFS 您将存储 CASEIBM Cloud Pak 基础服务软件的程序包。
缺省值
没有缺省值。
有效值
$HOME/offline/cpfs 用作示例,但您可以选择适合您的目录。 请确保指定了现有目录。
PATH_CASE_REPO 托管 CASE 软件包的存储库。
缺省值
https://github.com/IBM/cloud-pak/raw/master/repo/case
有效值
https://github.com/IBM/cloud-pak/raw/master/repo/case
USE_SKOPEO oc mirror 命令有一些限制,这可能会导致在镜像 Cloud Pak for Data 映像时发生故障。 您必须使用 skopeo 可执行文件,通过 IBM Cloud Pak CLI(cloudctl) 镜像镜像文件。
缺省值
true
有效值
true

专用容器注册表变量

强烈建议您使用专用容器注册中心。 仅当您 将映像镜像到专用容器注册表时,才需要 专用容器注册表变量 部分中的变量。

如果您使用中间容器注册表来将映像镜像到专用容器注册表,那么还必须更新脚本的 中间容器注册表变量 部分中的变量。 有关详细信息,请参阅 中间容器注册表变量

通过脚本的 专用容器注册表变量 部分中的变量,您可以将映像从 IBM 授权注册表 镜像到专用容器注册表。

重要信息: 如果要使用这些变量,那么必须在脚本的 专用容器注册表变量 部分中取消对每个命令的注释。
变量 要指定的内容
PRIVATE_REGISTRY_LOCATION 专用容器注册表的位置。
缺省值
没有缺省值。
有效值
指定专用容器注册中心的标准位置。
PRIVATE_REGISTRY_PUSH_USER 具有向专用容器注册表推送映像所需的特权的用户的用户名。
缺省值
没有缺省值。
有效值
指定用户名。
PRIVATE_REGISTRY_PUSH_PASSWORD 具有向专用容器注册表推送映像所需的特权的用户的密码。
提示:创建环境变量文件 部分中,建议您通过运行 chmod 700来阻止其他用户读取环境变量脚本的内容。 但是,如果您仍担心在此文件中存储密码,那么可以执行以下操作:
  • 请直接输入密码,而不要在命令中使用环境变量。
  • 在运行命令之前,请手动将密码导出到 PRIVATE_REGISTRY_PUSH_PASSWORD 变量。
缺省值
没有缺省值。
有效值
指定与用户名相关联的密码。
PRIVATE_REGISTRY_PULL_USER 对专用容器注册表中的 个映像具有必需特权的用户的用户名。
缺省值
没有缺省值。
有效值
指定用户名。
PRIVATE_REGISTRY_PULL_PASSWORD 对专用容器注册表中的 个映像具有必需特权的用户的密码。
提示:创建环境变量文件 部分中,建议您通过运行 chmod 700来阻止其他用户读取环境变量脚本的内容。 但是,如果您仍担心在此文件中存储密码,那么可以执行以下操作:
  • 请直接输入密码,而不要在命令中使用环境变量。
  • 在运行命令之前,请手动将密码导出到 PRIVATE_REGISTRY_PULL_PASSWORD 变量。
缺省值
没有缺省值。
有效值
指定与用户名相关联的密码。

中间容器注册表变量

仅当您使用 中间容器注册表 将映像镜像到专用容器注册表时,此部分中的变量才是必需的。

该脚本的 中间容器注册表变量 部分中的变量使您能够:
  • 设置中间容器注册中心
  • 将映像从 IBM 授权注册表 镜像到中间容器注册表
  • 将映像从中间容器注册表镜像到专用容器注册表。
重要信息: 如果要使用这些变量,那么必须在脚本的 中间容器注册表变量 部分中取消对每个命令的注释。
变量 要指定的内容
INTERMEDIARY_REGISTRY_HOST 中间容器注册中心的位置。 中间容器注册表在本地托管。
缺省值
localhost
有效值
localhost
INTERMEDIARY_REGISTRY_PORT 这是要用于本地主机上的中间容器注册表的端口。
缺省值
没有缺省值。
有效值
请指定当前未在使用的端口。

要避免与系统端口发生冲突,请选择大于 1024 的端口。

INTERMEDIARY_REGISTRY_LOCATION 中间容器注册中心的主机和端口。

该脚本会自动并置您为 INTERMEDIARY_REGISTRY_HOSTINTERMEDIARY_REGISTRY_PORT指定的值。

INTERMEDIARY_REGISTRY_USER 您将用来向中间容器注册表进行认证的用户名。
缺省值
没有缺省值。
有效值
指定用户名。
INTERMEDIARY_REGISTRY_PASSWORD 您将用来向中间容器注册表进行认证的密码。
提示:创建环境变量文件 部分中,建议您通过运行 chmod 700来阻止其他用户读取环境变量脚本的内容。 但是,如果您仍担心在此文件中存储密码,那么可以执行以下操作:
  • 请直接输入密码,而不要在命令中使用环境变量。
  • 在运行命令之前,请手动将密码导出到 PRIVATE_REGISTRY_PUSH_PASSWORD 变量。
缺省值
没有缺省值。
有效值
指定密码。