二、openstack安装之keystone安装篇

一、keystone简介

Keystone(OpenStack Identity Service)是OpenStack框架中,负责身份验证、服务规则和服务令牌的功能, 它实现了OpenStack的Identity API。Keystone类似一个服务总线, 或者说是整个Openstack框架的注册表, 其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用, 需要经过Keystone的身份验证, 来获得目标服务的Endpoint来找到目标服务。

二、keystone基本概念介绍

1.User --> User即用户,他们代表可以通过keystone进行访问的人或程序。Users通过认证信息(credentials,如密码、API Keys等)进行验证。

2.Tenant --> Tenant即租户,它是各个服务中的一些可以访问的资源集合。例如,在Nova中一个tenant可以是一些机器,在Swift和Glance中一个tenant可以是一些镜像存储,在Quantum中一个tenant可以是一些网络资源。Users默认的总是绑定到某些tenant上。

3.Role --> Role即角色,Roles代表一组用户可以访问的资源权限,例如Nova中的虚拟机、Glance中的镜像。Users可以被添加到任意一个全局的 或 租户内的角色中。在全局的role中,用户的role权限作用于所有的租户,即可以对所有的租户执行role规定的权限;在租户内的role中,用户仅能在当前租户内执行role规定的权限。

4.Service --> Service即服务,如Nova、Glance、Swift。根据前三个概念(User,Tenant和Role)一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个user尝试着访问其租户内的service时,他必须知道这个service是否存在以及如何访问这个service,这里通常使用一些不同的名称表示不同的服务。在上文中谈到的Role,实际上也是可以绑定到某个service的。例如,当swift需要一个管理员权限的访问进行对象创建时,对于相同的role我们并不一定也需要对nova进行管理员权限的访问。为了实现这个目标,我们应该创建两个独立的管理员role,一个绑定到swift,另一个绑定到nova,从而实现对swift进行管理员权限访问不会影响到Nova或其他服务。

5.Endpoint --> Endpoint即为端点,我们如果需要访问一个服务,则必须知道他的endpoint。因此,在keystone中包含一个endpoint模板(endpoint template,在安装keystone的时候我们可以在conf文件夹下看到这个文件),这个模板提供了所有存在的服务endpoints信息。一个endpoint template包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,并且具有public、private和admin这三种权限。public url可以被全局访问(如http://compute.example.com),private url只能被局域网访问(如http://compute.example.local),admin url被从常规的访问中分离。

三、keystone流程

四、keystone安装

1.在控制节点上安装OpenStack身份认证服务和python-keystoneclient

# yum install -y openstack-keystone python-keystoneclient

2.身份认证服务需要用数据库来存储相关信息,所以要在配置文件中指定当地数据库的位置。

# openstack-config --set /etc/keystone/keystone.conf database connection mysql://keystone:[email protected] keystone

3.用root账户登录数据库,创建keystone用户和相关数据库并授予访问权限

mysql> CREATE DATABASE keystone;

mysql> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone‘@‘localhost‘ IDENTIFIED BY ‘keystone‘;

mysql> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone‘@‘%‘ IDENTIFIED BY ‘keystone‘;

mysql> FLUSH PRIVILEGES;

mysql> exit;

4.填充keystone数据库

# su -s /bin/sh -c "keystone-manage db_sync" keystone

5.定义一个授权令牌当作在身份服务和其他OpenStack服务的共享秘钥,使用openssl来生成一个随机令牌,并将其存储到配置文件。

# ADMIN_TOKEN=$(openssl rand -hex 10)

# echo $ADMIN_TOKEN > token_key

# openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN

6.默认情况下,keystone使用PKI token。创建签名秘钥和证书以及限制对生成的数据访问

# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone

# chown -R keystone:keystone /etc/keystone/ssl

# chmod -R o-rwx /etc/keystone/ssl

7.启动身份认证服务和配置开机启动

# service openstack-keystone start

# chkconfig openstack-keystone on

8.默认情况下,身份认证服务会无限期存储数据库中过期的令牌,过期的令牌将大幅增加数据库的大小和可能会减少服务的性能,特别是在测试环境或者有限的资源下的情况下。我们建议配置一个周期性任务来清除每小时过期的令牌

# (crontab -l -u keystone 2>&1 | grep -q token_flush) || \

echo ‘@hourly /usr/bin/keystone-manage token_flush >/var/log/keystone/keystone-tokenflush.log 2>&1‘ >> /var/spool/cron/keystone

五、创建users,tenant,role

在安装完身份认证服务后,我们得设置user、tenant、role进行身份验证;这些都是用于允许访问服务和端点。

通常,你将使用一个用户名和密码进行身份验证服务,但是,由于你还没有创建任何用户,所以你必须使用授权令牌(即之前我们保存在token_key文件中随机字符)。你可以通过--os-token选项或者设置OS_SERVICE_TOKEN环境变量来成功使用keystone命令。设置OS_SERVICE_TOKEN以及OS_SERVICE_ENDPOINT指定身份认证服务正在运行。ADMIN_TOKEN换成你的授权令牌:

# export OS_SERVICE_TOKEN=ADMIN_TOKEN

# export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0

1.创建一个管理用户

根据以下步骤创建管理用户、角色、租户,你将使用这些账户跟OpenStack云进行交互。

默认情况下,身份认证服务会创建一个特殊的_member_角色,openstack dashboard将会自动向用户授予访问这个角色的权限。你要给admin用户访问权限除了admin role外。

(1)创建admin用户

# keystone user-create --name=admin --pass=openstack [email protected]

(2)创建admin角色

# keystone role-create --name=admin

(3)创建admin租户

# keystone tenant-create --name=admin --description="Admin Tenant"

(4)利用user-role-add选项将admin用户、admin角色、admin租户连接在一起

# keystone user-role-add --user=admin --tenant=admin --role=admin

(5)连接admin用户、_member_角色、admin租户

# keystone user-role-add --user=admin --role=_member_ --tenant=admin

2.创建一个普通用户

根据以下步骤创建一个普通用户、租户,并将它们与_member_角色连接。你将使用该账户作为非管理员在每日中与openstack云交互。你还可以重复这个过程来创建额外的云用户并设置不同的用户名和密码。当创建这些用户的时候跳过创建承租者步骤。

(1)创建demo用户

# keystone user-create --name=demo --pass=openstack [email protected]

(2)创建demo租户

# keystone tenant-create --name=demo --description="Demo Tenant"

(3)连接demo用户、_member_角色和demo租户

# keystone user-role-add --user=demo --role=_member_ --tenant=demo

3.创建一个服务租户

openstack服务还需要一个用户名、租户和角色访问其他的openstack服务。基本安装中,openstack服务通常共享一个租户命名的服务。

(1)创建服务租户

# keystone tenant-create --name=service --description="Service Tenant"

六、定义服务和API端点

(1)为身份验证创建一个服务条目

# keystone service-create --name=keystone --type=identity --description="OpenStack Identity"

(2)为身份验证服务指定一个API端点通过返回的服务ID,当你指定一个端点,你必须为public API,internal API和admin API提供URLs。在该指导中,使用controller主机名。注意,身份验证服务为管理API使用了不同的端口

# keystone endpoint-create \

--service-id=$(keystone service-list | awk ‘/ identity / {print $2}‘) \

--publicurl=http://controller:5000/v2.0 \

--internalurl=http://controller:5000/v2.0 \

--adminurl=http://controller:35357/v2.0

七、验证身份验证的安装

(1)为了验证身份服务的安装和配置是否正确,清除OS_SERVICE_TOKEN和OS_SERVICE_ENDPOINT环境变量的值:

# unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT

(2)你现在可以使用普通用户基于名称的身份验证。使用admin用户和你为改账户设置的密码来请求身份验证令牌

# keystone --os-username=admin --os-password=openstack --os-auth-url=http://controller:35357/v2.0 token-get

(3)验证授权行为。为此,验证授权的租户

# keystone --os-username=admin --os-password=openstack \

--os-tenant-name=admin --os-auth-url=http://controller:35357/v2.0 \

token-get

(4)你可以在操作系统中设置--os-*变量来简化命令行的用法。为管理凭证和管理端点,创建admin-openrc.sh文件,内容如下:

export OS_USERNAME=admin

export OS_PASSWORD=openstack

export OS_TENANT_NAME=admin

export OS_AUTH_URL=http://controller:35357/v2.0

(5)source该文件使环境变量生效

# source admin-openrc.sh

(6)验证你的admin-openrc.sh文件配置是否正确,运行一样的命令除了--os-*参数。

# keystone token-get

命令返回一个令牌并指定的ID用户,则证明你配置的环境变量正确

(7)验证你的管理员账户已授权执行管理命令

# keystone user-list

# keystone user-role-list --user admin --tenant admin

注意:上面这张图少截了前面id部分

至此,身份验证服务安装完毕!

时间: 2024-10-24 16:42:46

二、openstack安装之keystone安装篇的相关文章

三、openstack安装之glance安装篇

一.glance简介 openstack镜像服务使用户能够发现.登记并检索虚拟机镜像,代号glance.glance服务提供了一个REST API,使你能够查询虚拟机镜像元数据和检索实际镜像.通过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似openstack对象存储系统. 为了简单,本安装镜像服务使用普通文件系统做为后端,也就是说上传镜像将被存储在一个目录里,这个目录是/var/lib/glance/image,你要确保这个目录提供足够的空间,然后再来存储虚拟机的

四、openstack安装之nova安装篇

一.nova简介 计算服务是云计算的控制器,它是IaaS系统的主要部分,用它来承载和管理云计算系统,主模块是用python来实现的.它与身份认证服务的验证.镜像服务的镜像以及dashboard的用户和管理界面交互,获取镜像通过项目和用户配额限制(比如实例的数量).计算服务根据启动的实例在标准硬件水平上进行扩展和下载镜像实现. 二.计算服务的功能区域和组件 1.API (1)Nova-api服务,接收和响应终端用户的计算API调用,支持openstack计算API,Amazon EC2 api和A

openstack API部分(Keystone) HAProxy配置(二)

openstack API部分(Keystone) HAProxy配置 廖杰 一.概况与原理 1)所需要的配置组件有:pacemaker+corosync+HAProxy 2)主要原理:HAProxy作为负载均衡器,将对openstack api服务的请求分发到两个镜像的控制节点上,由于openstack api服务是无状态的服务,所以不存在数据同步的问题.具体为在pacemaker中配置一个VIP,HAProxy负责监听这个VIP,将对这个VIP的请求分发到两台控制节点上,同时HAProxy本

KeyStone安装部署笔记

OpenStack中的所有组件称为服务,比如keystone.swift.nova等,不同的服务负责不同的功能,swift负责存储数据对象,nova管理计算实例的生命周期,keystone为其它服务提供认证和授权等,而有些服务是属于共享范畴的,比如Keystone,为OpenStack中的所有其它服务管理者endpoint的目录,并负责认证和授权.可以简单地理解为访问OpenStack中所有服务的请求都需要通过keystone的认证和授权,可以将Keystone比喻为一座城池大门的守卫者,进入其

ceph部署二(存储集群安装)

完成预检之后,你就可以开始部署 Ceph 存储集群了.二.创建集群2.1.创建ceph集群mkdir my-clustercd my-clusterceph-deploy new ceph1 ceph2 ceph3在当前目录下用 ls 和 cat 检查 ceph-deploy 的输出,应该有一个 Ceph 配置文件.一个 monitor 密钥环和一个日志文件.注意:如果你有多个网卡,可以把 public network 和cluster network 写入 Ceph 配置文件的 [global

OpenStack pike版 安装openstack服务(4) 续安装openstack服务(3)    

Compute service overview 计算服务概述 OpenStack用于对主机的计算和管理云计算系统.OpenStack的计算是一个基础设施即服务(IaaS)系统的一个重要组成部分.主要模块是用python实现的. OpenStack计算与OpenStack身份验证交互用来完成认证:OpenStack镜像服务用于磁盘和服务器镜像:用户和管理接口为OpenStack Dashboard.镜像访问受到项目和用户的限制,每个项目的配额是有限的(例如,实例的数量).OpenStack计算可

[Openstack]使用devstack自动化安装

os环境为: ubuntu14.04 安装步骤: 更新系统软件包: sudo apt-get dist-upgrade #出现无法访问到ubuntu官网的错误. 安装git: sudo apt-get install git 下载项目: git clone https://github.com/openstack-dev/devstack.git 切换命令: cd devstack 查看分支: git branch -a #可以切换到不同的版本 切分支: git checkout -b hava

[转]gitHub客户端Desktop的安装使用总结 ---基础篇

gitHub客户端Desktop的安装使用总结 ---基础篇 发表于2015/12/11 11:41:57  8399人阅读 分类: Android之应用实战 这段时间想把我写的东西上传到github上,所以开始收集资料学习,走了很多弯路( msysgit和极慢的FQ网速让我欲仙欲死),最后找到了比较好用的工具gitHub desktop.在此做出详细记录. 一.第一步 注册github账号 1.注册界面 https://github.com/,如下图: 2.下注册流程 3.上面简单的输入一下用

OpenStack pike版 安装openstack服务(5) 续安装openstack服务(4)

网络服务简介 OpenStack网络(neutron)允许您创建和将其他OpenStack服务管理的接口设备附加到网络中.插件可以适应不同的网络设备和软件,为OpenStack的架构和部署提供灵活性. 它包括以下组件: neutron-server:接受并将API请求路由到相应的OpenStack网络插件以进行操作. OpenStack Networking plug-ins and agent:即插即用端口,创建网络或者子网,提供IP地址.这些插件和代理根据特定云使用的供应商和技术而有所不同.