一旦keystone安装和运行好,服务需要配置好才能使用它。
为了完成这个,为了OpenStack service能够完成验证并和keystone进行交流,主要是安装和配置中间件。
一般而言:
Client要访问服务就必须传递一个验证token
keystone中间件将寻找和验证token,并做相对应的操作
也可以从token中获取额外的信息,如user name,id,tenant name,id,roles等。
中间件将会以headers的形式传递这些信息给服务,更多关于中间件的说明请参考 middlewarearchitecture(http://docs.openstack.org/developer/keystone/middlewarearchitecture.rst)
Setting up credentials
1. Admin Token在你能使用REST API之前,你需要定义一个验证token,这个可以在keystone.conf文件的[DEFAULT]参数里设置,例如下面:
[DEFAULT]
admin_token = ADMIN
这个token是keystone和其他openstack services之间的一个“shared secret”,这个token经常被使用来创建tenants,users,roles等。
2. Setting up tenants,users,and roles
你至少需要定义一个tenant,user,role来进行服务的验证。
Setting up services
1. Creating Service Users为了配置OpenStack,需要为所有services创建一个tenant,并为每个service创建users,然后给这些users授予Admin角色。
为services创建一个tenant:
keystone tenant-create --name=service
会返回一个UUID,保存这个UUID,当你创建users和授予权限的时候需要使用到它。
为nova,glance,swift和neutron创建service users:
keystone user-create --name=nova --pass=Sekr3tPass --tenant_id =[the uuid of the tenant] --email=nova@noting.com
然后是为每一个users授予tenant的Admin权限。
eg:
2. Defining Serviceskeystone user-role-add –tenant_id=[uuid of the service tenant]
- –user=[uuid of the service account] –role=[uuid of the Admin role]
keystone支持两种服务的定义,一个是catalog template,所有的细节都放在template。
另一种就是以SQL为后端定义catalog service,这样的话你需要添加services为catalog:
keystone service-create --name=nova \ --type=compute \ --description="Nova Compute Service" keystone service-create --name=ec2 \ --type=ec2 \ --description="EC2 Compatibility Layer" keystone service-create --name=glance \ --type=image \ --description="Glance Image Service" keystone service-create --name=keystone \ --type=identity \ --description="Keystone Identity Service" keystone service-create --name=swift \ --type=object-store \ --description="Swift Service"
Setting Up Middleware
keystone的auth_token中间件是一个WSGI组件,这个组件能够被插入到WSGI pipeline来控制keystone的token验证。1. Configuring NOva to use Keystone
当配额之Nova的时候,非常重要的是为这个service创建一个admin service token。
as the key‘admin_token’ in Nova’s api-paste.ini [filter:authtoken] section or innova.conf [keystone_authtoken] section.
2. Configuring Swift to use Keystone
这个主要牵涉到Swift的overview_auth文档
3. Auth-Token Middleware with Username and Password
也可以使用admin_user和admin_password选项来配置keystone的auth_token中间件。
当你使用“admin_user”和“admin_password”选项的时候“admin_token"参数是可填可不填写的。