标签(空格分隔):openstack系列python
- 一: 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 -pflyfish225 CREATE 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 -y yum install openstack-keystone python-keystoneclient openstack-utils -y
openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:keystone@controller/keystone openstack-config --set /etc/keystone/keystone.conf token provider fernet grep '^[a-z]' /etc/keystone/keystone.conf
su -s /bin/sh -c "keystone-manage db_sync" keystone mysql -uroot -pflyfish225 use keystone; show tables;
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-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 start chkconfig httpd on
临时配置管理员帐户的相关变量进行管理 export OS_USERNAME=admin export OS_PASSWORD=admin 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
env |grep OS_
查看命令 openstack endpoint list openstack project list openstack 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_PASSWORD env |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
使用普通用户获取认证token 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
建立admin用户的环境管理脚本 mkdir /openstack cd /openstack vim keystone-admin-pass.sh --- export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=admin export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 --- source keystone-admin-pass.sh 建立普通用户myuser的客户端环境变量脚本 cd /openstack vim keystone-myuser-pass.sh --- export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=myproject export OS_USERNAME=myuser export OS_PASSWORD=myuser export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 --- source keystone-myuser-pass.sh 请求认证令牌: openstack token issue # 能够看到user_id和上面用命令获取到的是同样的,说明配置成功 # 至此,keystone安装完毕