Keystone为OpenStack项目中的其他服务组件提供了身份认证和授权功能。
在控制节点安装配置并验证Keystone。
1
|
mysql -u root -p |
1
|
CREATE DATABASE keystone; |
1 2 |
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '<PASSWORD>'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '<PASSWORD>'; |
注意将<PASSWORD>修改为需要的密码。(openstack的账户密码设置中,不支持特殊符号#;openstack对密码的复杂度没有要求,可以设置为不带特殊字符的密码;若在设置密码时,一定要包含特殊符号,openstack仅支持如下特殊字符:& = $ - _ . + ! * ( ) )。
1
|
exit
|
1
|
yum -y install openstack-keystone httpd mod_wsgi |
在[database]部分添加如下内容:
1
|
connection = mysql+pymysql://keystone:<PASSWORD>@controller/keystone |
在[token]部分添加如下内容:
1
|
provider = fernet |
<PASSWORD>为用户为数据库设置的密码。
1
|
su -s /bin/sh -c "keystone-manage db_sync" keystone |
1 2 |
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone |
1 2 3 4 5 |
keystone-manage bootstrap --bootstrap-password <PASSWORD> \ --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 |
注意修改<PASSWORD>为用户admin的密码。
系统默认注释掉此项,需要找到该项并且修改。
1
|
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ |
1 2 |
systemctl enable httpd.service systemctl start httpd.service |
1 2 3 4 5 6 7 |
export OS_USERNAME=admin export OS_PASSWORD=<PASSWORD> 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 |
注意修改<PASSWORD>为用户admin的密码。
1
|
openstack domain create --description "An Example Domain" example |
1
|
openstack project create --domain default --description "Service Project" service |
1
|
openstack project create --domain default --description "Demo Project" myproject |
1
|
openstack user create --domain default --password-prompt myuser |
并创建密码。
1
|
openstack role create myrole |
1
|
openstack role add --project myproject --user myuser myrole |
1
|
unset OS_AUTH_URL OS_PASSWORD |
1 2 3 |
openstack --os-auth-url http://controller:5000/v3 \ --os-project-domain-name Default --os-user-domain-name Default \ --os-project-name admin --os-username admin token issue |
输入密码:<PASSWORD>
密码为自定义,为方便阅读,本文中全部以<PASSWORD>代替,此处的<PASSWORD>为admin用户的密码。
1 2 3 |
openstack --os-auth-url http://controller:5000/v3 \ --os-project-domain-name Default --os-user-domain-name Default \ --os-project-name myproject --os-username myuser token issue |
输入密码:<PASSWORD>
1
|
vim /etc/keystone/admin-openrc
|
并添加如下内容:
1 2 3 4 5 6 7 8 |
export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=<PASSWORD> export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 |
1
|
vim /etc/keystone/demo-openrc
|
并添加以下内容:
1 2 3 4 5 6 7 8 |
export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=myproject export OS_USERNAME=myuser export OS_PASSWORD=<PASSWORD> export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 |
admin-openrc为admin用户的登录凭据。
1 2 |
source /etc/keystone/admin-openrc openstack token issue |