openstack-havana云平台实验(2)
时间:2016-10-10 09:32 来源:潇湘夜雨 作者:华嵩阳 点击:次
[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) |