zoukankan      html  css  js  c++  java
  • openstack之keystone

    一、什么是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账户删除,重新创建即可

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

    遇到问题及解决办法:
    
    问题1
    aboutyun@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=570f150cb897e793e58f
    export 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-get
    WARNING: 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
  • 相关阅读:
    1、Java语言概述与开发环境——Java程序运行机制
    1、Java语言概述与开发环境——JDK的安装与环境变量的配置
    针孔成像模型
    anconda下安装opencv
    用Navicat Prenium12连接Oracle数据库(oracle11g版本)时报错ORA-28547:connection to server failed,probable Oracle Net admin error.解决办法
    JQueryEsayUI的datagrid分页
    java中String和int的互相转化
    js页面刷新
    oracle的正则表达式
    EL表达式中,param和requestScope的区别
  • 原文地址:https://www.cnblogs.com/chris-cp/p/4614581.html
Copyright © 2011-2022 走看看