潇湘夜雨移动版

主页 > 系统 > 云计算与云原生 >

openstack-havana云平台实验(2)

[root@node1 ~]#  keystone tenant-create --name admin --description "Admin Tenant" 
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |           Admin Tenant           |
|   enabled   |               True               |
|      id     | a8fbb58fe9c24de38d3290573ecf565a |
|     name    |              admin               |
+-------------+----------------------------------+
创建admin角色。
[root@node1 ~]# keystone role-create --name admin
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|    id    | 6250d1ec87954a818c6d911ae0230665 |
|   name   |              admin               |
+----------+----------------------------------+
 
创建admin用户,并将其直接关联至前面创建的Admin Tenant。事实上,这里的关联操作也可以不执行,而在为admin赋予角色时进行,如后面所示。
[root@node1 ~]#keystone user-create --name admin --tenant-id a8fbb58fe9c24de38d3290573ecf565a --pass admin --email admin@test.com
 
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |          admin@test.com          |
| enabled  |               True               |
|    id    | f3468a352821476ea3bf6bb8f327f560 |
|   name   |              admin               |
| tenantId | a8fbb58fe9c24de38d3290573ecf565a |
+----------+----------------------------------+
将admin角色赋予admin用户,正常执行时,此命令没有信息输出。
keystone user-role-add --user-id f3468a352821476ea3bf6bb8f327f560 --role-id 6250d1ec87954a818c6d911ae0230665 --tenant-id a8fbb58fe9c24de38d3290573ecf565a
 
2.2 为admin用户启用基于credential的认证机制
定义如下环境变量,启用基于credential的用户认证。为了使用方便,下面的环境变量导出命令可以保存至
一个配置文件中,如~/.keystonerc_admin。
 
[root@node1 ~(keystone_admin)]# vim .keystonerc_admin 
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL=http://172.18.109.235:35357/v2.0/
export PS1='[\u@\h \W(keystone_admin)]\$ '
 
注销基于token认证时创建的环境变量从而禁止admin用户使用token认证。
# unset SERVICE_TOKEN
# unset SERVICE_ENDPOINT
 
[root@node1 ~]# source .keystonerc_admin #启用环境变量
[root@node1 ~(keystone_admin)]#  keystone user-list
+----------------------------------+-------+---------+----------------+
|                id                |  name | enabled |     email      |
+----------------------------------+-------+---------+----------------+
| f3468a352821476ea3bf6bb8f327f560 | admin |   True  | admin@test.com |
+----------------------------------+-------+---------+----------------+
常见错误:
[root@node2 ~(keystone_admin)]# keystone user-list
Authorization Failed: Unable to sign token. (HTTP 500)
vim /etc/keystone/keystone.conf
解决方法:
设置keystone.conf配置文件中token格式
token_format = UUID 
[root@node2 ~(keystone_admin)]# service openstack-keystone restart
停止 keystone:                                            [确定]
正在启动 keystone:                                        [确定]
[root@node2 ~(keystone_admin)]# keystone user-list
+----------------------------------+-------+---------+----------------+
|                id                |  name | enabled |     email      |
+----------------------------------+-------+---------+----------------+
| e04013d5e8f14f44b5e6837aed7b2816 | admin |   True  | admin@test.com |
+----------------------------------+-------+---------+----------------+
 
2.3 服务tenant
 
上面创建的admin用户用于Keystone的管理工作,而OpenStack的各服务(如swift等)通常需要定义
在一个服务tenant中,而且各服务也都需要一个具有管理权限的用户。
创建tenant的服务service
[root@node1 ~(keystone_admin)]# keystone tenant-create --name service --description "Service Tenant"
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |          Service Tenant          |
|   enabled   |               True               |
|      id     | 5eaea442e6f44ccda09a5ea7847dea36 |
|     name    |             service              |
+-------------+----------------------------------+
 
为服务Tenant创建用户nova,以用于后文中的nova服务,密码同用户名。
keystone user-create --tenant-id 5eaea442e6f44ccda09a5ea7847dea36 --name nova --pass nova --email nova@test.com
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |          nova@test.com           |
| enabled  |               True               |
|    id    | 6705b2a91be448368cee39d9a8dd3146 |
|   name   |               nova               |
| tenantId | 5eaea442e6f44ccda09a5ea7847dea36 |
+----------+----------------------------------+
而后,把admin角色赋予nova用户,正常执行时,此命令没有信息输出。
keystone user-role-add --tenant-id 5eaea442e6f44ccda09a5ea7847dea36 --user-id 6705b2a91be448368cee39d9a8dd3146 --role-id 6250d1ec87954a818c6d911ae0230665
 
 
为服务Tenant创建用户swift,密码同用户名。后面配置swift服务时将用到此用户。
 
keystone user-create --tenant-id 5eaea442e6f44ccda09a5ea7847dea36 --name swift --pass swift --email swift@test.com
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |          swift@test.com          |
| enabled  |               True               |
|    id    | b5063b4b8c4747fd9b9cb9ccd03d44f1 |
|   name   |              swift               |
| tenantId | 5eaea442e6f44ccda09a5ea7847dea36 |
+----------+----------------------------------+
把admin角色赋予swift用户,正常执行时,此命令没有信息输出。 (责任编辑:liangzh)