分享

about云2-openstack部署环境整体介绍

 
pig2 2015-3-30 14:03:35 发表于 视频 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 198 144427
abcdefghijklmn 发表于 2017-10-9 09:23:33
您好:
        我最近在做Keystone的相关调研,有一个地方不太明白,想请教您。我想要让一个user 加入到 project中,但是在官网没有找到相关API,是我对这两个名称理解有误吗?后来,我找到这个API :Assign role to user on project. 这个API有将user加入到project的作用吗?  我尝试使用了上面这个API ,并使用下面这个API:List projects for user 去检查是否把用户加入了Project。

过程中使用的TOKEN 是这么获取的:
curl -i -X POST\
      -H "Content-Type: application/json" \
      -d '
        { "auth": {
            "identity": {
              "methods": ["password"],
              "password": {
                "user": {
                  "name": "admin",
                  "domain": { "id": "default" },
                  "password": "0407"
                }
              }
            },
             "scope": {
                    "project": {
                        "domain": {
                            "name": "Default"
                        },
                        "name": "admin"
                    }
                }
          }
        }' \
      "http://localhost:5000/v3/auth/tokens" ;

这个是用户:
    {
            "user": {
                "name": "xiangsun4",
                "links": {
                    "self": "http://localhost:5000/v3/users/95df8c5d80ff4f43bd239500048973b3"
                },
                "domain_id": "default",
                "enabled": true,
                "options": {},
                "default_project_id": "a44c2e1e6eb247e086e62d81a0573c7b",
                "id": "95df8c5d80ff4f43bd239500048973b3",
                "password_expires_at": null
            }
        }

这个是project:
{
            "project": {
                "is_domain": false,
                "description": "My first project",
                "links": {
                    "self": "http://localhost:5000/v3/projects/dae552c5d08f4657a2af34bcb39bafd3"
                },
                "enabled": true,
                "id": "dae552c5d08f4657a2af34bcb39bafd3",
                "parent_id": "default",
                "domain_id": "default",
                "name": "project4"
            }
        }


**这个是role,role中定义了domain_id
        {
            "role": {
                "domain_id": "default",
                "id": "aa07402e8bc041e89db3fc4c0fbe98a0",
                "links": {
                    "self": "http://localhost:5000/v3/roles/aa07402e8bc041e89db3fc4c0fbe98a0"
                },
                "name": "noDomainRole2"
            }
        }

然后我调用了下面的 API尝试把三者捆绑。
curl -i -X  PUT \
        -H "X-Auth-Token: $OS_TOKEN" \
        "http://localhost:5000/v3/projects/dae552c5d08f4657a2af34bcb39bafd3/users/95df8c5d80ff4f43bd239500048973b3/roles/aa07402e8bc041e89db3fc4c0fbe98a0"

接着我调用了下面的API, 查看这个user是否有project:
curl -i -X GET -H "X-Auth-Token: $OS_TOKEN" "http://localhost:5000/v3/users/95df8c5d80ff4f43bd239500048973b3/projects"

返回的结果是:
{"links": {"self": "http://localhost:5000/v3/users/95df8c5d80ff4f43bd239500048973b3/projects", "previous": null, "next": null}, "projects": []}

由返回看出projects 是空数组。


但我使用了另外一个role, 这个role和上面role的区别就在于  没有domain_id:
{
            "role": {
                "domain_id": null,
                "id": "1cf7d2e43c814dc8bd7d66e380f6b339",
                "links": {
                    "self": "http://localhost:5000/v3/roles/1cf7d2e43c814dc8bd7d66e380f6b339"
                },
                "name": "noDomainRole1"
            }
        }

然后再捆绑同一个project-user,再用同样的方式检查, 他的project数组是有值的

这个是为什么呢??


我进一步测试我修改了第一个role数据库中的domain_id,由default修改成了<<null>>,再调用相同的方式检查,他返回的project数组有值,我再由<<null>>修改成了default,返回的project数组又是空的。
这又是为什么呢?捆绑三者的域都是default,为什么会和default_id有关呢?

麻烦您了,请您帮我解答一下,万分感谢!!!

点评

你用的rest api。最好用shell看下或则操作。参考 openstack【Kilo】入门 【keystone篇】八:创建租户, 用户, 和角色【centos】 http://www.aboutyun.com/forum.php?mod=viewthread&tid=15216  发表于 2017-10-9 09:35
回复

使用道具 举报

abcdefghijklmn 发表于 2017-10-9 10:37:53
@desehawk  您好,我是180楼的用户,您建议我看的网址,我已经查看。并且都用shell命令试用过了。我现在最大的疑问是,如何将一个user加入到project里面,无论是shell命令或者rest api 都没有发现对应的功能。请问对应的API是什么呢?

点评

其实project就是租户。如创建admin租户,就是创建 project。如下面代码 openstack project create --description "Admin Project" admin  发表于 2017-10-9 10:53
回复

使用道具 举报

desehawk 发表于 2017-10-9 10:54:05
abcdefghijklmn 发表于 2017-10-9 10:37
@desehawk  您好,我是180楼的用户,您建议我看的网址,我已经查看。并且都用shell命令试用过了。我现在最 ...

其实project就是租户。如创建admin租户,就是创建 project。如下面代码
openstack project create --description "Admin Project" admin

回复

使用道具 举报

abcdefghijklmn 发表于 2017-10-9 11:09:07
desehawk 发表于 2017-10-9 10:54
其实project就是租户。如创建admin租户,就是创建 project。如下面代码
openstack project create --des ...

谢谢您的回复。您说的这个我是知道的,我想问的是User如何加入到project中?
回复

使用道具 举报

abcdefghijklmn 发表于 2017-10-9 13:03:14
desehawk 发表于 2017-10-9 10:54
其实project就是租户。如创建admin租户,就是创建 project。如下面代码
openstack project create --des ...

您好,再次打扰您了,请问,Domain,Project,User,Group 这个几个的逻辑关系是怎样的?您看我这么理解是否正确,如果我公司出了一个Openstack,然后其他来我们这个平台注册的公司就可以意味着是一个Domain,然后这个公司不同的子项目都是project,User就是项目的参与者,Group只是一个虚拟的划分,是为了角色的方便管理。那这样一个公司来我们平台创建了一个Domain,然后又创建了一个Project,然后这个公司其他注册的人如何归拢到这个Project里面去呢?只能使用“Assign role to user on domain”或者“Assign role to user on project” 这两个接口吗?如果只能使用这两个接口是不是意味着,一个user想要加入某一个Project,是不是必须带有一个role?
回复

使用道具 举报

desehawk 发表于 2017-10-9 13:42:54
本帖最后由 desehawk 于 2017-10-9 13:53 编辑
abcdefghijklmn 发表于 2017-10-9 13:03
您好,再次打扰您了,请问,Domain,Project,User,Group 这个几个的逻辑关系是怎样的?您看我这么理解 ...

下面内容仅供参考:
应该不是一个域,应该是为了使用不同地区的openstack。比如你们公司在多个地方分别为北京和上海。那么北京和上海可以划分为两个域。这两个域里面的project,用户是可以重复的。但是如果在一个域里面,是不可以重复的。也就是相当于我们程序里面所理解的namespace.其实也就是域是一个更大的概念。他们之间的关系,可以查看下图。对于其他的权限比如用户,role,组等,可以跟我们平常的权限管理应该是差不多的。

openstack 域名.jpg
对于使用者,比如一个公司注册,就给一个域,那这个公司拥有的资源和权限太多了。可以搞垮整个openstack环境。用户购买其实只是使用openstack实例而已。

回复

使用道具 举报

abcdefghijklmn 发表于 2017-10-9 14:52:33
desehawk 发表于 2017-10-9 13:42
下面内容仅供参考:
应该不是一个域,应该是为了使用不同地区的openstack。比如你们公司在多个地方分别 ...

您的意思是:domain是对于Openstack平台的搭建者说的?一个Openstack使用者或者使用的公司,分配所得的应该是Project吗?这个使用者或者使用的公司可以在这个Project中创建多个实例。
回复

使用道具 举报

abcdefghijklmn 发表于 2017-10-9 16:09:38
desehawk 发表于 2017-10-9 13:42
下面内容仅供参考:
应该不是一个域,应该是为了使用不同地区的openstack。比如你们公司在多个地方分别 ...

您的意思是:domain是对于Openstack平台的搭建者说的?一个Openstack使用者或者使用的公司,分配所得的应该是Project吗?这个使用者或者使用的公司可以在这个Project中创建多个实例。
回复

使用道具 举报

liechangtian 发表于 2017-11-17 15:16:06
视频密码密码
回复

使用道具 举报

abcdefghijklmn 发表于 2017-11-27 21:10:00
请问在做keystone的各位大神, keystone一直是openstack 的瓶颈。我想请问,单独部署keystone,机器的CPU是四核,系统是centos。请问keystone的查询用户详情的api在各方面优化之后qps能达到多少?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条