OpenStack-Keystone组件部署

  • 一、keystone身份服务
  • 二、keystone的主要功能
  • 三、keystone相关概念
  • 四、keystone认证流程
  • 五、OpenStack-Keystone组件部署步骤
    • 安装openstack组件时需要注意顺序
  • 部署步骤
  • 一、创建数据库实例和数据库用户
  • 二、安装、配置keystone、数据库、Apache
    • 安装keystone、httpd、mod_wsgi
    • 初始化认证服务数据库
    • 配置bootstrap身份认证服务
    • 配置Apache HTTP服务器
    • 创建配置文件
    • 开启服务
    • 配置管理员账户的环境变量
    • 通过配置环境变量,可以使用openstack命令进行一些操作
  • 三、创建OpenStack 域、项目、用户和角色
  • 小结下:

一、keystone身份服务

  • keystone(openstack identity service)是openstack中的一个独立的提供安全认证的模块,主要负责openstack用户身份认证、令牌管理、提供访问资源的服务目录、以及基于用户角色的访问控制
  • keystone类似一个服务总线,或者说是整个openstack框架的注册表,其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互调用,需要经过keystone的身份验证,来获得目标服务的Endpoint来找到目标服务
  • 小结下:keystone提供了多种认证和授权方式,指引后端endpoint

二、keystone的主要功能

  • 身份认证(Authentication):令牌的发放和校验
  • 用户授权(Authorization):授予用户在一个服务中所拥有权限
  • 用户管理(Account):管理用户账户
  • 服务目录(Service Catalog):提供可用服务的API端点

三、keystone相关概念

user:指使用openstack service的用户
Project(Tenant):可以理解为一个人或者服务所拥有的资源集合
Role:用户划分权限。通过给user指定role,使user获得role对应操作权限
Authentication:确定用户身份的过程
Token:是一个字符串表示,作为访问资源的令牌。Token包含了在指定范围和有效时间内,可以被访问的资源
Credentials:用于确认用户身份的凭证,用户的用户名和密码,或者是用户名和API密钥,或者身份管理服务提供的认证令牌
Service:openstack service,即openstack中运行的组件服务,如nova、swif、glance、neutron、cinder等
Endpoint:一个可以通过网络来访问和定位某个openstack service的地址,通常是一个URL
  • 小结下:因为组件点到点的交互是通过API来完成的,API是由Apache所承载的,Apache提供了一个URL,所以说API和API的对接,也可以认为是URL与URL的对接

四、keystone认证流程

  • 简单理解:已创建虚拟机为例:
    创建虚拟机首先需要登录用户认证,user向keystone认证,认证没问题以后登录,user需要向nova发送请求,请求安装虚拟机的指令,nove再次向Keyston返回请求验证,验证成功,创建虚拟机是需要glance镜像资源以及neutron网络等资源,那么nova都会想keystone请求验证来获取资源,验证都无问题则会进行VM的创建,创建成功以后返回信息给user

五、OpenStack-Keystone组件部署步骤

安装openstack组件时需要注意顺序

1、Keystone (apache) 2、glance 3、nova 4、neutron

部署openstack组件时,需先行安装认证服务(keystone),而认证服务是使用Apache运行的,安装完成后才可以创建、管理账号,然后安装镜像服务(glance)、计算服务(nova)、网络服务(neutron)
其中计算服务和网络服务分为管理端和客户端,所以需要在openstack的管理端安装计算服务和网络服务的管理端,在创建虚拟机的node节点上安装计算服务和网络服务的客户端,最后安装dashboard服务,openstack各种组件的API都是通过apache运行的;
openstack的管理端负责创建、管理虚拟机过程的调度
通过openstack管理端创建虚拟机的相关数据最终都会记录到mysql(mariadb)中;node节点没有权限往数据库中写数据,只有控制端有权限,并且node节点与控制端通讯是通过rabbitmq间接通讯,node节点会监听rabbitmq,控制端也会监听rabbitmq,控制端把创建虚拟机的指令发送到rabbitmq,由监听rabbitmq指定队列的node节点接收消息并创建虚拟机;

部署步骤

一、创建数据库实例和数据库用户

mysql -u root -p
create database keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
flush privileges;
quit



二、安装、配置keystone、数据库、Apache

安装keystone、httpd、mod_wsgi

#mod_wsgi包的作用是让apache能够代理python程序的组件;openstack的各个组件,包括API都是用python写的,但访问的是apache,apache会把请求转发给python去处理,这些包只安装在controler节点

yum -y install openstack-keystone httpd mod_wsgi
cp -a /etc/keystone/keystone.conf{,.bak}
#通过pymysql模块访问mysql,指定用户名密码、数据库的域名、数据库名
grep -Ev "^$|#" /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf
#指定token的提供者;提供者就是keystone自己本身
openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@ct/keystoneopenstack-config --set /etc/keystone/keystone.conf token provider fernet
#Fernet:一种安全的消息传递格式


初始化认证服务数据库

su -s /bin/sh -c "keystone-manage db_sync" keystone
初始化fernet 密钥存储库(以下命令会生成两个密钥,生成的密钥放于/etc/keystone/目录下,用于加密数据)
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

配置bootstrap身份认证服务

 keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://ct:5000/v3/ \
--bootstrap-internal-url http://ct:5000/v3/ \
--bootstrap-public-url http://ct:5000/v3/ \
--bootstrap-region-id RegionOne         #指定一个区域名称#此步骤是初始化openstack,会把openstack的admin用户的信息写入到mysql的user表中,以及url等其他信息写入到mysql的相关表中;
#admin-url是管理网(如公有云内部openstack管理网络),用于管理虚拟机的扩容或删除;如果共有网络和管理网是一个网络,则当业务量大时,会造成无法通过openstack的控制端扩容虚拟机,所以需要一个管理网;
#internal-url是内部网络,进行数据传输,如虚拟机访问存储和数据库、zookeeper等中间件,这个网络是不能被外网访问的,只能用于企业内部访问
#public-url是共有网络,可以给用户访问的(如公有云) #但是此环境没有这些网络,则公用同一个网络
#5000端口是keystone提供认证的端口
#需要在haproxy服务器上添加一条listen
#各种网络的url需要指定controler节点的域名,一般是haproxy的vip的域名(高可用模式)

配置Apache HTTP服务器

echo "ServerName controller" >> /etc/httpd/conf/httpd.conf

创建配置文件

#安装完mod_wsgi包后,会生成 wsgi-keystone.conf 这个文件,文件中配置了虚拟主机及监听了5000端口,mod_wsgi就是python的网关

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

开启服务

systemctl enable httpd
systemctl start httpd

配置管理员账户的环境变量

#这些环境变量用于创建角色和项目使用,但是创建角色和项目需要有认证信息,所以通过环境变量声明用户名和密码等认证信息,欺骗openstack已经登录且通过认证,这样就可以创建项目和角色;也就是把admin用户的验证信息通过声明环境变量的方式传递给openstack进行验证,实现针对openstack的非交互式操作

cat >> ~/.bashrc << EOF
export OS_USERNAME=admin               #控制台登陆用户名
export OS_PASSWORD=ADMIN_PASS          #控制台登陆密码
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://ct:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
EOFsource ~/.bashrc

通过配置环境变量,可以使用openstack命令进行一些操作

openstack user list              #查看用户列表

三、创建OpenStack 域、项目、用户和角色

#创建一个项目(project),创建在指定的domain(域)中,指定描述信息,project名称为service(可使用openstack domain list 查询)

openstack project create --domain default --description "Service Project" service

#创建角色(可使用openstack role list查看)

openstack role create user

#查看openstack 角色列表

openstack role list

admin为管理员 member为 租户 user:用户

#查看是否可以不指定密码就可以获取到token信息(验证认证服务)

openstack token issue

小结下:

  • Keystone 组件是作为OpenStack 集群中统一认证、授权的模块,其核心功能就是针对于User(用户)、Tenant(租户)、Role(角色)、Token(令牌/凭证)的控制(手工编译部署即围绕此功能展开的)

  • User:使用 openstack 的用户。

  • Tenant:租户,可以理解为一个人、项目或者组织拥有的资源的合集。在一个租户中可以拥有很多个用户,这些用户可以根据权限的划分使用租户中的资源。

  • Role:角色,用于分配操作的权限。角色可以被指定给用户,使得该用户获得角色对应的操作权限。

  • Token:指的是一串比特值或者字符串,用来作为访问资源的记号。Token 中含有可访问资源的范围和有效时间,token 是用户的一种凭证,需要使用正确的用户名和密码向 Keystone 服务申请才能得到 token。

  • 使用手动部署的模式搭建OpenStack的思路:
    1、分模块部署
    2、部署keystone模块的基础环境(下载依赖包、组件包、第三方工具/插件)
    3、创建、开启此模块的功能(以keystone为例,创建并初始化认证数据库、修改配置文件、初始化密钥-fernet格式、配置身份认证服务)
    4、验证

OpenStack-Keystone组件部署 超级详细!!!相关推荐

  1. 传统公司部署OpenStack(t版)简易介绍(二)——Keystone组件部署

    传统公司部署OpenStack(t版)简易介绍(二)--Keystone组件部署 一.OpenStack组件安装的顺序 二.创建数据库实例和数据库用户(ct控制节点) 三.安装.配置keystone. ...

  2. OpenStack——nove组件部署

    OpenStack--nove组件部署 一.部署Placement 1.创建数据库实例和用户 2.创建placement服务用户和API的endpoint 3.安装placement服务 4.导入数据 ...

  3. 手把手教你搭建OpenStack云平台(超级详细)

    一.前言 OpenStack云平台搭建需要两个节点,一个是controller(控制节点),另一个是compute(计算节点). 控制节点(controller)规划如下: 一块200G的硬盘.两块网 ...

  4. hadoop集群部署超级详细

    下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-3.2.2/ 版本:3.2.2 文件名:hadoop-3.2.2.tar.gz 服务器信息 ...

  5. OpenStack T版—Nova组件部署详解

    目录 一.Nova计算服务 1.1.Nova系统架构 1.2.Nova组件介绍-API 1.3.Nova组件介绍-Scheduler 1.3.1.Nova调度器的类型 1.3.2.过滤器调度器调度过程 ...

  6. 手动部署OpenStack之环境部署

    手动部署OpenStack之环境部署 一.虚拟机信息 二.基础环境配置 三.系统环境配置 一.虚拟机信息 1.控制节点ct CPU:双核双线程-CPU虚拟化开启 内存:8G 硬盘:300G+300G( ...

  7. Openstack组件部署 — Keystone功能介绍与认证实现流程

    目录 目录 前文列表 Keystone认证服务 Keystone认证服务中的概念 Keystone的验证过程 简单来说 前文列表 Openstack组件部署 - Overview和前期环境准备 Ope ...

  8. OpenStack 的部署T版(二)——Keystone组件

    目录 一.OpenStack安装Keystore组件 Keystone认证流程 1.OpenStack组件安装的顺序 2.创建数据库实例和数据库用户 3.安装.配置keystone.数据库.Apach ...

  9. Openstack(T版)私有云平台<环境部署>及安装<keystone组件>

    文章目录 一.基础环境配置 1. 下载基础工具包 2. 下载open stack t版 客户端 3. 配置hosts主机映射 4. 三台主机做免交互 5. 配置时间同步 二.系统环境配置 1. 配置M ...

最新文章

  1. P1759 通天之潜水(不详细,勿看)(动态规划递推,组合背包,洛谷)
  2. Oracle集合查询
  3. 2018 年,React 将独占web前端框架鳌头?
  4. 递推——覆盖墙壁(洛谷 P1990)
  5. 使用Office 365 试用账户 体验Office 365功能
  6. 观察者模式与发布/订阅模式的区别
  7. 百度地图离线_3大主流导航地图,你用的哪个?
  8. 【实用技巧】下载音乐到本地电脑
  9. 看完这篇文章,再也不怕别人问我JVM了
  10. 杨诚 湖南科技职业技术学院计算机,2013年全国职业院校技能大赛高职组获奖名单...
  11. SSM框架下打卡签到增加积分功能的实现
  12. UDID 和 UUID 的问题
  13. ffmpeg 多个音频合并 截取 拆分
  14. 13- 数据建模-建模方法三:实体建模
  15. iOS MVC设计模式
  16. 关于Thinkpad的bios选项(转载)
  17. WIN7主题下载http://bbs.windows7en.com/?fromuid=896008
  18. 如何利用博客评论做外链而不被删除
  19. LabVIEW--S1-前言和入门
  20. 《惢客创业日记》2019.04.05(周五)清明扫墓写诗一首

热门文章

  1. Orkut 试用报告
  2. Canvas炫酷3D线条动画背景
  3. 零撸项目-Star Network注册流程
  4. 对dz模板的一些注释
  5. 分析system_call中断处理过程
  6. 新玺配资:上证指数震荡向上 关注3550区域压力!
  7. DO280OpenShift访问控制--管理项目和账户
  8. 长铗、孔剑平、何斌等17位大咖齐聚,一部区块链创业者的“燃点”
  9. 如何加快计算机绘图的速度,如何提高Auto CAD 做图速度
  10. 2023最新智简魔方快云模板源码+已免授权