Keystone 概述:Keystone 作为Openstack最早期的核心项目独立发展,由于Openstack 采取的设计理念也是所有一切皆API,因此设计服务API的调用脱离不了Keystone。Keystone 作为Openstack 中身份认证服务,在Openstack起到非常关键的作用,并且实现了Identity API 供Openstack 其他组件间进行身份验证Keystone 两种认证方式:UUID认证的原理当用户拿着有效的用户名和密码去keystone认证后,keystone就会返回给他一个token,这个token就是一个uuid。以后用户进行其他操作时,都必须出示这个token。例如当nova接到一个请求后,就会用这个token去向keystone进行请求验证,keystone通过比对token,以及检查token的有效期,来判断token是否合法,然后返回给nova这一个请求是否合法。PKI认证的原理在keystone初始化时,keystone生成了CA的公钥CA.pem和私钥CA.key。同时,产生了keystone自己的公钥keystone.pub和keystone.key,然后将keystone.pub进行了CA的签名,生成了keystone.pem。当用户拿着有效的用户名和密码去keystone认证后,keystone就将用户的基本信息通过keystone.key进行了加密,将这一密文作为token返回给用户。当用户发出一个请求,例如nova拿到token后,首先需要拿到keystone的证书keystone.pem(这一过程只需要进行一次),然后通过keystone.pem来进行解密,获得用户的信息,就可以知道该用户是否合法。对于用户的token还需要对token的合法时间,以及token还是否存在进行判断。所以当nova每一次拿到token后还会先向keystone询问一次token的失效列表,来查看token是否失效。当然这一过程对于keystone的负载还是相当轻的,所以PKI还是有效的解决了keystone成为性能瓶颈的问题。

安装相应的软件包junluobj@junluobj:~$ sudo apt-get install -y git python-dev sqlite3 libxml2-dev libxslt1-dev libsasl2-dev libsqlite3-dev libssl-dev libldap2-dev

junluobj@junluobj:~$git clone https://github.com/openstack/keystone.git

junluobj@junluobj:~$git clone https://github.com/openstack/python-keystoneclient.git keystone/client

安装mysql数据库junluobj@junluobj:~$sudo apt-get install mysql-server mysql-client python-mysqldb

junluobj@junluobj:~$sudo mysql -u root -p

mysql>create database keystone;

mysql>grant all on keystone.* to 'keystone'@'%' identified by ‘redhat';

安装keystonejunluobj@junluobj:~$python setup.py install

在此过程可能会提示缺少setuptools模块

junluobj@junluobj:~$sudo apt-get install python-setuptools

junluobj@junluobj:~$python setup.py install

junluobj@junluobj:~$sudo pip install -e .

修改配置文件:junluobj@junluobj:~$sudo mkdir -p /etc/keystone

junluobj@junluobj:~$sudo cp etc/* /etc/keystone/

junluobj@junluobj:~$sudo mv /etc/keystone/keystone.conf.sample /etc/keystone/keystone.conf

junluobj@junluobj:~$sudo vim /etc/keystone/keystone.conf

#admin token=ADMIN

admin token=ADMIN

#connection=

connection=mysql://root:redhat@localhost/keystone?charset=utf8

admin_endpoint

public_endpoilt

配置日志存放路径junluobj@junluobj:~$sudo mkdir -p /var/log/keystone

junluobj@junluobj:~$touch /var/log/keystone/keystone.log

junluobj@junluobj:~$sudo touch /var/log/keystone/keystone.log

数据库同步,即创建keystone相关的数据库表junluobj@junluobj:~$keystone-manage db_sync

junluobj@junluobj:~$echo $?

创建kestone账户及SSL证书junluobj@junluobj:~$sudo useradd keystone

junluobj@junluobj:~$sudo chown -R keystone.keystone /etc/keystone/

junluobj@junluobj:~$sudo keystone-manage pki_setup --keystone-user=keystone --keystone-group=keyston

启动keystone服务junluobj@junluobj:~$echo $ keystone-all -d &

junluobj@junluobj:~$echo $ps aux |grep keystone

junluobj 14911  0.0  4.0 123772 41368 pts/1    S    19:15   0:00 /usr/bin/python /usr/local/bin/keystone-all -d

junluobj 14924  0.0  0.0  13588   936 pts/1    S+   19:29   0:00 grep --color=auto keystone

现在已经完成Keystone的安装,但现在还无法使用,因为没有租户、用户、密码、服务等。

配置Keytone

在这里先设置两个环境变量junluobj@junluobj:~$ export OS_SERVICE_TOKEN=ADMIN

junluobj@junluobj:~$ export SERVICE_ENDPOINT=http://192.168.0.103:35357/v2.0

查看用户列表:junluobj@junluobj:~$ keystone user-list

创建租户junluobj@junluobj:~$ keystone tenant-create --name adminTenant --description "Admin Tenant" --enabled true

创建用户

需要记录 tenant id,在创建用户时需要关联,即将用户关联到哪个租户。junluobj@junluobj:~$keystone user-create --tenant_id bf0df88bd9694e11951a896bde015cb0 --name admin --pass redhat --enabled true

junluobj@junluobj:~$keystone user-create --tenant_id bf0df88bd9694e11951a896bde015cb0 --name user1 --pass redhat --enabled true

通过keystone命令创建一个新的role,并将此role赋给第一步中的一个admin用户

创建一个角色名称为adminRole。请记住该命令生成的Role idjunluobj@junluobj:~$ keystone role-create --name adminRole

截止到目前,已经分别创建 Tenant、User、Role,分别是:

Tenant ID: bf0df88bd9694e11951a896bde015cb0User ID: 0a46563787a7470ebca6e0faafb41174(admin)

Role ID: 87a6bda856014385b9f6164dc99f792djunluobj@junluobj:~$ keystone user-role-add --user-id 0a46563787a7470ebca6e0faafb41174 \

> --tenant-id bf0df88bd9694e11951a896bde015cb0 \

> --role-id 87a6bda856014385b9f6164dc99f792d

通过以下两个命令简单测试:junluobj@junluobj:~$ keystone user-role-list --user admin --tenant adminTenant

junluobj@junluobj:~$ keystone user-list

今儿先写到这儿了,待后续...

pip 安装keystone_基于Ubuntu12.04下的Keystone源码安装相关推荐

  1. 基于Ubuntu12.04下的Keystone源码安装

    Keystone 概述: Keystone 作为Openstack最早期的核心项目独立发展,由于Openstack 采取的设计理念也是所有一切皆API,因此设计服务API的调用脱离不了Keystone ...

  2. mysql 5.6.23 源码包安装报错_大环境下MySQL5.6源码安装实战一步步教你 CentOS6.5_64bit下编译安装...

    一.关闭防火墙 chkconfig iptables off service iptables stop 二.检查操作系统上是否安装了MySQL [[email protected] backup]# ...

  3. ubuntu10.04下audacious2.4源码编译过程(解决2.3cue的bug)

    本文最新版本:ubuntu10.04下audacious2.5源码编译过程 编译最新的2.4是为了解决ubuntu源中安装的audacious播放cue时有bug,会一直重复第一首歌 听ape的时候很 ...

  4. win10下llvm的源码安装编译

    win10下llvm的源码安装编译 1.下载llvm源码 2.下载安装cmake 你好!如需转载请标明本文出处. 1.下载llvm源码 下载llvm源码:https://github.com/llvm ...

  5. linux下的geany源码安装,linux 下php开发工具geany-0.16的安装。

    说明 一款linux下的编辑器,支持很多开发语言. 下载 下载地址:http://www.geany.org/ 安装 源码安装 #./configure #make #make install 我在m ...

  6. android .9编译,在Ubuntu 9.04下编译Android源码

    一直都是刷官方的版本,准备自己编译一下刷机. 首先是下载,Android的源码是托管在Linux Kernel的源码站点,所以版本工具是git.关于git的使用和安装请见我的另一篇文章<在Ubu ...

  7. LinuxMint下的Orionode源码安装

    1. Orionode介绍 Eclipse-orion是Eclipse项目下面的一个子项目,orion是一个在在线版的代码编辑环境.其介绍参考http://wiki.eclipse.org/Orion ...

  8. mininet安装过程(ubantu、git、mininet源码安装)以及POX安装

    小白一只,由于毕设题目跟SDN有关,就开始踢软件定义网络的大门,当然第一步就是熟悉网络工具,从mininet开始.对于从没接触过mininet.Linux的人来说,安装过程还是挺艰难的,我在安装过程中 ...

  9. l源码安装mysql升级_[Linux]javaEE篇:源码安装mysql

    javaEE :源码安装mysql 安装环境 系统平台:CentOS-7-x86_64 数据库版本:mysql-5.6.14 源码安装mysql步骤: 一.卸载mysql 安装mysql之前,先确保l ...

最新文章

  1. iphone popViewControllerAnimated后刷新原先的表格
  2. 哲学家就餐 java_java模拟哲学家就餐问题
  3. Python 基础语法(二)
  4. 写工作总结的要领是什么?
  5. 人工智能 | 自动驾驶与人工智能前沿研究报告(应用篇)
  6. linux-文件目录类
  7. weex监听android返回键,weex使用手册
  8. 计算机拆装与网络配置技能,计算机硬件及网络计算机原理与拆装.ppt
  9. kettle-查询控件
  10. python复制mysql表_MySQL中表的复制以及大型数据表的备份教程
  11. 使用免费ssl证书在iis6 https的配置方法!
  12. (Python语法篇)1.Python简介
  13. 基于docker的Mongodb部署文档 文件映射方式
  14. Win10 使用 Virtual Box 安装 Ubuntu 虚拟机
  15. 6-1 定义一个矩形类(C++构造函数) (10 分)
  16. python 语料_用python将语料转化为可计算的形式
  17. volatile的区别
  18. DNS安全浅议、域名A记录(ANAME),MX记录,CNAME记录
  19. 如何在App Store用流量下载超过150M的软件?
  20. 51nod_1000

热门文章

  1. 记一次3dmax入门
  2. 【SSL】1758连通图
  3. 操作系统是如何工作的--------Linux 实验二
  4. 《时代三部曲》感悟三
  5. 20190121——不羡神仙 Java抽象工厂模式
  6. Week8 :差分约束,拓扑排序和kahn,强连通图和kosaraju
  7. B. TMT Document
  8. [Codeforces Round #373 DIV1E (CF718E)] Matvey's Birthday
  9. dockers安装redis
  10. 腾讯官方披露,TDSQL十年自主可控之路(附PDF)