安装¶
注意
在 Stein 版本发布之前,placement 代码位于 Nova 中,与计算 REST API 代码 (nova-api) 一起。 确保本文档的版本与您想要部署的版本匹配。
步骤概述¶
本小节概述了流程,而没有详细介绍所使用的方法。
1. 部署 API 服务
Placement 提供了一个 placement-api WSGI 脚本,用于使用 Apache、nginx 或其他支持 WSGI 的 Web 服务器运行该服务。 根据用于部署 OpenStack 的打包解决方案,WSGI 脚本可能位于 /usr/bin 或 /usr/local/bin 中。
placement-api 作为标准的 WSGI 脚本,提供了一个模块级别的 application 属性,这是大多数 WSGI 服务器期望找到的。 这意味着可以使用许多不同的服务器来运行它,从而在不同的部署场景中提供灵活性。 常见的场景包括
在所有这些场景中,应用程序的主机、端口和挂载路径(或前缀)都在 Web 服务器的配置中控制,而不是在 placement 应用程序的配置 (placement.conf) 中控制。
当 placement 被 首次添加到 DevStack 时,它使用了 mod_wsgi 风格。 后来它 被更新 为使用 mod_proxy_uwsgi。 查看这些更改对于理解相关选项很有用。
DevStack 配置为在默认的 http 或 https 端口(80 或 443)的 /placement 上托管 placement,具体取决于是否正在使用 TLS。 使用默认端口是理想的。
默认情况下,placement 应用程序将从 /etc/placement/placement.conf 获取数据库连接 URL 等设置的配置。 可以通过在启动应用程序的进程的环境中设置 OS_PLACEMENT_CONFIG_DIR 来更改配置文件的查找目录。 在最近版本的 oslo.config 中,配置选项也可以在 环境中 设置。
注意
在使用带有前端(例如 apache2 或 nginx)的 uwsgi 时,需要有某些东西来确保 uwsgi 进程正在运行。 在 DevStack 中,这是通过 systemd 完成的。 这是管理 uwsgi 的许多不同方法之一。
本文档不声明 placement 服务的安装说明集。 这是因为拥有 WSGI 应用程序的主要优点是使部署尽可能灵活。 由于 placement API 服务本身是无状态的(所有状态都在数据库中),因此可以在负载均衡解决方案后部署任意数量的服务器,以实现强大且简单的扩展。 如果您熟悉安装通用的 WSGI 应用程序(使用上面常见场景列表中的链接),那么这些技术将适用于此处。
2. 同步数据库
placement 服务使用其自己的数据库,该数据库定义在配置的 placement_database 部分中。 placement_database.connection 选项 必须 设置,否则该服务将无法启动。 命令行工具 placement-manage 可用于将数据库表迁移到其正确的形式,包括创建它们。 由 connection 选项描述的数据库必须已经存在,并且必须定义适当的访问控制。
同步的另一个选项是将 placement_database.sync_on_startup 在配置中设置为 True。 这将在 placement Web 服务启动时执行任何缺少的数据库迁移。 您选择自动同步还是使用命令行工具取决于您的环境和部署工具的约束。
3. 创建帐户并更新服务目录
在 Keystone 中创建一个具有 admin 角色的 placement 服务用户。
placement API 是一个单独的服务,因此应在服务目录中注册为 placement 服务类型。 placement 的客户端,例如 nova-compute 节点中的资源跟踪器,将使用服务目录来查找 placement 端点。
有关创建服务用户和目录条目的示例,请参阅 配置用户和端点。
Devstack 将 placement 服务设置为默认 HTTP 端口 (80),并使用 /placement 前缀,而不是使用独立的端口。
安装包¶
本节提供有关从 Linux 发行版软件包安装 placement 的说明。
警告
这些安装文档正在进行中。 某些提到的发行版软件包尚未可用,因此说明 将无法工作。
placement 服务提供了一个 HTTP API,用于跟踪资源提供程序清单和使用情况。 可以在 placement 概述 中找到更多详细信息。
Placement 作为 Web 服务运行在数据模型之上。 安装涉及创建必要的数据库以及安装和配置 Web 服务。 这是一个简单的过程,但与 OpenStack 云的其余部分集成有很多步骤。
注意
Placement 是其他一些 OpenStack 服务所必需的,特别是 nova,因此应在安装这些其他服务之前,但在 Identity (keystone) 之后安装。