创建服务实体和api端点
[root@controller ~]# export OS_URL=http://controller:35357/v3 #配置端点URL
[root@controller ~]# export OS_IDENTITY_API_VERSION=3 #配置认证 API 版本
[root@controller ~]# export OS_TOKEN=db771afcb68c09caee6d #配置认证令牌
[root@controller ~]# env|grep ^OS #查看设置是否生效
OS_IDENTITY_API_VERSION=3
OS_TOKEN=db771afcb68c09caee6d
OS_URL=http://controller:35357/v3
在Openstack环境中,认证服务管理服务目录。服务使用这个目录来决定您的环境中可用的服务。
[root@controller ~]# openstack service create --name keystone --description "OpenStack Identity" identity #为身份认证服务创建服务实体
------------- ----------------------------------
| Field | Value |
------------- ----------------------------------
| description | OpenStack Identity |
| enabled | True |
| id | 351c5f4d5174430eacb38b16a6403d40 |
| name | keystone |
| type | identity |
------------- ----------------------------------
身份认证服务管理了一个与环境相关的 API 端点的目录。服务使用这个目录来决定如何与您环境中的其他服务进行通信。
OpenStack使用三个API端点变种代表每种服务:admin,internal和public。默认情况下,管理API端点允许修改用户和租户而公共和内部APIs不允许这些操作。在生产环境中,处于安全原因,变种为了服务不同类型的用户可能驻留在单独的网络上。对实例而言,公共API网络为了让顾客管理他们自己的云在互联网上是可见的。管理API网络在管理云基础设施的组织中操作也是有所限制的。内部API网络可能会被限制在包含OpenStack服务的主机上。此外,OpenStack支持可伸缩性的多区域。[root@controller ~]# openstack endpoint create --region RegionOne identity public http://controller:5000/v2.0 #创建认证服务的 API 端点
-------------- ----------------------------------
| Field | Value |
-------------- ----------------------------------
| enabled | True |
| id | 1ee55eac378f4d179bacb4ea3d1850d1 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 351c5f4d5174430eacb38b16a6403d40 |
| service_name | keystone |
| service_type | identity |
| url | http://controller:5000/v2.0 |
-------------- ----------------------------------
[root@controller ~]# openstack endpoint create --region RegionOne identity internal http://controller:5000/v2.0
-------------- ----------------------------------
| Field | Value |
-------------- ----------------------------------
| enabled | True |
| id | 00da46788e874f529f67046226c7b0c9 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 351c5f4d5174430eacb38b16a6403d40 |
| service_name | keystone |
| service_type | identity |
| url | http://controller:5000/v2.0 |
-------------- ----------------------------------
[root@controller ~]# openstack endpoint create --region RegionOne identity admin http://controller:35357/v2.0
-------------- ----------------------------------
| Field | Value |
-------------- ----------------------------------
| enabled | True |
| id | fab8917d632a4a8c8ccb4290cbd382c6 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 351c5f4d5174430eacb38b16a6403d40 |
| service_name | keystone |
| service_type | identity |
| url | http://controller:35357/v2.0 |
-------------- ----------------------------------
注:每个添加到OpenStack环境中的服务要求一个或多个服务实体和三个认证服务中的API 端点变种。
为进行管理操作,创建管理的项目、用户和角色
[root@controller ~]# openstack project create --domain default --description "Admin Project" admin #创建 admin 项目
------------- ----------------------------------
| Field | Value |
------------- ----------------------------------
| description | Admin Project |
| domain_id | default |
| enabled | True |
| id | 839cdfc946e1491c8004e3b732d17f9a |
| is_domain | False |
| name | admin |
| parent_id | None |
------------- ----------------------------------
[root@controller ~]# openstack user create --domain default --password-prompt admin #创建 admin 用户
User Password: #密码设置为123456
Repeat User Password:
----------- ----------------------------------
| Field | Value |
----------- ----------------------------------
| domain_id | default |
| enabled | True |
| id | d4f0c9b24be84306960e29a7961d22a3 |
| name | admin |
----------- ----------------------------------
[root@controller ~]# openstack role create admin #创建 admin 角色
------- ----------------------------------
| Field | Value |
------- ----------------------------------
| id | ebab14b851254fe69abb49132f3b76a2 |
| name | admin |
------- ----------------------------------
[root@controller ~]# openstack role add --project admin --user admin admin #添加 admin 角色到 admin 项目和用户上,这个命令执行后没有输出
每个服务包含独有用户的service 项目。创建``service``项目
[root@controller ~]# openstack project create --domain default --description "Service Project" service
------------- ----------------------------------
| Field | Value |
------------- ----------------------------------
| description | Service Project |
| domain_id | default |
| enabled | True |
| id | cfbdca3af1a043d8ace0f47724312e60 |
| is_domain | False |
| name | service |
| parent_id | None |
------------- ----------------------------------
常规任务应该使用无特权的项目和用户,作为示例,创建一个demo项目和用户
[root@controller ~]# openstack project create --domain default --description "Demo Project" demo #创建demo 项目,当为这个项目创建额外用户时,不要重复这一步。
------------- ----------------------------------
| Field | Value |
------------- ----------------------------------
| description | Demo Project |
| domain_id | default |
| enabled | True |
| id | 2003811a2ad548e7b686f06a55fe9ce9 |
| is_domain | False |
| name | demo |
| parent_id | None |
------------- ----------------------------------
[root@controller ~]# openstack user create --domain default --password-prompt demo #创建 demo 用户
User Password:
Repeat User Password:
----------- ----------------------------------
| Field | Value |
----------- ----------------------------------
| domain_id | default |
| enabled | True |
| id | d4ffbeefe72d412187047a79e3a51d00 |
| name | demo |
----------- ----------------------------------
[root@controller ~]# openstack role create user #创建 user 角色
------- ----------------------------------
| Field | Value |
------- ----------------------------------
| id | a1b9a999563544daa808e5ee1e0edaf0 |
| name | user |
------- ----------------------------------
[root@controller ~]# openstack role add --project demo --user demo user #添加 user 角色到 demo 项目和用户 ,你可以重复此过程来创建额外的项目和用户。