news 2026/5/20 8:02:52

安装部署Keystone

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
安装部署Keystone

一、以下命令安装了Keystone组件的必要软件包。
[root@controller ~]# yum -y install openstack-keystone httpd mod_wsgi

二、MariaDB数据库配置
[root@controller ~]# mysql -uroot -p000000
查看当前已有数据库: show databases;

第2步,新建“keystone”数据库。
MariaDB [(none)]> CREATE DATABASE keystone;

第3步,给用户授权使用新建数据库。
GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@‘localhost’ IDENTIFIED BY ‘000000’;
GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@‘%’ IDENTIFIED BY ‘000000’;

三、配置Keystone

(1)打开配置文件
[root@controller ~]# vi /etc/keystone/keystone.conf

(2)编辑配置文件
第1步,修改“[database]”部分实现与数据库连接。
connection = mysql+pymysql://keystone:000000@controller/keystone
以上代码配置数据库连接信息,用“keystone”用户和密码“000000”去连接“controller”主机中的名为“keystone”的数据库。

PS: 输入 / 或?加 关键字 进行查看,然后按 n(上一个) 或 N(shift + n下一个)进行切换,如: /[database] 或 ?[database]

第2步,修改“[token]”部分配置令牌的加密方式。
provider = fernet
“Fernet Token”是一种令牌加密格式。一个“Fernet Token”是一个很长的字符串,在这个字符串中存储了被加密的用户信息、权限信息、过期时间信息等。

Keystone安装文件提供了数据库的基础表数据,此时还没有将数据导入“keystone”数据库中,需要手动将数据同步导入数据库中。
[root@controller ~]# su keystone -s /bin/sh -c “keystone-manage db_sync”
“su keystone”:su命令用于用户切换。这里切换到“keystone”用户,该用户已经拥有对“keystone”数据库的管理权限。
“-s /bin/sh”:-s为su命令的选项,指定用什么编译器(Shell)来执行命令,“/bin/sh”就是指定的编译器。
“-c”:su命令的选项,在其后引号内的是具体执行的命令。“keystone-manage db_sync”
实现了数据同步到数据库。

先验证原来的 keystone 数据库

同步后

以下命令将自动创建“/etc/keystone/fernet-keys/”目录,并在目录下生成两个Fernet密钥。这两个密钥用于加密和解密令牌。
[root@controller ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

以下命令将自动创建“/etc/keystone/credential-keys/”目录,并在目录下生成两个Fernet密钥。这两个密钥用于加密解密用户凭证。
[root@controller ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

用“keystone-manage bootstrap”命令给“admin”用户初始化登录凭证,以后登录时出示凭证与此比对就可以进行认证。
[root@controller ~]# keystone-manage bootstrap --bootstrap-password 000000 --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

先验证

四、配置Web服务
(1)给Apache服务器增加WSGI支持
[root@controller ~]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
该命令将“wsgi-keystone.conf”文件软链接到“/etc/httpd/conf.d/”目录。

(2)修改Apache服务器配置并启动Apache服务
由于Keystone本质上是一个Web应用,因此要借助Web服务器运行。Apache服务器的配置文件为“/etc/httpd/conf/httpd.conf”。
[root@controller ~]# vi /etc/httpd/conf/httpd.conf
修改“ServerName”的值为Web服务所在的域名或IP地址。
ServerName controller

(3)重启Apache服务
首先,设置开机重启Apache服务。
[root@controller ~]# systemctl enable httpd
然后,立即启动Apache服务。
[root@controller ~]# systemctl start httpd

报错:

永久解决办法: vim /etc/selinux/config

临时解决办法:setenforce 0

五、模拟登录验证——创建初始化环境变量文件
创建初始化环境变量文件
[root@controller ~]# vi admin-login
export OS_USERNAME=admin
export OS_PASSWORD=000000
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 OS_IMAGE_API_VERSION=2

有了身份凭证文件后,通过如下方法将它导入环境变量中。
[root@controller ~]# source admin-login 或者 . admin-login

然后可以用以下方法查看现有环境变量。
[root@controller ~]# export -p
declare -x OS_AUTH_URL=“http://controller:5000/v3”
declare -x OS_IDENTITY_API_VERSION=“3”
declare -x OS_IMAGE_API_VERSION=“2”
declare -x OS_PASSWORD=“000000”
declare -x OS_PROJECT_DOMAIN_NAME=“Default”
declare -x OS_PROJECT_NAME=“admin”
declare -x OS_USERNAME=“admin”
declare -x OS_USER_DOMAIN_NAME=“Default”

验证

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 8:01:19

Kubernetes持久化卷声明:管理容器数据持久化

Kubernetes持久化卷声明:管理容器数据持久化 一、持久化卷声明概述 1.1 持久化卷声明的定义 持久化卷声明(PersistentVolumeClaim,PVC)是Kubernetes中用于请求持久化存储资源的对象。它允许Pod动态或静态地获取存储资源&#xff0…

作者头像 李华
网站建设 2026/5/20 8:01:01

RTX 40系列显卡需求强劲:技术迭代与AI应用驱动市场复苏

1. 市场拐点与行业观察最近和几个做显卡渠道的朋友聊天,发现一个挺有意思的现象:仓库里积压的RTX 40系列显卡,特别是RTX 4070 Super、RTX 4080 Super这些型号,走货速度明显快了起来。一些热门型号甚至又回到了“预约排队”的状态。…

作者头像 李华
网站建设 2026/5/20 8:00:58

基于i.MX8与QT+OpenGL ES的汽车虚拟仪表开发实战

1. 项目概述:从机械指针到数字灵魂的跨越如果你最近几年关注过新车,尤其是新能源车,会发现一个显著的变化:车内那块显示车速、转速的仪表盘,正变得越来越像一块精致的平板电脑。从特斯拉Model S那块17英寸的巨屏开始&a…

作者头像 李华
网站建设 2026/5/20 8:00:15

麒麟座开发板OneNET接入实战:从基础例程到RTOS产品级应用

1. 项目概述:从零到一,拆解麒麟座开发板的OneNET接入实战作为一名在嵌入式物联网领域摸爬滚打了十来年的老工程师,我经手过的开发板少说也有几十款。今天想和大家深入聊聊中移物联网的麒麟座开发板,特别是它如何与OneNET平台进行对…

作者头像 李华
网站建设 2026/5/20 7:57:18

别再只盯着AB相了!三引脚EC35编码器在智能面板上的应用与防误触设计

三引脚EC35编码器在智能面板设计中的创新应用与抗干扰实践 旋钮交互在智能家居和工业HMI领域从未失去它的魅力——当用户手指触碰到那个精致的金属环时,物理反馈带来的确定感是纯触控界面无法替代的。但传统AB相编码器的误触发问题长期困扰着产品设计师:…

作者头像 李华