上篇文章讲了关于OpenStack多节点基础环境的搭建,本文开始讲述如何搭建Keystone服务。
1. 登录mysql服务器中,创建数据库keystone,并授予适当的访问权限:
sudo mysql -u root -p
create database keystone;
grant all privileges on keystone.* to 'keystone'@'localhost' identified by 'KEYSTONE_DBPASS';
grant all privileges on keystone.* to 'keystone'@'%' identified by 'KEYSTONE_DBPASS';
sudo apt-get install keystone
编辑文件/etc/keystone/keystone.conf并完成以下动作:
在[database]部分,配置数据库访问:
[database]
#...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
注释[database]部分除connection以外的所有配置内容
将KEYSTONE_DBPASS替换为第一步安装keystone数据库时设置的密码。
在[token]部分, 配置Fernet UUID令牌的提供者
[token]
#...
provider = fernet
sudo su -s /bin/bash -c "keystone-manage db_sync" keystone
sudo keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
sudo keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
sudo keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://controller:35357/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne
sudo rm -f /var/lib/keystone/keystone.db
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS(这里替换为上述bootstrap时设置的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:35357/v3
export OS_IDENTITY_API_VERSION=3
3. 创建域,项目,用户和角色
openstack project create --domain default \
--description "Service Project" service
openstack project create --domain default \
--description "Demo Project" demo
openstack user create --domain default \
--password-prompt demo
openstack role create user
openstack role add --project demo --user demo user
4. 验证
因为安全性的原因,关闭临时认证令牌机制:
编辑 /etc/keystone/keystone-paste.ini
文件,从``[pipeline:public_api]``,[pipeline:admin_api]``和``[pipeline:api_v3]``部分删除``admin_token_auth
撤销临时环境变量
unset OS_AUTH_URL OS_PASSWORD
openstack --os-auth-url http://controller:35357/v3 \
--os-project-domain-name default --os-user-domain-name default \
--os-project-name admin --os-username admin token issue
输入密码后有类似下面的输出即为配置正确。
作为demo用户,请求认证:
openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name default --os-user-domain-name default \
--os-project-name demo --os-username demo token issue