安装和配置¶
本节描述了如何在控制器节点上安装和配置 OpenStack 身份认证服务,代号为 keystone。为了可扩展性,此配置部署 Fernet 令牌和 Apache HTTP 服务器来处理请求。
注意
在继续之前,请确保您已完成 Openstack 安装指南 中的先决条件安装步骤。
先决条件¶
在安装和配置 Identity 服务之前,您必须创建一个数据库。
使用数据库访问客户端以
root用户身份连接到数据库服务器# mysql创建
keystone数据库MariaDB [(none)]> CREATE DATABASE keystone;授予
keystone数据库适当的访问权限注意
将
KEYSTONE_DBPASS替换为合适的密码。在 MySQL 8 和 9 上,必须先创建用户
MariaDB [(none)]> CREATE USER 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE-DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost'; MariaDB [(none)]> CREATE USER 'keystone'@'%' IDENTIFIED BY 'KEYSTONE-DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%';
在 MySQL 5.7 上,以下命令将在同一行创建用户
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \ IDENTIFIED BY 'KEYSTONE_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \ IDENTIFIED BY 'KEYSTONE_DBPASS';
退出数据库访问客户端。
安装和配置组件¶
注意
默认配置文件因发行版而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。此外,配置片段中的省略号 (...) 表示您应该保留的潜在默认配置选项。
注意
本指南使用 Apache HTTP 服务器和 mod_wsgi 来处理 Identity 服务在 5000 端口上的请求。默认情况下,keystone 服务仍然监听此端口。该软件包会为您处理所有的 Apache 配置(包括激活 mod_wsgi apache2 模块以及在 Apache 中的 keystone 配置)。
运行以下命令来安装软件包
# apt install keystone
编辑
/etc/keystone/keystone.conf文件并完成以下操作在
[database]部分,配置数据库访问[database] # ... connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
将
KEYSTONE_DBPASS替换为您为数据库选择的密码。注意
注释掉或删除
[database]部分中的任何其他connection选项。在
[token]部分,配置 Fernet token 提供程序[token] # ... provider = fernet
填充 Identity 服务数据库
# su -s /bin/sh -c "keystone-manage db_sync" keystone
初始化 Fernet 密钥仓库
注意
--keystone-user和--keystone-group标志用于指定将用于运行 keystone 的操作系统用户/组。提供这些标志是为了允许在另一个操作系统用户/组下运行 keystone。在下面的示例中,我们将用户和组称为keystone。# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
启动 Identity 服务
注意
在 Queens 版本发布之前,keystone 需要在两个独立的端口上运行,以适应 Identity v2 API,该 API 运行一个独立的仅限管理员的服务,通常在 35357 端口上。随着 v2 API 的移除,keystone 可以在同一个端口上运行所有接口。
# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ --bootstrap-admin-url http://controller:5000/v3/ \ --bootstrap-internal-url http://controller:5000/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne
将
ADMIN_PASS替换为管理员用户的合适密码。
配置 Apache HTTP 服务器¶
编辑
/etc/apache2/apache2.conf文件,并将ServerName选项配置为引用控制器节点ServerName controller
如果
ServerName条目不存在,则需要添加它。
SSL¶
安全的部署应该配置 Web 服务器使用 SSL,或者运行在 SSL 终止器之后。
完成安装¶
重启 Apache 服务
# service apache2 restart
通过设置适当的环境变量来配置管理帐户
$ export OS_USERNAME=admin $ export OS_PASSWORD=ADMIN_PASS $ export OS_PROJECT_NAME=admin $ export OS_USER_DOMAIN_NAME=Default $ export OS_PROJECT_DOMAIN_NAME=Default $ export OS_AUTH_URL=http://controller:5000/v3 $ export OS_IDENTITY_API_VERSION=3
这里显示的值是从
keystone-manage bootstrap创建的默认值。将
ADMIN_PASS替换为在 keystone-install-configure-ubuntu 中keystone-manage bootstrap命令中使用的密码。