安装和配置¶
本节描述了如何在控制器节点上安装和配置 OpenStack 身份认证服务,代号为 keystone。为了可扩展性,此配置部署 Fernet 令牌和 Apache HTTP 服务器来处理请求。
注意
在继续之前,请确保已完成 Openstack 安装指南 中的先决安装步骤。
先决条件¶
在安装和配置 Identity 服务之前,您必须创建一个数据库。
使用数据库访问客户端以
root用户身份连接到数据库服务器$ mysql -u root -p
创建
keystone数据库MariaDB [(none)]> CREATE DATABASE keystone;授予
keystone数据库适当的访问权限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';
将
KEYSTONE_DBPASS替换为合适的密码。退出数据库访问客户端。
安装和配置组件¶
注意
默认配置文件因发行版而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。此外,配置片段中的省略号 (...) 表示您应该保留的潜在默认配置选项。
运行以下命令来安装软件包
# dnf install openstack-keystone httpd uwsgi-plugin-python3
编辑
/etc/keystone/keystone.conf文件并完成以下操作在
[database]部分,配置数据库访问[database] # ... connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
将
KEYSTONE_DBPASS替换为您为数据库选择的密码。注意
注释掉或删除
[database]部分中的任何其他connection选项。注意
在此示例中,主机
controller必须可解析。在
[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/httpd/conf/httpd.conf文件,并将ServerName选项配置为引用控制器节点ServerName controller
如果
ServerName条目不存在,则需要添加它。创建指向
/usr/share/keystone/uwsgi-keystone.conf文件的链接# ln -s /usr/share/keystone/uwsgi-keystone.conf /etc/httpd/conf.d/
SSL¶
安全的部署应该配置 Web 服务器使用 SSL,或者运行在 SSL 终结器之后。
完成安装¶
启动 Apache HTTP 服务并配置它在系统启动时启动
# systemctl enable httpd.service # systemctl start httpd.service
通过设置适当的环境变量来配置管理帐户
$ 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-rdo 中的keystone-manage bootstrap命令中使用的密码。