博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
openstack之keystone
阅读量:7089 次
发布时间:2019-06-28

本文共 2014 字,大约阅读时间需要 6 分钟。

一、什么是keystone

  用于为openstack家族中的其它组件成员提供统一的认证服务,包括身份认证、令牌发放和校验、服务列表、用户权限定义等;

  基本概念:

    用户User:用于身份认证、一个用户可以关联到多个租户,即一个用户可以属于租户A同时属于租户B;

    租户Tenant:相当于用户组的概念。一个租户可以容纳多个用户;

    角色Role:关联到“用户-租户对”的元数据。可以关联到多个用户;

    令牌Token:用于验证用户或者“用户-租户对”的请求是否合法;

    服务Service:服务类型和名称。例如网络服务、镜像服务;

    端点Endpoint:服务的实例(url入口),服务的url;

  keystone在openstack中的结构图:

  

 

    openstack用户-角色-服务交互图:

           

  keystone基本结构:

      

  用户创建虚拟机流程图:

 

 

    

    用户创建虚拟机实例:

    1、用户Alice通过自己的户名和密码向keystone申请token,keystone认证用户名和密码后,返回临时token

           2、Alice通过临时token发送keystone查询他所拥有的租户,keystone验证临时token成功后,返回Alice的所有租户列表

           3、Alice选择一个租户,通过用户名和密码申请正式token,keystone认证用户名、密码、tenant后,返回正式token

          4、Alice通过正式token发送创建server的请求,keystone验证正式token(包括该token是否有效,是否有权限创建虚拟机等)成功后,然后再把请求下发到nova,最终创建虚拟机;

keystone安装:

keystone包安装;
keystone配置;
keystone数据库初始化;
keystone服务启动;

keystone:包含一个命令行接口,可以与keystone API交互以管理

keystone和相关服务;
keystone-all:用于验证的、面向管理员和用户的API;
keystone-manage:管理keystone的命令行接口,用于管理和keystone相
连接的数据库

创建租户;

创建用户;
创建角色;
绑定角色;将角色分配到某个用户;
创建服务:
keystone测试工具:restclient

 Keystone常见错误

401 #验证失败,keystone相关用户账户密码设置错误,时间不同步,或者输入的项目名称不对

403 #可能未初始化OS_token变量,需要使用source命令使其生效,也可能是配置的配置文件未生效,需要重启相关服务

409 #keystone创建用户,用户已存在

500 #服务器内部错误,服务配置有问题,看日志,检查配置

503 #keystone相关账户密码设置有问题,请将相关的glance账户删除,重新创建即可

服务故障    #相关服务没有起来

遇到问题及解决办法:问题1aboutyun@controller:~$ keystone tenant-create --name admin --description "admin Tenant"An unexpected error prevented the server from fulfilling your request. (HTTP 500)原因1:环境变量错误记得重启后,执行下面命令export OS_SERVICE_TOKEN=570f150cb897e793e58fexport OS_SERVICE_ENDPOINT=http://controller:35357/v2.0问题2:admin租户获取token出现错误,请问怎样解决?root@ubuntu:~# keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS \>   --os-auth-url http://controller:35357/v2.0 token-getWARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).'NoneType' object has no attribute 'has_service_catalog'解决办法: unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT

 

转载于:https://www.cnblogs.com/chris-cp/p/4614581.html

你可能感兴趣的文章
[JS2] JS是弱类型
查看>>
企业搜索引擎开发之连接器connector(二十四)
查看>>
数学图形(1.9)悬链线
查看>>
有上下界的网络流问题
查看>>
AspectJ获取方法注解的信息
查看>>
HDU 4902 Nice boat(线段树)
查看>>
Codeforces Round #114 (Div. 1) E. Wizards and Bets 高斯消元
查看>>
怎样调通微信支付及微信发货通知接口(Js API)
查看>>
Android 属性动画(Property Animation) 全然解析 (下)
查看>>
推断汉字正則表達式更严谨方法!
查看>>
如何避免误删CleanMyMac语言文件
查看>>
Linux下免安装mysql
查看>>
快钱报错:javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name解决
查看>>
Hadoop集群WordCount运行详解(转)
查看>>
[转]SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
查看>>
一次性搞清楚equals和hashCode
查看>>
Android Studio IDE的 LogCat如何过滤指定应用的调试信息
查看>>
23个常用正则表达式(数值和字符串)
查看>>
struts2中struts.xml配置文件详解
查看>>
Javascript中的with用法
查看>>