在openstack设置keystone时,由于后面的认证服务设置很长,所以建议使用脚本进行设置,不过作为新手在使用脚本时也要搞清楚脚本替我们做了哪些工作。
设置tenants、users、roles
1 首先设置默认的tenant名称为admin
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 tenant-create --name admin --description "Admin Tenant" --enabled true
2 创建一个Service tenant,这个tenant包含了所有的services
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 tenant-create --name service --description "Service Tenant" --enabled true
3 创建一个user
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 user-create --name admin --pass secretword --enabled true
4 创建一个默认的role,admin和memberRole
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 role-create --name admin
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 role-create --name memberRole
5 在admin tenant中把admin role授权给admin user
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 user-role-add --user 'admin用户的id' --tenant_id 'admin tenant的id' --role 'admin role的id'
6 在service tenant中创建glance user
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 user-create --tenant_id 'service tenant的id' --name glance --pass glance --enabled true
在service tenant中把admin role授权给glance user
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 user-role-add --user 'glance user的id' --tenant_id 'service tenant的id' --role 'admin role的id'
7 在service tenant中创建nova user
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 user-create --tenant_id 'service tenant的id' --name nova --pass nova --enabled true
8 在service tenant中创建swift user
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 user-create --tenant_id 'service tenant的id' --name swift --pass swiftpass --enabled true
在service tenant中把admin role授权给swift user
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 user-role-add --user 'swift user的id' --tenant_id 'service tenant的id' --role 'admin role的id'
设置keystone service && service endpoints
1 设置identity service
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 service-create --name=keystone --type=identity --description="Keystone Identity Service"
设置identity service的endpoints
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 ip :35357/v2.0 endpoint-create --region RegionOne --service_id='identity service的id' --publicurl=http://控制节点ip:5000/v2.0 --internalurl=http://控制节点ip:5000/v2.0 --adminurl=http://控制节点ip:35357/v2.0
2 设置compute service,这个服务需要对每个tenant分开endpoint,我们使用%(tenant_id)s
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的ip:35357/v2.0/ service-create --name=nova --type=compute --description="Nova Compute Service"
设置compute service的endpoints
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的ip:35357/v2.0/ endpoint-create --region RegionOne --service_id='compute service的id' --publicurl='http://控制节点的ip:8774/v2/%(tenant_id)s' --internalurl='http://控制节点的ip:8774/v2/%(tenant_id)s' --adminurl='http://控制节点的ip:8774/v2/%(tenant_id)s'
3 设置volume service,这个服务也需要对每一个tenant单独设置每一个endpoint
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的ip :35357/v2.0/ service-create --name=volume --type=volume --description="Nova Volume Service"
设置volume service的endpoint
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的 :35357/v2.0/ endpoint-create --region RegionOne --service_id='volume service的id' --publicurl='http://控制节点的ip:8776/v1/%(tenant_id)s' --internalurl='http://控制节点的ip:8776/v1/%(tenant_id)s' --adminurl='http://控制节点的ip:8776/v1/%(tenant_id)s'
4 设置image service
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的ip :35357/v2.0/ service-create --name=glance --type=image --description="Glance Image Service"
设置image service的endpoints
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点的ip:35357/v2.0/ endpoint-create --region RegionOne --service_id='image service的id' --publicurl=http://控制节点的ip:9292/v1 --internalurl=http://控制节点的ip:9292/v1 --adminurl=http://控制节点的ip :9292/v1
5 设置object storage service
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://192.168.206.130:35357/v2.0/ service-create --name=swift --type=object-store --description="Object Storage Service"
设置object storage的endpoint
keystone --token '在keystone.conf设置的admin_token值' --endpoint http://控制节点ip:35357/v2.0/ endpoint-create --region RegionOne --service_id='object storage的id' --publicurl 'http://控制节点ip:8888/v1/AUTH_%(tenant_id)s' --adminurl 'http://控制节点ip:8888/v1' --internalurl 'http://控制节点ip:8888/v1/AUTH_%(tenant_id)s'