7.8. 更新 Overcloud 软件包

Overcloud 使用标准的 RPM 方法来更新环境。这包括从 director 使用 openstack overcloud update 来在所有节点上进行更新。
并行地在所有节点上进行更新可能会产生问题。例如,更新一个软件包可能需要重启一个服务,这可能会影响到其它节点。因此,更新进程会使用一组“断点”来更新每个节点,这意味着节点会一个接一个地进行更新。当一个节点完成软件包更新后,下一个节点会开始进行更新。
断点操作通常是自动进行的。用户也可以使用 -i 选项来在每个断点上进行交互式确认。

在使用计划创建的 Overcloud 上更新软件包

如果您使用 第 6.2 节 “使用情景 2:使用 CLI 创建一个基本的 Overcloud” 创建了一个 Overcloud,则需要使用 overcloud 计划来更新 Overcloud 节点。首先,找到计划的 UUID:
$ openstack management plan list
运行以下命令更新堆栈中的节点:
$ openstack overcloud update stack --plan [PLAN_UUID] -e [ENVIRONMENT_FILE] -i overcloud
这将初始化 overcloud 堆栈中的所有节点的软件包更新过程。它会在 overcloud 计划中设置 UpdateIdentifier 参数,然后触发堆栈更新操作。这将在每个节点上运行 yum update

重要

如果您在创建 Overcloud 时传递了额外的环境变量,使用 -e--environment-file 选项再次传递它们来避免对 Overcloud 的不必要的改变。

在使用 Heat 模板集合创建的 Overcloud 上更新软件包

如果您使用 第 6.3 节 “使用情景 3:使用 CLI 创建一个带有 Ceph 节点的高级 Overcloud” 创建了一个 Overcloud,则需要一个更新的本地 Heat 模板集合来更新 Overcloud 节点软件包。
运行以下命令更新堆栈中的节点:
$ openstack overcloud update stack --templates [TEMPLATES_DIR] -e [ENVIRONMENT_FILE] -i overcloud
这将初始化 overcloud 堆栈中的所有节点的软件包更新过程。它会在 Overcloud Heat 模板集合中设置 UpdateIdentifier 参数,然后触发堆栈更新操作。这将在每个节点上运行 yum update

重要

如果您在创建 Overcloud 时传递了额外的环境变量,使用 -e--environment-file 选项再次传递它们来避免对 Overcloud 的不必要的改变。