文档章节

nova-keystone

o
 osc_gxtueyne
发布于 2019/03/07 22:49
字数 1247
阅读 5
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

介绍    

keystone 为身份认证服务,所有的服务都是通过keystone来访问的,所有的服务创建后都要在keystone 上注册。

功能介绍

用户认证

USER   用户     用一个数字标识使用openstack 服务的一个人、系统或服务,身份验证服务将会验证传入的由用户声明将调用的请求。

Project  项目    各个服务中可以访问的资源集合,它是一个容器用来组织和1隔离资源或标识对象,老版本中为 tenant:租户

Token   令牌    用户首次通过keytone认证时,通过用户名和密码,认证通过后keystone 会分配给用户一个有有效期的令牌,以后认证通过令牌即可。

           优点:每次用户名密码认证都需要查询数据库,通过token 可以提高效率

Role     角色    权限集合

逻辑关系:用户对project 和操作权限由用户在项目中担任的角色决定。

服务目录

service    服务

endpoint  端点  一个服务对应的一个访问点,如果需要访问一个服务,则必须知道它的访问点。Endpoint 的每个URL都对应一个服务实例的访问地址,并且具                                                             有 private,public和admin 三个url地址,作用分别为局域网访问、公网访问、管理网管理访问,

nova glance  等每个服务对应都要在keystone 上注册一个相应的服务,每个服务都产生一个endpoint ,服务的注册切记:不能多,不能少,不能错。

安装和配置keystone 服务

yum install openstack-keystone httpd mod_wsgi
[database]
# ...
connection = mysql+pymysql://keystone:keystone@controller/keystone
[token]
# ...
provider = fernet     #加密算法为fernet
#driver = sql      #注意:在queens 版本中 driver 处不可以设置为memcache 否则无法加载memchache,在newton 版本中可以设置memcache配置。 
初始化数据库,操作mysql 数据库在keystone 数据库中创建数据表
su -s /bin/sh -c "keystone-manage db_sync" keystone
Initialize Fernet key repositories:
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
注册admin 用户,注册服务地址,实际就是在keystone 库中相应数据表中添加数据
# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://controller:5000/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne

#设置server name
vi /etc/httpd/conf/httpd.conf
ServerName controller

#创建软连接
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
启动阿帕奇
# systemctl enable httpd.service
# systemctl start httpd.service

设置变量,以后执行相应命令就不用再命令行指定用户名,密码,注册地址等信息(永久有效可以写在配置文件中)
$ export OS_USERNAME=admin
$ export OS_PASSWORD=admin
$ export OS_PROJECT_NAME=admin
$ export OS_USER_DOMAIN_NAME=Default
$ export OS_PROJECT_DOMAIN_NAME=Default
$ export OS_AUTH_URL=http://controller:5000/v3
$ export OS_IDENTITY_API_VERSION=3

#相应日志文件位置
[root@localhost ~]# ls /var/log/keystone/
keystone.log
[root@localhost ~]# ls /var/log/httpd/
access_log error_log keystone_access.log keystone.log

openstack user list #此命令实际上是连接keystone 的命令,如果命令后面为指定用户名等信息,实际会读取环境变量OS_USERNAME等信息,
然后通过访问apache 服务,apache 服务访问keystone (实际为python程序),keystone 对其认证,生成token 给用户,从数据库中读取命令要获取的信息返回给命令。

创建一个项目
openstack project create --domain default --description "Service Project" service
openstack project create --domain default --description "Demo Project" demo
创建一个demo 项目的用户
openstack user create --domain default --password-prompt demo #密码设置为demo 即可
openstack role create user #创建一个user 角色(keystone 分为两个角色,一个是admin 已经再初始化时创建, 一个是普通用户user)
openstack role add --project demo --user demo user #将demon 用户添加到项目demo 中并且赋予user 角色
openstack user create --domain default --password-prompt glance
openstack role add --project service --user glance admin
openstack user create --domain default --password-prompt nova
openstack role add --project service --user nova admin
openstack user create --domain default --password-prompt neutron
openstack role add --project service --user neutron admin
openstack user create --domain default --password-prompt cinder
openstack role add --project service --user cinder admin
注:上述所有操作默认都是以admin 用户登录keystone 执行的操作(写数据库)
如果创建用户、项目操作错误,可以通过openstack user/role/project delete id 删除即可,每一个用户、角色对应一个id ,可以先出查询得出,
注意删除service 必须删除endpoint 因为都已对应的,必须两者一同删除再创建

验证一下,取消之前设置的环境变量,用其他用户登录并获取token(用户名密码验证通过才会获取到token)
unset OS_AUTH_URL OS_PASSWORD
openstack --os-auth-url http://controller:35357/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name admin --os-username admin token issue
openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name demo --os-username demo token issue
创建声明环境变量的脚本,每次以相应用户登录时先执行相应的环境变量脚本即可
vi admin-openstack
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
验证
source admin-openstack
openstack user list
vi demo-openstack
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
source demo-openstack
openstack user list

export OS_IMAGE_API_VERSION=2

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
openstrack网络节点neutron配置问题

参照官方文档中文版安装openstack kilo版 我想在同一台机器上(单网卡,eth0,IP:192.168.10.141)安装所有组件,集控制节点、计算节点、网络节点于一体 在配置网络节点时(原文地址:http://...

吟嘯煙雨
2016/06/01
9
0
kafka 系统测试框架--kafka-monitor

在2016年4月份举行的Kafka峰会上,LinkedIn在Apache 2.0许可协议下开源了Kafka Monitor,并于近日详细介绍了该监控工具的架构以及他们最初的构建动机。在年初的时候,LinkedIn曾在一篇有关K...

匿名
2016/06/16
4.8K
0
OpenStack 组件修改版--nova-2013.2.3

OpenStack Compute (Nova) 以nova-2013.2.3版本为基础,作修改,增加对华为AR交换机上vport接口类型的支持,增加了虚拟机透传主机显卡、USB设备等支持。 后续会在版本基础上,陆续合入对华为...

hollyhock13
2015/12/23
600
0
Swarm 集群与 Neutron 联网工具--Clampify

Clampify 能让你在 Swarm 集群中的节点间建立多个独立的网络。它可以将同一用户在不同网络上的不同工作负载放到容器中,或者对多租户集群解决方案建立模块,在模块中,容器中的不同租户可以挂...

孔小菜
2015/07/27
321
0
Openstack Docker

Openstack Docker 是在 OpenStack 内使用 Docker 的 Nova 驱动器和 Glance 后端。

孔小菜
2015/05/13
1.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

HashMap源码分析

HashMap源码 JDK版本: 1.8 类定义 代码 public class HashMap<K,V> extends AbstractMap<K,V>implements Map<K,V>, Cloneable, Serializable 继承AbstractMap,AbstractMap实现Map 实现Map......

jackmanwu
29分钟前
7
0
聊聊dubbo-go的randomLoadBalance

序 本文主要研究一下dubbo-go的randomLoadBalance randomLoadBalance dubbo-go-v1.4.2/cluster/loadbalance/random.go const (name = "random")func init() {extension.SetLoadbalan......

go4it
31分钟前
11
0
如何使用jQuery更改超链接的href - How to change the href for a hyperlink using jQuery

问题: 如何使用jQuery更改超链接的href? 解决方案: 参考一: https://stackoom.com/question/kkb/如何使用jQuery更改超链接的href 参考二: https://oldbug.net/q/kkb/How-to-change-the...

fyin1314
34分钟前
6
0
Linux中.bashrc与.bash_profile的对比

如果你平时在命令行上花费了大量时间,那么你可能会萌生出希望定制 Shell 环境的想法。今天本文就和大家讲解该如何实现你们的这个想法。其实可以通过创建别名、向环境变量 $PATH 添加新目录或...

良许Linux
45分钟前
7
0
信息系统项目管理师(15)

软件需求分析的目的是对各种需求信息进行分析并抽象描述,为目标系统建立一个概念模型。通过需求分析,可以检测和解决需求之间的冲突;发现系统的边界;并详细描述出系统的需求。 访问控制授...

LitStone
58分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部