当前位置: 首页 > news >正文

【Openstack Train安装】六、Keystone安装

OpenStack是一个云计算平台的项目,其中Keystone是一个身份认证服务组件,它提供了认证、授权和目录的服务。其他OpenStack服务组件都需要使用Keystone来验证用户的身份和权限,并且彼此之间需要相互协作。当一个OpenStack服务组件接收到用户的请求时,它会先将请求交给Keystone身份认证服务组件,以检查该用户是否有足够的权限来完成请求。因此,Keystone身份认证服务组件是整个OpenStack项目中唯一可以提供身份认证的服务组件。

本文介绍Keystone安装步骤,Keystone仅需在控制节点安装

在按照本教程安装之前,请确保完成以下配置:

【Openstack Train安装】一、虚拟机创建

【Openstack Train安装】二、NTP安装

【Openstack Train安装】三、openstack安装

【Openstack Train安装】四、MariaDB/RabbitMQ 安装

【Openstack Train安装】五、Memcached/Etcd安装

安装环境如下

VMware WorkstationV17.0
本机系统win11
虚拟机系统CentOS 7.5

一、创建数据库

使用keystone服务前,先创建数据库,首先进入数据库:

mysql -u root -p

密码是123456:

创建数据库keystone:

CREATE DATABASE keystone;

授予数据库权限(123456是设置的数据库密码):


GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123456';

退出数据库,如下图:

二、配置keystone

安装相关包:

yum install openstack-keystone httpd mod_wsgi -y

对/etc/keystone/keystone.conf进行配置,在配置前,使用如下命令进行备份:

mv /etc/keystone/keystone.conf /etc/keystone/keystone.conf.source
cat /etc/keystone/keystone.conf.source | grep -Ev "^#|^$" > /etc/keystone/keystone.conf

接下来编辑/etc/keystone/keystone.conf,添加2个记录(这个123456是创建数据库keystone的密码),保存并退出:

[database]
# ...
connection = mysql+pymysql://keystone:123456@controller/keystone
[token]
# ...
provider = fernet

如下所示:

同步数据库:

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

初始化Fernet 库:

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

引导身份服务(这里的密码时ADMIN_PASS,为了简单所有的密码我都设置为123456,但是不同的服务密码有却别,可参考官网):

keystone-manage bootstrap --bootstrap-password 123456\--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

三、配置Apache HTTP服务

编辑/etc/httpd/conf/httpd.conf,进行如下配置并保存退出:

创建软连接:

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

配置开机自启,并启动服务:

systemctl enable httpd.service
systemctl start httpd.service

四、配置环境变量

配置环境变量,为了简单起见,新建一个文件,叫做admin-openrc,并添加以下内容:

export OS_USERNAME=admin
export OS_PASSWORD=123456
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

如下图:

运行该文件,设定环境变量(可以通过export命令查看环境变量):

五、使用

查看当前的domain:

openstack domain list

默认存在一个domain,名字为default:

新建一个名字为example的domain:

openstack domain create --description "An Example Domain" example

再次查看domain列表:

查看project 列表:

openstack project list

有个默认project,名字为admin:

向domain:default中添加一个project,project名字为service:

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

查看新建的project:

关于user、role的创建,可以参考:https://docs.openstack.org/keystone/train/install/keystone-users-rdo.htmlicon-default.png?t=N7T8https://docs.openstack.org/keystone/train/install/keystone-users-rdo.html

默认的project:admin是管理权限,创建一个普通的project:myproject, 在domain: Default中创建myproject和myuser,如下,密码设置为123456:

openstack project create --domain default --description "Demo Project" myproject
openstack user create --domain default --password-prompt myuser

如下所示:

创建role:

openstack role create myrole

如下:

将myrole和myproject\myuser关联起来:

openstack role add --project myproject --user myuser myrole

六、验证

取消环境变量OS_AUTH_URL和OS_PASSWORD:

unset OS_AUTH_URL OS_PASSWORD

使用admin请求一个身份验证的token:

openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name admin --os-username admin token issue

如下:

使用刚刚创建的myuser请求token:

openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name myproject --os-username myuser token issue

如下所示:

七、创建脚本

在后续测试时,有事需要用admin和普通用户进行测试,故编写2个脚本,分别用于设置admin和myuser到环境变量,admin的脚本已经在【四、配置环境变量】中配置完成,下面配置普通用户myuser的脚本,新建文件demo-openrc,其内容如下:

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=123456
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

如下所示:

使用admin请求token,如下:

使用myuser请求token:

keystone安装完成。

致谢

1、感谢Ceased指出数据库创建时的错误。

相关文章:

【Openstack Train安装】六、Keystone安装

OpenStack是一个云计算平台的项目,其中Keystone是一个身份认证服务组件,它提供了认证、授权和目录的服务。其他OpenStack服务组件都需要使用Keystone来验证用户的身份和权限,并且彼此之间需要相互协作。当一个OpenStack服务组件接收到用户的请…...

java学习part22包装类

119-面向对象(高级)-包装类的理解_基本数据类型与包装类间的转换_哔哩哔哩_bilibili 1.包装类 2.基本转包装方式 2.1new方式 源码 2.2valueof() 3.包装转基本 4.基本类型和包装类型的默认值不一样 比如boolean默认false Boolean默认null(对…...

【场景测试用例】二维码

测试思路: UI 不同设备,不同浏览器下的外观和布局一致用户友好性 二维码足够清晰且大小合适是否有错误提示是否有扫描成功/失败提示启动,扫描过程 功能 验证识别功能 二维码完整且有效二维码失效二维码不完整/过于模糊空白二维码测试不同大小…...

如何提高销售技巧,增加客户的成交率?

如何提高销售技巧,增加客户的成交率? 在如今的市场环境中,销售技巧的高低往往决定了你是否能够成功地打动客户的心。想要提高销售业绩,除了产品质量和服务的保障,更需要你精进销售技巧,从而让客户愿意为你…...

软件设计之生成器模式

理解生成器模式在于:一个对象若由多个部分组成,只要构建好这些部分然后拼接到一起就组成了一个完整的对象。比如一台电脑,它的类型可以不一样,可以是苹果的,可以是联想的,等等。同一款电脑它的组件也不一样…...

【Vulnhub 靶场】【CEREAL: 1】【困难】【20210529】

1、环境介绍 靶场介绍:https://www.vulnhub.com/entry/cereal-1,703/ 靶场下载:https://download.vulnhub.com/cereal/Cereal.ova 靶场难度:困难 发布日期:2021年5月29日 文件大小:1.1 GB 靶场作者:Thomas…...

【Vulnhub靶机】Jarbas--Jenkins

文章目录 信息收集主机发现端口扫描目录爆破 漏洞探测whatwebhash-identifierwhatweb 文档说明:https://www.vulnhub.com/entry/jarbas-1,232/ 靶机下载:Download (Mirror): 信息收集 主机发现 扫描C段 sudo nmap -sn 10.9.75.0/24端口扫描 sudo nma…...

Java面向对象第8天

精华笔记: 接口: 是一种引用数据类型 由interface定义 只能包含常量和抽象方法 不能被实例化 接口是需要被实现/继承的,实现类/派生类:必须重写接口中的所有抽象方法 一个类可以实现多个接口,用逗号分隔。若又继承…...

数据结构与算法复习笔记

1.数据结构基本概念 数据结构: 它是研究计算机数据间关系,包括数据的逻辑结构和存储结构及其操作。 数据(Data):数据即信息的载体,是能够输入到计算机中并且能被计算机识别、存储和处理的符号总称。 数据元素&#xf…...

关于微服务的思考

目录 什么是微服务 定义 特点 利弊 引入时机 需要哪些治理环节 从单体架构到微服务架构的演进 单体架构 集群和垂直化 SOA 微服务架构 如何实现微服务架构 服务拆分 主流微服务解决方案 基础设施 下一代微服务架构Service Mesh 什么是Service Mesh&#xff1f…...

计算机毕业设计 基于Web的课程设计选题管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

群晖NAS:docker(Container Manager)、npm安装Verdaccio并常见命令集合

群晖NAS:docker(Container Manager)、npm安装Verdaccio并常见命令集合 自建 npm 资源库,使用Verdaccio。如果觉得麻烦,直接可以在外网注册 https://www.npmjs.com/ 网站。大同小异,自己搭建搭建方便局域网…...

老师旁听公开课到底听什么

经常参加公开课是老师提升自己教学水平的一种方式。那么,在旁听公开课时,老师应该听什么呢? 听课堂氛围 一堂好的公开课,应该能够让学生积极参与,课堂气氛活跃,而不是老师一个人唱独角戏。如果老师能够引导…...

一文让你深入了解JavaSE的知识点

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …...

人体是否有清除hpv病毒能力?北京劲松HPV诊疗中心提出观点

​HPV,全称人乳头瘤病毒,是一种常见的性传播疾病,其症状包括尖锐湿疣、皮肤疣等。那么,人体是否有清除HPV病毒的能力呢?答案是肯定的,人体确实具有清除HPV病毒的能力。 首先,我们要了解HPV病毒是如何感染…...

Linux下~目录和home目录的区别

在 Linux 中,~(波浪号)路径和 home 路径都与用户的主目录(home directory)相关。 ~(波浪号)路径:表示当前登录用户的主目录。例如,如果你当前是以用户user1的身份登陆&am…...

(二) Windows 下 Sublime Text 3 安装离线插件 Anaconda

1 下载 Sublime Text 3 免安装版 Download - Sublime Text 2 下载 Package Control,放到 Sublime Text Build 3211\Data\Installed Packages 目录下。 Installation - Package Control 3 页面搜索 anaconda anaconda - Search - Package Control Anaconda - Pac…...

如何实现大数据渲染

在前端实现大数据渲染时,常见的优化方式是使用虚拟滚动(Virtual Scrolling)或无限滚动(Infinite Scrolling)技术。这些技术可以帮助降低内存消耗和提高渲染性能,以下是一些常用的实现方法: 虚拟…...

【差旅游记】走进新疆哈密博物馆

哈喽,大家好,我是雷工! 前些天在新疆哈密时,有天下午有点时间,看离住的宾馆不远就是哈密博物馆,便去逛了逛博物馆,由于接下来的一段时间没顾上记录,趁今天有些时间简单记录下那短暂的…...

单片机学习6——定时器/计数功能的概念

在8051单片机中有两个定时器/计数器,分别是定时器/计数器0和定时器/计数器1。 T/C0: 定时器/计数器0 T/C1: 定时器/计数器1 T0: 定时器0 T1: 定时器1 C0: 计数器0 C1: 计数器1 如果是对内部振荡源12分频的脉冲信号进行计数,对每个机器周期计数&am…...

17.通杀安卓 /iOS 全机型!Linux 原生刷机方案,EDL 底层救砖 + 自动化源码开源

摘要 本文面向具备基础Linux命令行操作能力的开发者与维修工程师,系统阐述主流品牌Android与iOS设备刷机维修的底层原理与可落地方案。覆盖华为、小米、OPPO、vivo、一加及苹果设备,提供从Bootloader解锁、Recovery刷写、固件烧录到基带修复的完整技术栈。所有操作均基于USB…...

多重检验策略:提升NPLM信号无关搜索的鲁棒性与均匀性

1. 项目概述在粒子物理实验数据分析中,我们常常面临一个核心困境:我们不知道新物理信号会以何种形式出现。传统的“模型依赖”搜索,比如针对特定质量的希格斯玻色子或暗物质候选粒子,需要预先定义一个精确的理论模型。然而&#x…...

2026年AI论文工具实测排行,哪款真正适合顺利通关?

2026 年学术 AI 论文工具已形成全流程、理工 / 社科、英文 / 中文、免费 / 付费的清晰分化。综合实测排行与场景适配,千笔AI 是中文全能首选,DeepSeek 学术版是理工开源首选,毕业之家是国内毕业专属首选。 一、2026 年实测排行 TOP5&#xff…...

Web渗透信息收集实战:从被动侦察到精准测绘

1. 这不是“黑客速成班”,而是Web渗透工程师的日常切片很多人点开“精通 Kali Linux Web 渗透测试”这个标题,第一反应是:又要教怎么黑进某个网站了?其实恰恰相反——我带过的二十多个渗透测试新人里,前两周最常犯的错…...

权威测评!2026年顶尖AI论文写作软件榜单,高质初稿轻松写

2026 年实测 10 款主流 AI 论文工具,千笔AI以全流程覆盖 语义级降重 免费查重领跑综合榜;ThouPen 稳坐留学生毕业全流程工具头把交椅;免费工具中DeepSeek Scholar、豆包学术版表现亮眼,30 分钟即可生成万字高质量初稿&#xff0…...

ClamAV更新失败真相:DNS TXT协议与版本兼容性解析

1. 这不是网络连通性问题,而是ClamAV更新机制被误读的典型现场“Can’t query current.cvd.clamav.net”这个报错,几乎每个在Linux服务器上维护过ClamAV的人都见过。它第一次出现时,90%的运维会立刻去ping、curl、telnet current.cvd.clamav.…...

GORM 标签详解(数据库字段映射核心)

很多人刚学 GORM: 会觉得: gorm:"primaryKey" gorm:"index" gorm:"not null"这些东西: 像“魔法字符串”。 其实: 它本质上是在告诉 GORM: 数据库这一列应该怎么创建也就是:…...

如何免费将PPTX转换为HTML?探索纯JavaScript解决方案的完整指南

如何免费将PPTX转换为HTML?探索纯JavaScript解决方案的完整指南 【免费下载链接】PPTX2HTML Convert pptx file to HTML by using pure javascript 项目地址: https://gitcode.com/gh_mirrors/pp/PPTX2HTML 在数字化办公时代,PPTX2HTML作为一款纯…...

终极指南:5分钟快速上手Eclipse Ditto数字孪生平台

终极指南:5分钟快速上手Eclipse Ditto数字孪生平台 【免费下载链接】ditto Eclipse Ditto™: Digital Twin framework of Eclipse IoT - main repository 项目地址: https://gitcode.com/gh_mirrors/ditto6/ditto 想要在物联网项目中轻松管理成千上万的设备吗…...

3大止损策略拯救你的交易:backtrader实战指南

3大止损策略拯救你的交易:backtrader实战指南 【免费下载链接】backtrader Python Backtesting library for trading strategies 项目地址: https://gitcode.com/gh_mirrors/ba/backtrader 作为一名量化交易者,你是否经常面临这样的困境&#xff…...