(原创)OpenStack服务如何使用Keystone(一)---Keystone端的操作
(一)Keystone端的操作
(二)如何在OpenStack服务上部署Keystone中间件
OpenStack项目如果要使用Keystone作为统一的身份与权限管理系统, 需要做一定的设置工作, 我们将这些设置划分为在Keystone端进行的操作和在其他OpenStack服务端进行的操作, 本文介绍在Keystone端如何为其他服务建立对应的"服务用户"和维护整个系统的服务目录.
OenStack中用户使用身份凭证登录系统, 获得Keystone签发的令牌, 其后在整个OpenStack系统中使用该令牌访问其他的服务(如Nova等)直至令牌失效或被撤销. 令牌在OpenStack系统内提供了单点登录的支持, 简化了系统对用户的认证, 成为用户身份和权限管理的重要对象.
用户在使用已经获得的令牌请求OpenStack的其他服务时, 这些服务必须验证令牌的有效性--即这个令牌确实是Keystone已经签发的,且没有过期和被撤销. 这个验证工作由项目名称为"keystonemiddleware"的Keystone中间件完成. Keystone中间件部署在OpenStack其他服务上, 调用项目(或库)"python-keystoneclient"提供的接口, 验证用户令牌的有效性. Keystone中间件进行的验证工作需要访问Keystone的身份API, 这个操作需要一定的权限才能完成. 因此需要在Keystone端先为Keystone中间件创建用户, 再为这个用户指派具有相应权限的角色.由于部署和配置Keystone中间件的工作在其他OpenStack服务端完成, 因此将创建用户和授予角色等操作针对服务进行, Keystone中间件直接使用自己部署在的服务具有的账户信息即可. (当然, 也可以直接绕过身份认证, 将Keystone中间件的令牌设置成引导Keystone时设置的"admin_token", 这样Keystone中间件默认具有最高权限).
Keystone端的工作主要包括以下两个方面:
1. 创建"服务用户"并指派角色.
2. 维护整个OpenStack系统的服务目录.
下文就围绕这两方面工作详细展开.
一. 创建"服务用户"并指派角色
1. 创建"服务项目"
从上文可以看出, OpenStack服务或部署在其上的Keystone中间件实质上也是Keystone的用户. 通常我们为所有的OpenStack服务创建一个统一的项目, 如"service". 这里使用openstackclient完成命令行操作, 所有的操作都是基于第三版的身份API完成.
首先与系统建立一个会话,
$ openstack --os-token admin_token --os-url keystone_url --os-identity-api-version #Press Enter
一旦认证成功, 系统显示如下的提示符, 表示进入到openstackclient提供的脚本界面.
(openstack) YOUR_COMMAND_HERE
接着创建一个包含所有将要部署的OpenStack服务的"服务项目", 这里将其命名为"service".
(openstack) project create service
为具体类型的OpenStack服务(这里以Nova为例)创建属于他们的用户(当然也可以多个服务使用一个用户名).
(openstack) user create --password PassWord --project service nova
在已经配置好Keystone, 创建和定义了具体的管理员角色后, 为刚刚新建的"服务用户"授予项目内的管理员角色, 确保其能够调用验证令牌的身份API. 这里以授予系统默认的"admin"角色为例.
(openstack) role add admin --project service --user nova
这样用户"nova"就具有了在项目"service"上的"admin"角色.
二. 维护整个OpenStack系统的服务目录
Keystone在OpenStack系统中提供的一项重要支持就是维护着整个系统中所有服务的目录. 包括服务的类型, 名称, 具体的端点URL等. 其他服务如Dashboard非常依赖这些信息. Keystone自带两种服务目录存储驱动, 既可以将服务目录存储在文件中, 也可以存储在SQL后端中. 当然, 前端的用户接口都是一样的.
在向OpenStack系统中添加服务时, 应将其注册到Keystone的服务目录下, 这样其他服务才能通过服务目录找到它.
(openstack) service create nova --type compute \
--description "Nova Compute Service"
(openstack) service create glance --type image \
--description "Glance Image Service"
(openstack) service create keystone --type identity \
--description "Keystone Identity Service"
(openstack) service create swift --type object-store \
--description "Swift Service"
OpenStack系统中服务只是一个抽象的概念, 具体的功能是通过访问服务对应的端点(URL)完成的, 因此必须在成功部署某个服务端点后其添加到系统的服务目录.
(openstack) endpoint create keystone public http://201.111.129.48:5000/
上面的指令将一个端点添加到了服务“keystone”的公共界面. 端点可以属于特定的地理域, 具体操作可以查阅这里.
这里就完成了部署OpenStack服务时在Keystone端进行的操作. 前文已经说过, 其他服务与Keystone的交互通常是由Keystone中间件完成的, 下一篇随笔将介绍如何在OpenStack服务上部署Keystone中间件.
(原创)OpenStack服务如何使用Keystone(一)---Keystone端的操作的更多相关文章
- (原创)OpenStack服务如何使用Keystone(三)---详细配置Keystone中间件
(一)Keystone端的操作 (二)如何在OpenStack服务上部署Keystone中间件 (三)详细配置keystonemiddleware 前文我们介绍了如何部署Keystone中间件以及中间 ...
- (原创)OpenStack服务如何使用Keystone (二)---部署和配置Keystone中间件
(一)Keystone端的操作 (二)如何在OpenStack服务上部署Keystone中间件 (三)详细配置keystonemiddleware 部署OpenStack时一般先安装Keystone服 ...
- openstack安装记录(二)keystone安装
先决条件 在你配置 OpenStack 身份认证服务前,你必须创建一个数据库和管理员令牌. 完成下面的步骤以创建数据库: 用数据库连接客户端以 root 用户连接到数据库服务器: $ mysql -u ...
- openstack项目【day23】:keystone组件基础
本节内容 一 什么是keystone 二 为何要有keystone 三 keystone的功能 四 keystone概念详解 五 keystone内包含的组件 六 keystone与openstack ...
- openstack项目【day24】:keystone部署及操作
阅读目录 一 前言 二 版本信息 三 部署keystone 四 keystone操作 五 验证 六 创建脚本 七 keystone使用套路总结 一 前言 任何软件的部署都是没有技术含量的,任何就部署讲 ...
- [ Openstack ] OpenStack-Mitaka 高可用之 认证服务(keystone)
目录 Openstack-Mitaka 高可用之 概述 Openstack-Mitaka 高可用之 环境初始化 Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...
- OpenStack服务默认端口号
在某些部署中,例如已设置限制性防火墙的部署,您可能需要手动配置防火墙以允许OpenStack服务流量. 要手动配置防火墙,您必须允许通过每个OpenStack服务使用的端口的流量.下表列出了每个Ope ...
- OpenStack 服务状态检查
openstack服务不正常 使用命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [root@node-5 TimaIaas]# nova- ...
- 为openstack服务使能debug模式
Most OpenStack services use the same configuration options to enable the debug logging that is also ...
随机推荐
- 【硅谷问道】Chris Lattner 访谈录(下)
[硅谷问道]Chris Lattner 访谈录(下) Chris Lattner 访谈录(下) 话题 Swift 在 Server 和操作系统方面有着怎样的雄心抱负? Swift 与 Objectiv ...
- Python Redis pipeline操作和Redis乐观锁保持数据一致性
Redis是建立在TCP协议基础上的CS架构,客户端client对redis server采取请求响应的方式交互. redis 乐观锁:也可理解为版本号比较机制,主要是说在读取数据逇时候同时读取其版本 ...
- DIOCP开源项目-定义自己要发送的数据结构(MyObject)
印象中网络程序都是sendBuffer和recvBuffer来发送数据和接收数据,本次Demo演示如何定义定义一个自己的对象,然后我们按照OO的思想直接进行对象的发送和接收,先上个流程图. 下面是客户 ...
- CentOS 7修改管理员密码
之前安装CentOS 7的时候随便输入了一个密码,现在使用需要root权限,只能重置密码了.下面是处理方法:(进入单用户模式修改root密码为例) 在启动菜单中,按e编辑所选启动项 一页内容,感觉挺陌 ...
- 11g等待事件之library cache: mutex X
11g等待事件之library cache: mutex X 作者: dbafree 日期: 2012 年 07 月 01 日发表评论 (0)查看评论 library cache: mutex X ...
- 【Ubuntu】任务管理器loadruner
linux1 准备工作 可以通过两种方法验证服务器上是否配置了rstatd守护程序: ①使用rup命令,它用于报告计算机的各种统计信息,其中就包括rstatd的配置信息.使用命令rup 10 ...
- maven deploy distributionManagement
分发构件至远程仓库 mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库.本地Maven仓库的构件只能供当前用户使用, ...
- 朴素贝叶斯分类器的应用 Naive Bayes classifier
一.病人分类的例子 让我从一个例子开始讲起,你会看到贝叶斯分类器很好懂,一点都不难. 某个医院早上收了六个门诊病人,如下表. 症状 职业 疾病 打喷嚏 护士 感冒 打喷嚏 农夫 过敏 头痛 建筑工 ...
- [转]layDate显示默认时间
原文地址:https://blog.csdn.net/u011870547/article/details/72540074 jsp: <div class="form-group&q ...
- 【转】使用scipy进行层次聚类和k-means聚类
scipy cluster库简介 scipy.cluster是scipy下的一个做聚类的package, 共包含了两类聚类方法: 1. 矢量量化(scipy.cluster.vq):支持vector ...