Keystone 服务应该在控制器节点上安装并配置。
controller# pkg install keystone
在 /etc/keystone/keystone.conf 文件中取消对以下两个参数的注释并进行设置。
admin_token 参数是 Keystone 和其他 OpenStack 服务之间“共享的秘密”。此参数的值可以为由任意字符组成的字符串,但是不应透露或分发该值。创建此类字符串的一种方法是使用 OpenSSL,如下面的命令所示:
controller# openssl rand -hex 10 random_string
使用此输出值设置 /etc/keystone/keystone.conf 文件中的 admin_token 参数。
admin_token = random_string
connection 参数是表示 Keystone 数据库以及使用的类似数据库的位置的 URI。
使用之前 getent hosts 命令输出的 controller-name 设置 /etc/keystone/keystone.conf 文件中的 connection 参数。
connection = mysql://keystone:keystone@controller-name/keystone
controller# su - keystone -c "keystone-manage pki_setup"
controller# svcadm enable keystone
此步骤可以手动执行,也可以使用 sample_data.sh 脚本执行,如下面的示例所示。使用之前 getent hosts 命令输出的 controller-name。
controller# su - keystone -c "env \ CONTROLLER_ADMIN_ADDRESS=controller-name \ CONTROLLER_INTERNAL_ADDRESS=controller-name \ CONTROLLER_PUBLIC_ADDRESS=controller-name \ /usr/demo/openstack/keystone/sample_data.sh"
sample_data.sh 脚本支持定义各个 API 服务所在节点以及各个服务口令的环境变量。请查看该脚本,以了解有关环境中可以设置的参数的更多信息。缺省情况下,使用与用户名相同的口令为 service 租户下的每个服务创建一个 Keystone 用户。例如,使用 nova 口令创建了一个 nova 用户。