备份和复原数据
备份关键数据。 如果以后需要复原 WebSphere Automation 安装和数据,那么可以从备份复原这些安装和数据。
您可以备份 Mongo 数据库中的数据以及关联的密码,加密密钥和其他重要数据。 在 WebSphere Automation 1.4.4 和更高版本中,还会备份和复原已部署的 WebSphere Automation 定制资源。
准备工作
- 准备主机
- 在主机上完成以下步骤:
- 安装 oc Red Hat OpenShift Container Platform CLI 工具。
- 从 [下载 IBM/ibm-pak
地址] 下载 IBM Paks IBM Cloud 目录管理插件 并安装最新版本的 [软件名称]。 通过输入以下命令来解压缩二进制文件:
tar -xf oc-ibm_pak-linux-amd64.tar.gz运行以下命令以将文件移至 /usr/local/bin 目录:
注: 如果要以非 root 用户身份进行安装,那么必须使用 sudo。 有关更多信息,请参阅 Podman 或 Docker 文档以作为非 root 用户进行安装。mv oc-ibm_pak-linux-amd64 /usr/local/bin/oc-ibm_pak注: 根据主机操作系统下载插件。 您可以通过运行以下命令来确认是否已安装 oc ibm-pak -h :oc ibm-pak --help将显示插件用法。
有关插件命令的更多信息,请参阅 command-help
。
该插件还在容器映像 cp.icr.io/cpopen/cpfs/ibm-pak:TAG中提供,其中
TAG应替换为相应的插件版本,例如,插件版本 1.2.0 的cp.icr.io/cpopen/cpfs/ibm-pak:v1.2.0。
以下命令将创建容器并复制目录 plugin-dir中所有受支持平台的插件。 您可以指定任何目录名,并将在复制时创建该目录名。 复制后,将删除临时容器。 该 plugin-dir 包含所有二进制文件及其他构建产物,这些内容均可在 的 GitHub 发布版本和存储 IBM/ibm-pak
库中找到。
id=$(docker create cp.icr.io/cpopen/cpfs/ibm-pak:TAG - ) docker cp $id:/ibm-pak plugin-dir docker rm -v $id cd plugin-dir - 设置环境变量并下载 CASE 文件
- 使用安装程序映像名称和版本创建以下环境变量。
export CASE_NAME=<YOUR_CASE_NAME> export CASE_VERSION=<YOUR_CASE_VERSION>要查找名称 CASE 和版本,请参阅 IBM :产品 CASE 到应用程序版本。 对于'WebSphere Automation :
<YOUR_CASE_NAME>是ibm-websphere-automation<YOUR_CASE_VERSION>与产品版本 (1.11.0) 相同。
- 如果您不希望使用插件针对文本帮助和消息检测到的语言环境,请设置语言环境。
oc ibm-pak config locale -l <LOCALE>其中
<LOCALE>可以是de_DE,en_US,es_ES,fr_FR,it_IT,ja_JP,ko_KR,pt_BR,zh_Hans或zh_Hant之一。 - 配置插件,以便从 IBM Cloud Container Registry (ICCR) 下载 CASE 作为 OCI 构件。
oc ibm-pak config repo 'IBM Cloud-Pak OCI registry' -r oci:cp.icr.io/cpopen --enable - 启用颜色输出 (对于 V 1.4.0 和更高版本可选)。
oc ibm-pak config color --enable true - 将 WebSphere Automation 的映像清单下载到主机。提示: 如果未指定 CASE 版本,那么将下载最新的 CASE。
oc ibm-pak get \ $CASE_NAME \ --version $CASE_VERSION
缺省情况下,插件使用的根目录为 ~/.ibm-pak。 这意味着上述命令将下载 ~/.ibm-pak/data/cases/$CASE_NAME/$CASE_VERSION下的 CASE 。 您可以通过设置
IBMPAK_HOME环境变量来配置此根目录。 假定设置了IBMPAK_HOME变量,那么前面的命令将下载$IBMPAK_HOME/.ibm-pak/data/cases/$CASE_NAME/$CASE_VERSION下的 CASE 。日志文件可从 $IBMPAK_HOME/.ibm-pak/logs/oc-ibm_pak.log获取。
注:- 从 v1.4.0开始,插件将在目录 ~/.ibm-pak/data/cases/$CASE_NAME/$CASE_VERSION 中创建文件 component-set-config.yaml,以使用 oc ibm-pak get下载 CASE。 此文件将捕获已下载的所有 CASE ,并在此特定下载期间锁定其确切版本。 稍后可以使用此文件在另一个环境中下载具有相同版本的相同 CASE。 您可以将此文件检入到源代码存储库,并在每次使用此文件下载 CASE 时重新创建相同的环境。 运行以下命令:
oc ibm-pak get -c file:///home/user/ibm-pak/data/cases/$CASE_NAME/$CASE_VERSION/component-set-config.yamlfile://之后的路径应该是绝对路径。 - 您可以编辑此文件,以使用应该包含您的产品的固定版本来定义 CASE。 以下是示例文件 my-csc.yaml:
name: "example-product" # <required> defines the name for the "product"; this is NOT a CASE name, but follows IBM CASE name rules. For more information, see https://ibm.biz/case-yaml version: "1.0.0" # <required> defines a version for the "product" description: "an example product targeting OCP 4.14" # <optional, but recommended> defines a human readable description for this listing of components cases: # list of CASEs. First item in the list is assumed to be the "top-level" CASE, and all others are dependencies - name: ibm-mas version: 5.5.2 launch: true # Exactly one CASE should have this field set to true. The launch scripts of that CASE are used as an entry point while executing 'ibm-pak launch' with a ComponentSetConfig - name: ibm-cp-common-services version: 1.15.2
- 使用安装程序映像名称和版本创建以下环境变量。
备份数据
运行 backup 操作以备份数据。 将 instance_namespace 替换为要备份的 WebSphere Automation 实例的名称空间。
oc ibm-pak launch $CASE_NAME \
--version $CASE_VERSION \
--inventory automationOperator \
--action backup \
--namespace instance_namespace
backup 操作需要持久卷来存储备份信息。 缺省情况下,该操作会动态创建该卷。 如果不支持动态存储器供应,或者要使用其他持久卷,请为现有的持久卷声明 (PVC) 添加下列参数。
--args "--claim persistent_volume_name"
backup 操作将启动用于备份数据和资源的作业。 backup 操作输出会显示一个单独的命令,运行该命令即可获取该作业的日志。
每次运行 backup 操作时,它都会在持久卷上创建唯一目录,其中包含备份数据。 唯一目录名称具有基于运行该命令的时间和日期的时间戳记;例如,20210528-120120。 您可使用该目录名从备份复原数据。
复原数据
您可以从备份中恢复现有 WebSphere Automation 安装数据。 恢复过程包括删除现有数据以将安装置于初始状态,然后从备份复原数据。 当前不支持将 WebSphere Automation 安装恢复到同一个或另一个 Red Hat OpenShift 集群中的其他名称空间。
在 WebSphere Automation 1.4.4 和更高版本中,将备份和复原定制资源。 因此,不必为各种组件 (以下列表中的步骤 7 , 8 和 9) 扩展副本备份。
- 查找要从中恢复的备份时间戳记。 要列出可用的备份,请运行不带任何参数的 restore 操作。
oc ibm-pak launch $CASE_NAME \ --version $CASE_VERSION \ --inventory automationOperator \ --action restore \ --namespace instance_namespacerestore 操作会启动一个列出可用备份的作业。 restore 操作输出会显示一个单独的命令,运行该命令即可获取该作业的日志。 日志包含可用备份的列表。
- 将所有 WebSphere Automation 的副本数都缩放为零。
为此,您可以将 WebSphereAutomation 自定义资源中的 spec.scaleToZero 参数设置为
true。 更多信息请参阅 WebSphereAutomation 自定义资源。WSA_INSTANCE_NAMESPACE=instance_namespace WSA_AUTOMATION_CR=$(oc get websphereautomation -o name -n $WSA_INSTANCE_NAMESPACE | cut -d/ -f2) oc patch websphereautomation $WSA_AUTOMATION_CR -p '{"spec":{"scaleToZero":true}}' --type merge -n $WSA_INSTANCE_NAMESPACE缩放到零操作可能需要 1-2 分钟才能完成。 如果操作完成,那么将获得空结果。oc get pods -n $WSA_INSTANCE_NAMESPACE | grep Running | grep -v $WSA_AUTOMATION_CR-mongo | grep $WSA_AUTOMATION_CR- - 删除现有 WebSphere Automation 数据。
- 将数据存储库副本数缩减为零。
oc patch websphereautomation $WSA_AUTOMATION_CR -p '{"spec":{"dataStore":{"replicas":0}}}' --type merge -n $WSA_INSTANCE_NAMESPACE要验证数据存储器是否已缩减,请执行以下操作:oc get pods -n $WSA_INSTANCE_NAMESPACE | grep Running | grep $WSA_AUTOMATION_CR-mongo - 删除与该数据存储库相关联的持久卷声明 (PVC)。
oc delete pvc -l app.kubernetes.io/instance=${WSA_AUTOMATION_CR}-mongo -n $WSA_INSTANCE_NAMESPACE - 恢复数据存储库副本数。
oc patch websphereautomation $WSA_AUTOMATION_CR -p '{"spec":{"dataStore":{"replicas":3}}}' --type merge -n $WSA_INSTANCE_NAMESPACE - 确保 WebSphere Automation 操作程序已重新创建 PVC ,并且数据存储器已就绪。 您希望该命令输出为
True。oc get websphereautomation $WSA_AUTOMATION_CR -o jsonpath='{.status.conditions[?(@.type=="DataStoreReady")].status}' -n $WSA_INSTANCE_NAMESPACE && echo
- 将数据存储库副本数缩减为零。
- 要从备份复原,请使用 --timestamp 参数运行 restore 操作。 请将
timestamp替换为要复原的备份目录的时间戳记。oc ibm-pak launch $CASE_NAME \ --version $CASE_VERSION \ --inventory automationOperator \ --action restore \ --namespace $WSA_INSTANCE_NAMESPACE \ --args "--timestamp <timestamp>"restore 操作将启动用于复原数据和资源的作业。 restore 操作输出会显示一个单独的命令,运行该命令即可获取该作业的日志。
注: 如果在上一步之后未立即运行restore操作,那么日志文件可能指示某些文档未能复原。continuing through error: E11000 duplicate key error collection: webspheresecuredb.bulletins index: _id_ dup key: { _id: "3d7329df-abec-377d-bf5e-1181947b6c0d" }您可以忽略这些日志条目,因为在创建或还原新实例时将自动填充集合。
复原后,请确认复原的安装是否按需要运行,并且数据是否可用。
restore 命令以进行备份,那么需要除去先前运行的作业。 为此,请使用以下命令获取作业列表:oc get job -n $WSA_INSTANCE_NAMESPACE | grep wsa-restore删除名称中包含 wsa-restore 的作业。
oc delete job job_name -n $WSA_INSTANCE_NAMESPACE