【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指出数据库创建时的错误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/233657.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电源适配器测试要求是什么?电源自动化测试系统如何助力测试?

电源适配器又叫外置电源,是一种小型便携式电子设备及电子电器的供电电源变换设备,它可以将交流电转换为设备所需的直流电,常见于手机、笔记本电脑、路由器、灯条等小型电子产品上。 为了保证电源适配器的质量,确保其可以为电子设备…

atmega16单片

今天主要给大家介绍一下ATmega16,ATmega16是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。 从市场角…

认证鉴权方案

现在一般使用比较多的认证方式有四种: SessionTokenSSO单点登录OAtuth登录1.Cookie + Session 最常见的就是 Cookie + Session 认证。 Session,是一种有状态的会话管理机制,其目的就是为了解决HTTP无状态请求带来的问题。 当用户登录认证请求通过时,服务端会将用户的信息存…

【Openstack Train安装】七、glance安装

Glance是为虚拟机的创建提供镜像的服务,我们基于Openstack是构建基本的IaaS平台对外提供虚拟机,而虚拟机在创建时必须为选择需要安装的操作系统,Glance服务就是为该选择提供不同的操作系统镜像。Glance提供Restful API可以查询虚拟机镜像的me…

海光信息荣获ESG金牛科技引领奖!

11月24日,由中国证券报、中国国新控股有限责任公司、南通市人民政府联合主办的”2023金牛企业可持续发展论坛暨第一届国新杯ESG金牛奖颁奖典礼”在江苏南通举行,“国新杯ESG金牛奖”多项获奖名单同期揭晓。海光信息凭借卓越的技术创新实力与行业影响力&a…

SAP 如何检查已安装的SAP UI5 版本

第一个方法是直接从FLP中查看 但是部分高版本的FLP中没有这个about, 那么在当前界面可以使用:CTRL ALT SHIFT S 查看当前版本 根据此版本,去进行你的UI5的开发吧

【Flink进阶】-- Flink kubernetes operator 快速入门与实战

1、课程目录 2、课程链接 https://edu.csdn.net/course/detail/38831

Golang数据类型(数组)

数组重要概念 数组(Array)是一种非常常见的数据类型,几乎所有的计算机编程语言中都会用到它 在Go语言中,数组有如下的特点: 数组里的元素必须全部为同一类型,要嘛全部是字符串,要嘛全部是整数…

【Java学习笔记】 74 - 本章作业

1.验证电子邮件格式是否合法 规定电子邮件规则为 1.只能有一个 2. 前面是用户名,可以是a-z A-Z 0-9 _ - 字符 3. 后面是域名,并且域名只能是英文字母,比如sohu.com或者tsinghua.org.cn 4.写出对应的正则表达式,验证输入的字符串是否为满…

【刷题笔记】两数之和II_二分法||二分查找||边界||符合思维方式

两数之和II_二分法||二分查找 1 题目描述 https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/ 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设…

【软件测试】银行核心业务系统性能测试总结,一篇通透...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 下面讨论的是字符…

zblog免费插件应用中心-zblog最全插件功能

随着网络时代的不断发展,博客已经成为人们分享知识、表达观点的重要平台之一。在众多博客系统中,Zblog因其简洁、高效的特点备受欢迎。然而如何让博客更具吸引力、提高曝光度,成为许多博主关注的问题。在这个问题面前,Zblog插件应…