@zhangyy
2019-12-25T09:21:34.000000Z
字数 3917
阅读 284
openstack系列
- 一: keystone认证服务
- 二: keystone的部署
Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证、服务规则和服务令牌功能的模块。用户访问资源需要验证用户的身份与权限,服务执行操作也需要进行权限检测,这些都需要通过 Keystone 来处理。Keystone类似一个服务总线, 或者说是整个Openstack框架的注册表, 其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用, 需要经过Keystone的身份验证, 来获得目标服务的Endpoint来找到目标服务。1)用户与认证:用户权限与用户行为跟踪User 用户Tenant 租户Token 令牌Role 角色2)服务目录:提供一个服务目录,包括所有服务项与相关API的端点Service 服务Endpoint 端点
mysql -uroot -pflyfish225CREATE DATABASE keystone;GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';flush privileges;show databases;select user,host from mysql.user;

yum install openstack-keystone httpd mod_wsgi -yyum install openstack-keystone python-keystoneclient openstack-utils -y


openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:keystone@controller/keystoneopenstack-config --set /etc/keystone/keystone.conf token provider fernetgrep '^[a-z]' /etc/keystone/keystone.conf

su -s /bin/sh -c "keystone-manage db_sync" keystonemysql -uroot -pflyfish225use keystone;show tables;

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystonekeystone-manage credential_setup --keystone-user keystone --keystone-group keystone

keystone-manage bootstrap --bootstrap-password admin \--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

vim /etc/httpd/conf/httpd.conf---ServerName controller---ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/service httpd startchkconfig httpd on



临时配置管理员账户的相关变量进行管理export OS_USERNAME=adminexport OS_PASSWORD=adminexport OS_PROJECT_NAME=adminexport OS_USER_DOMAIN_NAME=Defaultexport OS_PROJECT_DOMAIN_NAME=Defaultexport OS_AUTH_URL=http://controller:5000/v3export OS_IDENTITY_API_VERSION=3

env |grep OS_

查看命令openstack endpoint listopenstack project listopenstack user list

# 以下命令会在project表中创建名为example的项目openstack domain create --description "An Example Domain" example

为keystone系统环境创建名为service的项目提供服务用于常规(非管理)任务,需要使用无特权用户以下命令会在project表中创建名为service的项目openstack project create --domain default --description "Service Project" service

创建myproject项目和对应的用户及角色# 作为一般用户(非管理员)的项目,为普通用户提供服务# 以下命令会在project表中创建名为myproject项目openstack project create --domain default --description "Demo Project" myproject

在默认域创建myuser用户openstack user create --domain default --password-prompt myuser在role表创建myrole角色openstack role create myrole


将myrole角色添加到myproject项目中和myuser用户组中openstack role add --project myproject --user myuser myrole

去除环境变量unset OS_AUTH_URL OS_PASSWORDenv |grep OS_

作为管理员用户去请求一个认证的token测试是否可以使用admin账户进行登陆认证,请求认证令牌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

使用普通用户获取认证tokenopenstack --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

创建admin用户的环境管理脚本mkdir /openstackcd /openstackvim keystone-admin-pass.sh---export OS_PROJECT_DOMAIN_NAME=Defaultexport OS_USER_DOMAIN_NAME=Defaultexport OS_PROJECT_NAME=adminexport OS_USERNAME=adminexport OS_PASSWORD=adminexport OS_AUTH_URL=http://controller:5000/v3export OS_IDENTITY_API_VERSION=3export OS_IMAGE_API_VERSION=2---source keystone-admin-pass.sh创建普通用户myuser的客户端环境变量脚本cd /openstackvim keystone-myuser-pass.sh---export OS_PROJECT_DOMAIN_NAME=Defaultexport OS_USER_DOMAIN_NAME=Defaultexport OS_PROJECT_NAME=myprojectexport OS_USERNAME=myuserexport OS_PASSWORD=myuserexport OS_AUTH_URL=http://controller:5000/v3export OS_IDENTITY_API_VERSION=3export OS_IMAGE_API_VERSION=2---source keystone-myuser-pass.sh请求认证令牌:openstack token issue# 可以看到user_id和上面用命令获取到的是一样的,说明配置成功# 至此,keystone安装完毕

