3.2. 升级 Director
确保在以下流程中的任何步骤前读取 第 3.1 节 “重要的 Pre-Upgrade 备注” 中的信息。
以 stack
用户身份登录 director,再停止主要的 OpenStack Platform 服务:
sudo systemctl stop 'openstack-*' 'neutron-*' httpd
$ sudo systemctl stop 'openstack-*' 'neutron-*' httpd
这会导致 undercloud 短停机时间。overcloud 在 undercloud 更新期间仍然可以正常工作。
要将 director 软件包更新至最新的主版本,请将 OpenStack Platform 存储库从旧版本更改为新版本。例如:
sudo subscription-manager repos --disable=rhel-7-server-openstack-7.0-rpms --disable=rhel-7-server-openstack-7.0-director-rpms sudo subscription-manager repos --enable=rhel-7-server-openstack-8-rpms --enable=rhel-7-server-openstack-8-director-rpms
$ sudo subscription-manager repos --disable=rhel-7-server-openstack-7.0-rpms --disable=rhel-7-server-openstack-7.0-director-rpms
$ sudo subscription-manager repos --enable=rhel-7-server-openstack-8-rpms --enable=rhel-7-server-openstack-8-director-rpms
这会将 yum
设置为使用最新的软件仓库。使用 yum
更新 director:
sudo yum upgrade
$ sudo yum upgrade
在 yum update
完成后,一些 OpenStack 服务可能会失败。这是预期的行为。Undercloud 的 upgrade 命令更正这些服务的配置。
director 使用 openstack undercloud upgrade
命令来升级 Undercloud 环境。运行 upgrade 命令:
openstack undercloud upgrade
$ openstack undercloud upgrade
这会刷新 director 的配置,并填充自版本更改以来未设置的任何设置。运行此命令不会删除环境中现有节点的任何存储数据,如 Overcloud 堆栈数据或数据。
更新完成后,检查 director 的 OpenStack 服务:
sudo systemctl list-units openstack-*
$ sudo systemctl list-units openstack-*
openstack-keystone
可能显示为失败的服务。这是因为该服务现在作为 WSGI 应用程序通过 httpd
服务运行。在更新 director 软件包并运行 openstack undercloud upgrade
后,openstack-keystone
服务可以安全地禁用。
要完成更新,请验证您的 Overcloud 及其节点是否存在:
source ~/stackrc openstack server list ironic node-list heat stack-list
$ source ~/stackrc
$ openstack server list
$ ironic node-list
$ heat stack-list
在将 Overcloud 升级到 Red Hat OpenStack Platform 8 后请注意以下几点:
使用 SSL 的 undercloud 可能会在升级过程中丢失对 VIP 的访问。如果是,重启 Undercloud 上的
keepalived
服务:systemctl restart keepalived
$ systemctl restart keepalived
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Undercloud 的
admin
用户可能需要 Red Hat OpenStack Platform 8 附带的额外角色(_member_
)。此角色对于 Overcloud 通信非常重要。检查此角色:keystone role-list
$ keystone role-list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果角色不存在,请创建:
keystone role-create --name _member_
$ keystone role-create --name _member_
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将角色添加到
admin
租户上的admin
用户:keystone user-role-add --user admin --role _member_ --tenant admin
$ keystone user-role-add --user admin --role _member_ --tenant admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用自定义核心 Heat 模板,请确保检查更新的核心 Heat 模板和当前集合之间的差别。红帽通过后续版本为 Heat 模板集合提供更新。使用修改后的模板集合可导致您的自定义副本和
/usr/share/openstack-tripleo-heat-templates
中的原始副本之间的不同性。运行以下命令,以查看自定义 Heat 模板集合和更新的原始版本之间的区别:diff -Nary /usr/share/openstack-tripleo-heat-templates/ ~/templates/my-overcloud/
# diff -Nary /usr/share/openstack-tripleo-heat-templates/ ~/templates/my-overcloud/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保将这些更新应用到您的自定义 Heat 模板集合,或者在
/usr/share/openstack-tripleo-heat-templates/
中创建模板的新副本,并应用您的自定义。