2.部署Keystone服务

news2024/11/15 18:01:19

在OpenStack的框架体系中Keystone的作用类似于一个服务总线,为OpenStack提供身份管理服务,包括用户认证,服务认证和口令认证,其他服务通过Keystone来注册服务的Endpoint(端点),针对服务的任何调动都要通过Keystone的身份认证,并获得Endpoint(端点)来进行访问。

部署顺序

keystone组件是第一个要安装的组件,其他组件之间通信都是需要通过keystone进行认证

然后,glance组件负责镜像管理,启动实例时提供镜像服务,可存储各个不同操作系统的镜像;

然后,placement组件,负责为nova提供资源的监控的功能;

然后,nova组件负责管理实例,创建、删除、管理等操作;

最后,neutron组件负责网络,二层和三层网络,通过linuxbridge网桥来镜像连接;

dashboard提供一个图形界面,在web页面可以启动实例,创建网络等等操作;

cinder组件提供一个额外的volume存储卷,启动实例的时候可以创建卷给他绑定上去,自己搭建练习,有没有都行;

keystone数据库配置

controller节点

在安装和配置keystone身份服务之前,必须创建服务对应的数据库用于存储相关数据

然后授权keystone用户本地访问和远程访问两种访问权限

mysql -u root -p123456
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123';

 

 keystone服务安装配置

安装keystone、httpd、mod_wsgi软件(mod_wsgi会提供一个对外的api接口用于接收请求)

yum -y install openstack-keystone httpd mod_wsgi
修改 keystone.conf 配置文件
#查看文件属性
ll /etc/keystone/keystone.conf
-rw-r----- 1 root keystone 140415 6月12 2023 /etc/keystone/keystone.conf
#提前备份配置文件
cp /etc/keystone/keystone.conf{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/keystone/keystone.conf.bak >/etc/keystone/keystone.conf

/etc/keystone/keystone.conf
#修改文件内容
vim /etc/keystone/keystone.conf
[database]
#配置keystone访问数据库的密码
connection =
mysql+pymysql://keystone:123@controller/keystone
[token]
#配置Fernet令牌,方便其他程序通过令牌来连接keyston进行验证
provider = fernet

 初始化数据库,keystone服务会向数据库中导入表结构

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

 查看数据库验证

mysql -u keystone -p123
use keystone
show tables;

 初始化Fernet密钥存储库

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone--keystone-group keystone
引导身份服务,使得 keystone 可以在所有网卡的 5000 端口上运行,这里的 ADMIN_PASS (管理员密码)改为: 123
keystone-manage bootstrap --bootstrap-password 123 \
--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

配置HTTP服务

 配置 ServerName选项为控制器节点名称

vim /etc/httpd/conf/httpd.conf

 创建文件链接,这个文件是keystone给生成好的,用于访问keystone的5000端口

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

设置开机启动并启动 http 服务
systemctl enable httpd.service && systemctl start httpd.service
http 服务正常启动, keystone 5000 端口已经打开

netstat -tunpl | grep httpd
配置 admin 管理员环境变量,定义 admin 管理员的密码为 123
export OS_USERNAME=admin
export OS_PASSWORD=123
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

创建认证账号

keystone OpenStack 提供身份验证功能, 身份验证使用域 (domain),项目(project),用户(user),角色(Role)的组合。
User 用户 User 就是用户,它代表可以通过 keystone 进行访问的人或者程序;
Role 角色 Role 代表一组用户可以访问的资源权限,用户可以使用角色从而获得该角色的权限;
project 项目:他是各个服务中一些可以访问的资源集合,例如:镜像,存储,网络等资源; domain 域 Domain 的概念实现真正的多租户架构。
云服务的客户是 Domain 的所有者,他们可以在自己的 Domain 中创建多个 Projects、 Users Groups Roles

controller节点

首先创建 domain 域:域名称 example
openstack domain create --description "An Example Domain"  example

#查看域列表
openstack domain list

查看对于域可进行的操作如下:

[root@controller ~]# openstack domain --help

#查看指定域详细信息
openstack domain show default
+-------------+--------------------+
| Field | Value |
+-------------+--------------------+
| description | The default domain |
| enabled | True |
| id | default |
| name | Default |
| options | {} |
| tags | [] |
+-------------+--------------------+

创建project项目:项目名称service,并指定放在default域中

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

#查看项目列表
openstack project list

 

#查看指定项目详细信息
openstack project show service
创建一个 project 项目:项目名称 myproject ,并指定放在 default 域中
openstack project create --domain default \
--description "Demo Project" myproject

 创建非特权user用户:用户名称myuser ,用户的密码:123

openstack user create --domain default \
--password-prompt myuser

#查看用户列表
openstack user list
admin 是openstack自带的管理员用户

#查看可进行的操作
openstack user list

#查看指定用户详细信息
openstack user show myuser
创建 role 角色:角色名称为 myrole
openstack role create myrole

#查看指定角色详细信息
openstack role show myrole

 

 角色绑定:myrole角色绑定到myuser用户与myproject项目上

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

 取消环境变量

unset OS_AUTH_URL OS_PASSWORD
keyston 获取 token 令牌,如果能成功获取那么说明 keyston 服务就是没有问题的了
#以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

创建环境变量脚本

OpenStack 环境中执行命令的时候需要验证用户身份,而用户身份在Open Stack中通过环境变量的方式来定义与切换,但是这些参数是非常多而且长的,每次输入一次命令就要加上这些参数
为了简化,可以将变量写入脚本,使用的时候只需要执行不同的脚本就可以切换用户身份,方便!
#admin用户脚本(用户密码:123)
vim admin-openrc

 

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=123
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
#myuser用户脚本(用户密码:123)
vim 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=123
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
切换用户身份只需执行脚本即可
source admin-openrc
#查看自己的token令牌
openstack token issue
source demo-openrc
#查看自己token令牌
openstack token issue

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

50 最佳实践-安全最佳实践-Libvirt鉴权

文章目录 50 最佳实践-安全最佳实践-Libvirt鉴权50.1 简介50.2 开启libvirt鉴权50.3 管理SASL 50 最佳实践-安全最佳实践-Libvirt鉴权 50.1 简介 用户使用libvirt远程调用功能时,如果不进行任何鉴权校验,所有连接到主机所在网络的第三方程序都可以通过…

一道北大强基题背后的故事(四)——数学之美,美在哪里?

早点关注我,精彩不错过! 在前面文章中,我们重点聊了[((1 sqrt(5)) / 2) ^ 12]这道题可能的弯路,出题思路和这道题设计巧妙的结论,相关内容请戳: 一道北大强基题背后的故事(三)——什…

MTK 平台相机bringup流程

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、Camera 框架介绍二、Camera Bringup 需要配置的文件三、复盘总结 一、Camera 框架介绍 Camera 的框架分为 Kernel 部分和 hal 部分,其中…

需求分析引言:架构漫谈(一)

本文主要对架构的概念做一些介绍,并引申出需求分析的重要性。 后续准备做一个系列,定期介绍我工作以来的一些需求实现的案例。 注:因为架构的内容比较庞大,里面的每个点,都可以扩展成一系列的文章, 因此&am…

基于Java精品酒销售管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

PoseiSwap 即将在 6 月 18 日开启 IDO,白名单申请者超 14000 人

根据PoseiSwap官方公告,PoseiSwap正式确定了将在6月18日0:00(UTC)正式在Bounce上开启IDO活动,目前本次活动的白名单申请用户已经突破了14000人。除了Bounce外,PoseiSwap将陆续在BitForex(6月23日…

uniapp + vue3 + uviewPlus 搭建多端项目框架

随着vite.js越来越受开发者青睐,很多大厂的项目都偏向于vue3开发,想着uniapp搭配vite4.x搭建多端项目效果会怎么样?经过一番实践发现果然不错! 版本信息 HBuilderX: 3.8.4 Vite: 4.2.1 uView-Plus: 3.1.31初始化uniappvue3项目 …

PSINS工具箱学习(一)下载安装初始化、SINS-GPS组合导航仿真、习惯约定与常用变量符号、数据导入转换、绘图显示

文章目录 一、前言二、相关资源三、下载安装初始化1、下载PSINSyymmdd.rar工具箱文件2、解压文件3、初始化4、启动工具箱导览 四、习惯约定与常用变量符号1、PSINS全局变量结构体 glv2、坐标系定义3、姿态阵/姿态四元数/欧拉角 Cnb/qnb/att4、IMU采样数据 imu5、AVP导航参数 av…

Python基础(5)——变量

Python基础(5)——变量 文章目录 Python基础(5)——变量目标一. 变量的作用二. 定义变量2.1 标识符2.2 命名习惯2.3 使用变量2.4 认识bug 三. Debug工具3.1 打断点3.2 Debug调试3.2.1 Debug输出面板分类 四. 认识数据类型总结 目标…

【JAVA集合篇】LinkedList详解

文章目录 简介继承体系源码分析主要属性Node节点构造方法添加元素删除元素 栈总结经典面试题 简介 上篇文章我们详细分析ArrayList的使用及源码:【JAVA集合篇】ArrayList源码详解 ,本章我们来聊聊LinkedList的使用及源码,LinkedList和ArrayL…

Ceph:关于Ceph 集群如何访问的一些笔记

写在前面 准备考试,整理 Ceph 相关笔记博文内容涉及,Ceph 集群四种访问方式介绍及 Demo,Ceph 客户端支持的操作介绍理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意…

科大讯飞星火大模型评测:从职场到日常生活,样样精通

文 | 大力财经 今年最热门的话题当属OpenAI发布ChatGPT 3.5版本,全球用户对此纷纷追捧。在国内领域,百度、阿里巴巴、字节跳动、360、腾讯和科大讯飞等厂商纷纷推出大型模型,加入“百模大战”的竞赛。 大模型在自然语言处理领域可以显著提高…

推荐几款适用的项目管理工具,助力您的项目更高效运作

随着企业规模的扩大和业务范围的增加,中小型企业近年来越来越重视项目管理。Zoho Projects 是一款适用于中小型企业的项目管理工具,可以帮助中小型企业更好地进行项目管理,提高工作效率和协作效果。 一、强大的项目管理能力 Zoho Projects提供…

华为OD机试之AI面板识别

AI面板识别 题目描述 AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小一样,任意两个之间无重叠。 由于AI识别误差,每次别到的指示灯位置可能有差异,以4个坐标值描述AI识别的指示灯的大小和位置(左上角…

启智平台使用教程

1.创建项目 填写完需要的信息后,点击“创建项目”即可。 进入到下面这个界面 2.创建调试任务 点击“新建调试任务” 算力集群推荐选择“智算网络集群” 新建项目的时候必须要选择镜像,可以根据自己的需要选择合适的镜像。可以把原镜像的安装包删除&…

基于html+css的图展示132

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

关于ASA搜索竞价排名广告

通过调研发现,60%的应用是通过搜索引擎发现的,这一定程度上也反映出用户需要先通过搜索引擎和社交媒体搜索寻找APP的占比较大,我们可以借助应用商店内的排名推荐广告,来改变应用被发现的渠道。 通过广告投放和ASO优化&#xff0c…

软件开发项目的工作量估算方法 —— 代码统计分析工具

目录 软件开发项目的阶段 工作量估算方法 参考比例 最佳实践 移植项目工作量评估工具 —— 代码统计分析工具 代码统计分析工具 —— 分析用参数调整面板 结论 在软件开发项目中,工作量估算是项目成功的关键之一。正确的工作量估算可以帮助开发团队做好时间管…

Elasticsearch 如何把评分限定在0到1之间?

本文题目来自微信群讨论。 在 Elasticsearch 中,评分(或打分)通常在查询过程中进行,以判断文档的相关性。 默认的打分机制使用的是 BM25,但你也可以通过自定义的打分查询(function_score)来自定…

Python进阶语法之lambda函数

Python进阶语法之lambda函数 在Python中,lambda函数也被称为匿名函数,它是定义简单函数的一种快捷方式。lambda函数与普通函数一样,可以接收任意数量的参数,但是只能有一个表达式。在本文中,我们将通过丰富的例子和解…