三、Openstack安装keystion(identity) – 煮酒品茶 – 51CTO技术博客

Idenitity 服务理念:

执行以下功能:

用户管理,跟踪用户以及用户的权限

catalog服务:提供与他们的API catalog 服务

用户(user)

用户表示拥有用户名,密码,邮箱等帐号信息的自然人。

证书(Credentials)

证明资格和权力的东西,如用户名和密码,用户名和API KEY 或者服务本身的认证token

认证(Authentication)

确认用户身份的行为,经过上面描述的“证书”服务确认用户。

令牌(token)

一种认证方式,通过认证后发给连接端。

租户(tenant)

租户可以被理解为一个项目,团队或组织。你必须指定一个相应的租户(tenant)才可以申请OpenStack服务

服务(Service

通过它用户可以访问资源并执行操作的一个终端。 即完成以上几步后就给一个终端供client使用。                

终端(Endpoint

通过网络访问的一个URL地址,可以获得你想要访问的服务,

角色(Role)

角色代表特定的租户中的用户用户操作权限

wKioL1LGH_zTNa93AAH5j7R-X1w912.jpg

六个过程,alice任务请求创建一个虚拟机

alice发送凭据给keystone,keystone返回一个临时创建的tokent和一个通用的目录。

alice请求提供租户的列表,keystone返回一个他的租户的服务列表。

keystone发送给alice带有租房的凭据、租房的服务列表、租户的token

alice去终端连接服务,并提供一个请求的token,终端去问keystone是否是正确的令牌和是否允许使用这个服务

keystone提供“alice的租户允许访问服务,令牌与请求匹配并且这个令牌属于alice”给Service

Service执行服务请求并把执行状态发送给alice

安装identity服务

安装软件包

# apt-get install keystone

修改配置文件/etc/keystone/keystone.conf

使用数据库存储数据,我们改一下他的连接方式,默认使用sqlite我们要进行更改

connection = mysql://keystone:stack@controller/keystone

wKiom1LGIBXzh-T_AAAujgzSI1E832.jpg

给keystone创建一个keystone数据库

mysql> create database keystone;

mysql> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’localhost’ IDENTIFIED BY ‘stack;

GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’controller’ IDENTIFIED BY ‘stack’;

wKioL1LGIBbzkeSIAAA2lxwHkYw932.jpg

wKiom1LGICKzduk1AAAiPXONPYg058.jpg

4、同步一下到数据库

# keystone-manage db_sync

创建了一些空表

wKioL1LGICTRUjFZAABqRbH9fHY367.jpg

6、生成一个token,并放到配置文件中

wKiom1LGIDvCNjDxAAATL_6kryc273.jpg

/etc/keystone/keystone.conf

wKiom1LGIFHRkWsNAAAkOpdg3UQ617.jpg

重启keystone服务

# service keystone restart

定义用户、租户、角色

1、定义环境变量

由于我们并没有用户,所以需要创建用户,但这本身就需要认证,所以我们增加怎么环境变量os_server_token os_service_endpoint

# export OS_SERVICE_TOKEN=9f9c6ce6e5fcc5437443

# export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0

wKioL1LGIFLBLmcKAAAxv-Bir08254.jpg

创建一个admin和service的租户

# keystone tenant-create –name=admin –description=”Admin Tenant”

# keystone tenant-create –name=service –description=”Service Tenant”

wKiom1LGIGyhAjKuAACSz_0T3B4309.jpg

创建一个管理员用户为admin并设置一个密码并指定电子邮件,这是第三个密码了。记下来。

# keystone user-create –name=admin –pass=openstack –email=zwhset@163.com

wKioL1LGIGzSuzffAABR2PpZW6c219.jpg

创建一个管理员用记的角色admin,注意默认使用admin角色将允许大多数的服务。创建的角色应该映射到openstack服务的policy.json文件名中指定的角色

# keystone role-create –name=admin

wKiom1LGIIGgr8tRAAA3NL4s4hM658.jpg

添加角色用户租户的对应关系

# keystone user-role-add –user=admin –tenant=admin –role=admin

wKioL1LGIH3AeskBAAAdgsXYSyc493.jpg

我们看下数据库

wKiom1LGIJLgVhl4AACYywqqMJ0942.jpg

定义服务与API的端点

创建一个服务,服务ID是随机生成的

# keystone service-create –name=keystone –type=identity –description=”Keystone Identity Service”

wKioL1LGIJCRwpp4AABerWlX4Qk997.jpg

通过返回的服务ID指定身份证服务的API端点,你应该提供公共的API,内部API和管理API的URL。

煮酒品茶:注意填写你自己的ID号

# keystone endpoint-create   –service-id=0bde195742b54963b4478de9232b9465   –publicurl=http://controller:5000/v2.0   –internalurl=http://controller:5000/v2.0   –adminurl=http://controller:35357/v2.0

wKiom1LGIK6heN3-AACTqrselaA725.jpg

你安装了其它服务时,通过这个指定你的服务。

验证一下:

# unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT

# keystone –os-username=admin –os-password=openstack –os-auth-url=http://controller:35357/v2.0 token-get

wKioL1LGIK2D_PXlAADVdsmSKD0184.jpg

---------------------------------------

如果发现500错误

wKiom1LGIN6TXC6mAABAp2jR-fY096.jpg

查看日志:

wKioL1LGIN3QBTSGAAC7VeheQ9c609.jpg

更改配置文件:

wKiom1LGIPeBTyiuAAAkYb2Xj2k227.jpg

好了,需要重启下keystone

====================================

重启下:

# service keystone restart

我们设置环境变量,就不需要每次都填验证参数了。

# export OS_USERNAME=admin

# export OS_PASSWORD=openstack

# export OS_TENANT_NAME=admin

# export OS_AUTH_URL=http://controller:35357/v2.0

查看一下token,事实上他的ID也太长了吧。

wKioL1LGIPfSWN2iAACAz6pLgmw207.jpg

查了一下表:

wKiom1LGIRyCWBkcAAIcJJzLCrs537.jpg

更多可以看用户租户角色:

http://docs.openstack.org/havana/install-guide/install/apt/content/keystone-users.html

来源URL:http://cwtea.blog.51cto.com/4500217/1347938