如何使用 Horizo​​n 或 Openstack 客户端获取 openstack 版本?

How to get openstack version using Horizon or Openstack client?

如何使用 Horizo​​n 或 OpenStack 客户端获取 OpenStack 版本?

当我 运行 命令 openstack --version 时,我得到以下输出:

openstack 3.15.0

现在,我们如何才能知道它是哪个版本的 openstack,例如牛顿,公斤?

另一个问题,如果我可以访问 Horizo​​n dashbord,是否可以从 UI 获取 openstack 的版本?

安装在OpenStack中的每个服务都是一个带有版本的包。所以通常我们会得到个别服务的版本。例如要找到 nova 版本,

 nova --version

如果你想知道nova相关的所有包,

pip list | grep nova

从上面,您将获得 nova 客户端和 nova 版本,然后在 **https://releases.openstack.org/teams/nova.html 中搜索版本。在这里,您将获得根据 OpenStack 发行版名称分离的版本。

我认为值得注意的是,命令行中的 openstack --version 只会为您提供您正在查看的系统上的 openstack client 版本. openstack host listnova service-list 可能会让您更好地了解 openstack 服务在您的 openstack 部署中的位置 运行。

我不记得看到过通过 Horizo​​n 查看特定 OpenStack 服务版本的方法。从给定服务主机(如 nova、neutron、cinder、keystone)上的命令行,您应该能够列出已安装的包。

我认为规范安装使用了发行版的包管理器:

对于基于 yum 的系统,如 rhel 和 centos

sudo yum list installed | grep openstack
sudo yum list installed | grep nova

对于基于能力的系统

sudo dpkg -l | grep openstack
sudo dpkg -l | grep nova 

从那里开始,您必须将发行版与 OpenStack 文档中的版本进行交叉引用。例如,Nova 版本 14 将是 Newton 版本。查看 nova 版本 here. For the list of releases, look here

从 openstack --version 命令获取输出并与以下内容进行比较。

洛基 3.16.0 皇后区 3.14.0 派克 3.12.0 奥卡塔 3.8.1 牛顿 3.2.0 三鹰 2.3.0 自由 1.7.3 公斤 1.0.6 朱诺 0.4.1 冰屋 0.3.1

对于未来的版本,请参阅: https://docs.openstack.org/releasenotes/python-openstackclient/

nova-manage --version 会给你 OpenStack 版本。 输出将是一个与字母表中的字母相对应的数字。例如 如果输出是 18 那么它的 OpenStack ROCKY 版本,因为 18 对应于字母表中的第 18 个字母。

17- Queen 
18- Rocky
19- Stein

知道您正在使用哪个版本的 OpenStack 环境总是好的。自由之前 版本,除 Swift 之外的所有项目都有一个基于年份和月份的版本。从 Liberty 开始,所有 组件具有传统的版本结构 X.Y.Z,其中 X 在一个版本中始终相同。 以下是 Mitaka 的示例:
keystone-manage --version
9.0.0
nova-manage --version
13.0.0

这里是 OpenStack Kilo 中使用的老式版本约定的示例:
keystone-manage --version
2015.1.0
nova-manage --version
2015.1.0
您还可以在右上角的管理菜单中的系统信息选项卡上找到版本 页面底部。在 Table 11-2 中,列出了几个最新的 OpenStack 版本。 Table 11-2。 OpenStack 发布 系列发布 初始发布日期 朱诺 2014.2 2014 年 10 月 16 日 公斤 2015.1 2015 年 4 月 30 日 自由新星 12.0;梯形校正 8.0;中子 7.0; Swift 2.4 2015 年 10 月 15 日 三鹰新星 13.0;梯形校正 9.0;中子 8.0; Swift 2.6 2016 年 4 月 7 日 牛顿新星14.0;梯形校正 10.0;中子9.0; Swift2.8 2016年10月6日(计划中)

来自 Openstack 文档

nova-manage --version 将为您提供 OpenStack 版本。输出将是一个与字母表中的字母相对应的数字。例如,如果输出是 18 那么它的 OpenStack ROCKY 版本,因为 18 对应于字母表中的第 18 个字母。

如果您没有 运行 的权限(HTTP 错误 403):

openstack service list
openstack host list

然后在 OS_AUTH_URL 地址查找“id”版本,在您的租户 RC 文件中找到(您可以在 Horizo​​n 中的 Project > API Access 下下载 RC 文件)。

例如,这里我使用 curljq 从以下位置过滤 ID 版本:https://my.openstack.redhat.com:13000/v3:

$ curl https://my.openstack.redhat.com:13000/v3 | jq '.[] | .id'

"v3.10"

根据https://docs.openstack.org/api-ref/identity/v3/

我的 Openstack 版本是 3.10,也称为“Queen”(或 RHOSP 13)。

在 RHOSP 中,您可以简单地检查控制器中的文件

# cat /etc/rhosp-release
Red Hat OpenStack Platform release 13.0.10 (Queens)

这将为您提供安装的 openstack 的确切版本

可悲的答案是:你不能

如果您只是 OpenStack 设置的用户并且无权访问背板,则至少这是正确的,无法登录到提供服务的实际服务器。 API 是访问服务的唯一稳定方式。每个服务可能有也可能没有自己的 OpenStack 版本,它们不一定都相同。

理论上,查找服务目录应该可以完成您要求的工作,因为它包含您的 OpenStack 云提供的每项服务的端点。端点 URL 的一部分是端点版本。 不幸的是 不一定需要匹配服务的模块版本。

查找目录可以这样进行:

openstack catalog list -c Endpoints -f json | jq '.[].Endpoints[]' | grep url| sort -u

(你懂的)。也许这包括您正在寻找的信息。