在 Openstack 中使用 HTTPD 运行 Keystone
徐 刚
2016 年 3 月 22 日发布
Openstack 简介
Openstack 是目前世界上增长最快速的开源软件之一,提供了基础设施即服务 (IaaS) 解决方案,是除亚马逊 AWS 和微软的 Azure 之外的最重要的云计算产品。来自于一百多个国家的数万开发技术人员和云计算专家工作在 Openstack 社区,为包括公有云和私有云在内的云计算平台提供各种解决方案,制定相关的技术标准。
Openstack 由多个核心开源项目组成,主要有以下:
计算服务(Compute)- Nova
对象存储(Object Storage)- Swift
镜像服务(Image)- Glance
身份服务(Identity)- Keystone
网络服务(Network)- Neutron
随着 Openstack 不断发展,还有很多新的项目被加入,这里就不一一介绍了。(具体见参考资源一)。
Keystone 简介
身份服务(Identity)- Keystone 是 Openstack 核心开源项目中的最重要的组件之一,自从 Openstack
Essex 发布的时候就被采用(具体见参考资源二)。
它是为 Openstack 的其他核心组件,诸如计算、存储等提供用户认证、令牌、策略和目录服务的,它本身并不提供这些功能,只是一个抽象层,类似于封装器,用来集成具体的插件,例如,PAM(Pluggable
Authentication Module),LDAP 或者 OAuth。通过这些插件,它能够实现多种形式的身份验证。
使用 Apache
HTTPD 运行 Keystone
Keystone 缺省是使用内置的 Eventlet 服务器来运行的,Eventlet 本身非常简单易用,但是它已经缺失了很多早已经实现的、基于互联网的网络服务器的安全功能,所以从安全性考虑,随着 Openstack 最新的版本 Kilo 发布以后,不建议使用 Eventlet 来启动 Keystone,推荐使用 Apache
HTTPD。而对于使用 EventLet 的支持将从 Openstack 的 Mitaka 版本中彻底移除。
那如何使用 HTTPD 来运行 Keystone,过程如下:安装 Keystone 软件
配置 Keystone
创建 Keystone 数据库
配置并同步数据库
安装 HTTPD 相关的软件
配置 Apache HTTPD
启动并验证 HTTPD 服务
后续配置和验证
注意:以下所有操作均在 Red Hat Enterprise Linux 7 上运行。
步骤一,安装 Keystone 软件
注意:必须要有 RHEL 的 yum repo 的支持。(具体见参考资源五)yum install openstack-keystone python-openstackclient
步骤二,配置 Keystone
Keystone 的配置文件一般是/etc/keystone/keystone.conf
1.首先需要先产生一个随机数,用作初始配置时的管理员令牌# openssl rand -hex 10
5eb4014ecffaa4f053b5
2.编辑/etc/keystone/keystone.conf,在 DEFAULT 段落定义刚刚得到的管理员令牌[DEFAULT]
…
admin_token =
3.在 token 段落定义令牌供应和后台驱动器[token]
…
provider = keystone.token.providers.uuid.Provider
driver = keystone.token.persistence.backends.sql.Token
4.在 signing 段落定义算法[signing]
…
token_format = UUID
步骤三,创建 Keystone 数据库
注意:假定使用 MariaDB(自 RHEL 7 以后,Maria