当前位置: 首页 > 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…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

centos 7 部署awstats 网站访问检测

一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...