Openstack 中文手册-部署Identity服务03
<本文转自 http://manual.blog.51cto.com/3300438/973921>
二、安装与配置Identity服务
2.3.定义服务
Keystone还担任着服务编录的角色,为其他的OpenStack系统指定哪里有相关的API终端位置。尤其是OpenStack的控制面板(Dashborad)更需要这个编录的服务。
备注:Keystone的服务编录类似于注册表,在这里我们把OpenStack所有服务的endpoint(终端)写入服务编录中,服务之间的调用需要经过Keystone的验证,并通过这个服务编录找到目标服务的终端(endpoint)位置。
使用keystone定义服务的方式有两种:
使用模版文件定义服务
使用后端数据库定义服务
使用模版文件的方式因为其比较简单,但除非是像DevStack这样的开发环境否则我们并不推荐使用这种模式。使用模版文件不支持通过keystone命令对服务编录执行CRUD操作,但不妨碍你使用service-list命令。而后端数据库则是一种更可靠的、高可用、提供数据冗余的方式。这节我们将描述如何使用后端数据库架构服务编录,你需要将/etc/keystone/keystone.conf文件中的[catalog]选项修改为如下这种配置:
[catalog]
driver = keystone.catalog.backends.sql.Catalog
Keystone服务编录条目的要素
对于目录中的每个服务条目,你都需要执行两个keystone操作:
1).使用keystone service-create命令为服务创建数据库条目,命令选项如下:
--name 服务名称(如:nova,ec2,glance,keystone)
--type 服务类型(如:compute,ec2,image,idnetity)
--description 服务描述(如:"Nova Compute Servece”)
2).使用keystone endpoint-create命令创建数据库条目,描述客户端如果连接不同类型的服务,即指定各个服务的终端位置,命令选项如下:
--region 你为OpenStack云取的区域名称(如:RegionOne)
--service_id 通过keystone service-create命令返回的服务ID(如:935fd37b6fa74b2f9fba6d907fa95825)
--publicurl 服务终端(endpoint)对公网提供的URL(如:http://192.168.206.130:9292/v1或http://192.168.202.130:8774/v2%(tenat_id)s)
--internalurl 服务终端对内提供的URL(典型案例是使用与publicurl相同的值)
--adminurl 提供服务管理界面的URL
Keystone允许URL使用变量,这些变量在运行期间会自动替换为正确的,例如使用类似于tenant_id这样的变量。你可以使用%(变量名)或$(变量名)标识正在使用变量。
创建keystone服务与服务终端(service endpoints)
这里我们会定义服务及其终端。
定义Identity服务:
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
service-create \
--name=keystone \
--type=identity \
--description="Keystone Identity Service"
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
endpoint-create \
--region RegionOne \
--service_id=15c11a23667e427e91bc31335b45f4bd \
--publicurl=http://192.168.206.130:5000/v2.0 \
--internalurl=http://192.168.206.130:5000/v2.0 \
--adminurl=http://192.168.206.130:35357/v2.0
定义Compute服务,需要为不同的租户(tenant)需要独立的endpoint,这里我们使用上节创建的service租户(tenant)。
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
service-create \
--name=nova \
--type=compute \
--description="Nova Compute Service"
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
endpoint-create \
--region RegionOne \
--service_id=abc0f03c02904c24abdcc3b7910e2eed \
--publicurl='http://192.168.206.130:8774/v2/%(tenant_id)s' \
--internalurl='http://192.168.206.130:8774/v2/%(tenant_id)s' \
--adminurl='http://192.168.206.130:8774/v2/%(tenant_id)s'
定义卷(Volume)服务,不同的tenant需要独立的endpoint:
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
service-create \
--name=volume \
--type=volume \
--description="Nova Volume Service"
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
endpoint-create \
--region RegionOne \
--service_id=1ff4ece13c3e48d8a6461faebd9cd38f \
--publicurl='http://192.168.206.130:8776/v1/%(tenant_id)s' \
--internalurl='http://192.168.206.130:8776/v1/%(tenant_id)s' \
--adminurl='http://192.168.206.130:8776/v1/%(tenant_id)s'
定义镜像服务(Image service):
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
service-create \
--name=glance \
--type=image \
--description="Glance Image Service"
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
endpoint-create \
--region RegionOne \
--service_id=7d5258c490144c8c92505267785327c1 \
--publicurl=http://192.168.206.130:9292/v1 \
--internalurl=http://192.168.206.130:9292/v1 \
--adminurl=http://192.168.206.130:9292/v1
定义EC2兼容服务:
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
service-create \
--name=ec2 \
--type=ec2 \
--description="EC2 Compatibility Layer"
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
endpoint-create \
--region RegionOne \
--service_id=181cdad1d1264387bcc411e1c6a6a5fd \
--publicurl=http://192.168.206.130:8773/services/Cloud \
--internalurl=http://192.168.206.130:8773/services/Cloud \
--adminurl=http://192.168.206.130:8773/services/Admin
定义Object Storage服务:
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
service-create \
--name=swift \
--type=object-store \
--description="Object Storage Service"
$ keystone --token 012345SECRET99TOKEN012345 \
--endpoint http://192.168.206.130:35357/v2.0/ \
endpoint-create \
--region RegionOne \
--service_id=272efad2d1234376cbb911c1e5a5a6ed \
--publicurl 'http://127.0.0.1:8080/v1/AUTH_%(tenant_id)s' \
--adminurl 'http://127.0.0.1:8080/' \
--internalurl 'http://127.0.0.1:8080/v1/AUTH_%(tenant_id)s'
Keystone的日志文件为/var/log/keystone.log,如果需要排除可以查看该文件。
blog comments powered by Disqus