OpenStack离线Train版安装系列—3控制节点-Keystone认证服务组件

本文主要是介绍OpenStack离线Train版安装系列—3控制节点-Keystone认证服务组件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。
在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。

OpenStack部署系列文章
OpenStack Victoria版 安装部署系列教程
OpenStack Ussuri版 离线安装部署系列教程(全)
OpenStack Train版 离线安装部署系列教程(全)
欢迎留言沟通,共同进步。


文章目录

  • Keystone认证服务组件
    • 一、创建keystone数据库并授权
      • 1.登录进入数据库
      • 2.创建keystone数据库并授权
    • 二、keystone相关软件安装与配置
      • 1.安装keystone相关软件
      • 2.快速修改keystone配置
      • 3.初始化同步keystone数据库
      • 4.同步完成进行连接测试
      • 5.初始化Fernet令牌库
      • 6.配置启动Apache(httpd)
      • 7.初始化引导keystone认证服务
      • 8.创建keystone的一般实例
        • ①JUST仅仅阅读1
        • ②JUST仅仅阅读2
        • 实际操作
    • 三、验证操作keystone是否安装成功
      • 1.去除环境变量
      • 2.作为管理员用户去请求一个认证的token
      • 3.使用普通用户获取认证token
    • 四、创建OpenStack客户端环境变量脚本
      • 1.创建admin用户的环境管理脚本
      • 2.创建普通用户myuser的客户端环境变量脚本
      • 3.测试环境管理脚本
    • 五、keystone安装完毕


Keystone认证服务组件

官方参考:openstack-services,keystone-install
博客园:CentOS7安装OpenStack(Rocky版)-02.安装Keyston认证服务组件(控制节点)

一、创建keystone数据库并授权

1.登录进入数据库

使用mysql数据库的root账户登录,密码为控制节点环境准备时初始化mysql数据设置的密码为root。

mysql -u root -proot

2.创建keystone数据库并授权

CREATE DATABASE keystone;GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'keystone';GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'keystone';flush privileges;
show databases;
select user,host from mysql.user;
exit

二、keystone相关软件安装与配置

1.安装keystone相关软件

# 配置Apache服务,使用带有“mod_wsgi”的HTTP服务器来相应认证服务请求,端口为5000和35357, 默认情况下,Kestone服务仍然监听这些端口
yum install httpd mod_wsgi -y
yum install openstack-keystone python-keystoneclient -y
#用于快速配置
yum install openstack-utils -y 

2.快速修改keystone配置

# 下面使用的快速配置方法需要安装Openstack-utils才可以实现
openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:keystone@controller/keystone
openstack-config --set /etc/keystone/keystone.conf token provider fernet
# 注意:keystone不需要连接rabbitmq
# 查看生效的配置
egrep -v "^#|^$" /etc/keystone/keystone.conf
# 其他方式查看生效配置
grep '^[a-z]' /etc/keystone/keystone.conf
# keystone不需要启动,通过http服务进行调用

3.初始化同步keystone数据库

同步keystone数据库

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

4.同步完成进行连接测试

mysql  -ukeystone -pkeystone -e "use keystone;show tables;"
mysql -h192.168.232.101 -ukeystone -pkeystone -e "use keystone;show tables;"|wc -l

5.初始化Fernet令牌库

Initialize Fernet key repositories,关于Fernet令牌的介绍Keystone Fernet tokens

# 以下命令无返回信息keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

6.配置启动Apache(httpd)

(1)修改httpd主配置文件

sed  -i  "s/#ServerName www.example.com:80/ServerName controller/" /etc/httpd/conf/httpd.conf

或者

vim /etc/httpd/conf/httpd.conf +95
-------------------------------------
ServerName controller
-------------------------------------

(2)配置虚拟主机

# 创建keystone虚拟主机配置文件的快捷方式,也可以复制过来ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

(3)启动httpd并配置开机自启动
如果http起不来,需要关闭 selinux 或者安装 yum install openstack-selinux

systemctl start httpd.service
systemctl status httpd.service
netstat -anptl|grep httpdsystemctl enable httpd.service
systemctl list-unit-files |grep httpd.service

至此,http服务配置完成

7.初始化引导keystone认证服务

(1)创建 keystone 用户,初始化的服务实体和API端点
创建用户:需要创建一个密码ADMIN_PASS,作为登陆openstack的admin管理员用户,这里密码也创建为admin。
创建keystone服务实体和身份认证服务,以下三种类型分别为公共的、内部的、管理的。

  • 在endpoint表增加3个服务实体的API端点
  • 在local_user表中创建admin用户
  • 在project表中创建admin和Default项目(默认域)
  • 在role表创建3种角色,admin,member和reader,即公共的、内部的、管理的。
  • 在service表中创建identity服务
keystone-manage bootstrap --bootstrap-password admin \--bootstrap-admin-url http://controller:5000/v3/ \--bootstrap-internal-url http://controller:5000/v3/ \--bootstrap-public-url http://controller:5000/v3/ \--bootstrap-region-id RegionOnesource admin-openrc.sh
openstack catalog list

思考:
①此处的controller是否可以考虑换为管理网的IP地址,以便其他主机方便调用API,或者在其他主机配置主机文件controller为相应的IP地址。
②在之前的版本(queens之前),引导服务需要2个端口提供服务(用户5000和管理35357),本版本通过同一个端口提供服务
③关于访问地址endpoint表:Keystone介绍,Keystone介绍与安装
Endpoint 是一个网络上可访问的地址,通常是一个 URL。Service 通过 Endpoint 暴露自己的 API。 Keystone 负责管理和维护每个 Service 的 Endpoint。可以使用下面的命令来查看 Endpoint。

(2)临时配置管理员账户的相关变量进行管理

# 这里的export OS_PASSWORD要使用上面配置的ADMIN_PASS
export OS_USERNAME=admin
export OS_PASSWORD=admin
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# 查看声明的变量
env |grep OS_

附:常用的openstack管理命令,需要应用管理员的环境变量

# 查看keystone实例相关信息
openstack endpoint list
openstack project list
openstack user list# 删除endpoint
openstack endpoint delete [ID]

8.创建keystone的一般实例

①JUST仅仅阅读1

https://www.cnblogs.com/shhnwangjian/p/6360066.html

openstack service create \--name=keystone \--description="Keystone Identity Service" \identityopenstack user create --password admin admin
openstack role create admin
openstack project create admin
openstack role add --project admin --user admin adminopenstack user create --password demo demo
openstack role create _member_
openstack project create demo
openstack role add --project demo --user demo _member_
②JUST仅仅阅读2
创建admin用户
1. 创建admin用户
# keystone user-create --name=admin --pass=ADMIN_PASS --email=ADMIN_EMAIL
2. 创建admin角色
# keystone role-create --name=admin
3. 创建admin租户
# keystone tenant-create --name=admin --description="Admin Tenant"
4. 将admin用户、admin角色、admin租户联系到一起
# keystone user-role-add --user=admin --tenant=admin --role=admin
5. 将admin用户、_member_角色、admin租户联系到一起
# keystone user-role-add --user=admin --role=_member_ --tenant=admin
创建普通用户
可以通过重复下面的步骤建立其他用户,创建其他用户时跳过创建租户的步骤。1. 创建demo用户
# keystone user-create --name=demo --pass=DEMO_PASS--email=DEMO_EMAIL
2. 创建demo租户:
# keystone tenant-create --name=demo --description="Demo Tenant"
3. 将demo用户、_member_角色、和demo租户联系到一起
# keystone user-role-add --user=demo --role=_member_ --tenant=demo
创建service租户
OpenStack服务需要一个用户名、租户和角色来访问其他OpenStack服务。所有的OpenStack服务通常共享一个名为service的租户。创建service租户
# keystone tenant-create --name=service --description="Service Tenant"
————————————————
版权声明:本文为CSDN博主「KILL_USR」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shajc0504/article/details/39835817

创建域domain,项目 projects,用户 users,角色roles,OpenStack官方说明:keystone-users-rdo

域:default,已经在keystone引导程序步骤中创建。

实际操作

DO as followed

(1)【非必须】 创建一个名为example的域
在project表中创建名为example的项目

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

(2)【必须】 创建名为service的项目,在default域中。
用于常规(非管理)任务,需要使用无特权用户。以下命令会在project表中创建名为service的项目

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

(3)【非必须】 创建名为myproject项目,在default域中。

作为一般用户(非管理员)的项目,为普通用户提供服务。以下命令会在project表中创建名为myproject项目

openstack project create --domain default --description "Demo Project" myproject

(4)【非必须】 创建myuser用户,在default域中。
以下命令会在local_user表增加myuser用户。使用–password选项为直接配置明文密码,使用–password-prompt选项为交互式输入密码
直接创建用户和密码

openstack user create --domain default  --password=myuser myuser

或者交互式输入密码

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

(5)【非必须】 创建myrole角色,在role表中。

openstack role create myrole

【必须】 但是需要创建一个默认角色user或者_member_

openstack role create user

原因/etc/openstack-dashboard/local_settings文件配置中填写的是user

vim /etc/openstack-dashboard/local_settings
--------------
#OPENSTACK_HOST = "127.0.0.1"
OPENSTACK_HOST = "controller"#unchanged
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST#add new
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
--------------

具体影响,OpenStack离线Train版安装系列—8.控制节点-Horizon服务组件

(6)将myrole角色添加到myproject项目中和myuser用户
以下命令无返回,数据表操作不太明显

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

具体问题参考:具体影响,8.控制节点-Horizon服务组件
,亦可在上一步(5)的操作中,keystone创建的时候角色名称修改为_member_

(7)查看keystone实例相关信息

openstack endpoint list
openstack project list
openstack user list

三、验证操作keystone是否安装成功

1.去除环境变量

关闭临时认证令牌机制,获取 token,验证keystone配置成功

unset OS_AUTH_URL OS_PASSWORD
env |grep OS_
## 

2.作为管理员用户去请求一个认证的token

测试是否可以使用admin账户进行登陆认证,请求认证令牌

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
输入密码:admin

3.使用普通用户获取认证token

以下命令使用”myuser“用户的密码和API端口5000,只允许对身份认证服务API的常规(非管理)访问。

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
输入密码:myuser

四、创建OpenStack客户端环境变量脚本

Create OpenStack client environment scripts,上面使用环境变量和命令选项的组合通过“openstack”客户端与身份认证服务交互。
为了提升客户端操作的效率,OpenStack支持简单的客户端环境变量脚本即OpenRC 文件,我这里使用自定义的文件名

1.创建admin用户的环境管理脚本

cd
touch admin-openrc.sh
vim admin-openrc.sh
# 文件内容
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

2.创建普通用户myuser的客户端环境变量脚本

touch myuser-openrc.sh
vim myuser-openrc.sh
# 文件内容
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=myuser
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

3.测试环境管理脚本

source admin-openrc.sh
openstack token issuesource myuser-openrc.sh
openstack token issue

可以看到user_id和上面用命令获取到的是一样的,说明配置成功

五、keystone安装完毕

至此,控制节点的keystone认证服务组件完成安装与配置,使用VMware虚拟机的话,现在可以关机做快照。

这篇关于OpenStack离线Train版安装系列—3控制节点-Keystone认证服务组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147924

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

java如何通过Kerberos认证方式连接hive

《java如何通过Kerberos认证方式连接hive》该文主要介绍了如何在数据源管理功能中适配不同数据源(如MySQL、PostgreSQL和Hive),特别是如何在SpringBoot3框架下通过... 目录Java实现Kerberos认证主要方法依赖示例续期连接hive遇到的问题分析解决方式扩展思考总

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MySql9.1.0安装详细教程(最新推荐)

《MySql9.1.0安装详细教程(最新推荐)》MySQL是一个流行的关系型数据库管理系统,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库,本文介绍MySql9.1.0安装详细教程,... 目录mysql介绍:一、下载 Mysql 安装文件二、Mysql 安装教程三、环境配置1.右击此电脑

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构