【OpenStack(Train版)安装部署(二)】之Controller节点安装Keystone服务

CentOS 7 部署 OpenStack Train:解决 3 个关键依赖冲突与 MariaDB 10.3 配置优化 本文详细介绍了在CentOS 7上部署OpenStack Train本的关键步骤,包括解决Python 2与Python 3的兼容性问题、处理依赖包冲突以及优化MariaDB 10.3配置。通过实战案例和性能调优建议,帮助用户在高并发场景下提升OpenStack的稳定性和性能。 阅读详情

本文章由公号【开发小鸽】发布!欢迎关注!!!


老规矩–妹妹镇楼:

(一)安装Keystone认证服务

1.创建keystone数据库并授权

登录root用户

mysql -uroot 	

创建数据库keystone

CREATE DATABASE keystone; 	

给keystone数据库的所有表赋予权限,keystone用户在本地命令行或远程登录模式下有所有权限,注意密码是‘KEYSTONE_DBPASS’

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS'; 	
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';

2. 安装keystone软件包

        keystone软件包名是openstack-keystone,安装httpd和mod_wsgi的原因是,社区主推的组合是apache+keystone。

        openstack-keystone本质就是一款基于wsgi协议的web app,而httpd本质就是一个兼容wsgi协议的web server,所以我们需要为httpd安装mod_wsgi模块

[root@controller ~]# yum install openstack-keystone httpd mod_wsgi

3. 修改配置文件

        复制keystone的配置文件到.bak文件中

cp -a /etc/keystone/keystone.conf{,.bak} 	

        从.bak文件中搜索出相应的配置信息到conf文件中,精简conf配置文件

grep -Ev "^$|#" /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf

        安装openstack-utils工具

[root@controller ~]# yum install -y openstack-utils	

        让openstack-keystone能够知道如何连接到后端的数据库keystone;

        mysql+pymysql:pymysql是一个python库,使用python可以操作mysql原生sql;

        在keystone配置文件中设置keystone数据库连接的密码(具体可以查询keystone.conf配置文件),其实就是修改keystone.conf配置文件。

        格式: 用户名:密码@mysql地址/哪个库

        注意在mysql数据库中创建密码的时候加上了引号“123”而在配置文件中不要加上引号,不然会报错。

        注意,地址写IP地址,不要写controller

[root@controller ~]# openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@192.168.112.146/keystone

        在keystone配置文件中设置token令牌

[root@controller ~]# openstack-config --set /etc/keystone/keystone.conf token provider fernet

        可能有的时候大家在部署的时候会遇到报错,怎么办,各位遇到了不要慌,在log日志中查看报错的问题是什么。

tail -f -n 20 /var/log/keystone/keystone.log

4. 填充数据库

        su命令即作为root执行命令,-s 表示运行shell,-c表示运行shell命令,最后的keystone表示keystone用户。

        这条命令的作用就是初始化数据库,之所以要初始化,是因为python的orm对象关系映射,需要初始化来生成数据库表结构。什么是orm(Object Relation Mapping)的缩写叫对象关系映射。

[root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone

        在这一步之后,去keystone数据库查看,如果数据库初始化成功会生成很多数据表:

在这里插入图片描述

        初始化Fernet密钥存储库 这是新版本的OpenStack的新功能,在Train版本下,keystone不再使用简单的字符串作为临时token,而是使用下面创建的fernet的用户来运行keystone。同时,keystone也不再对管理员用户和普通用户的服务端点区分使用不同的端口5000和35357,而是只使用5000端口不再使用35357端口。

[root@controller ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
[root@controller ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

        上面的两个步骤是keystone对自己授权的一个过程,创建了一个keystone用户与一个keystone组。并对这个用户和组授权。因为keystone是对其他组件认证的服务,那么它自己就合格么?所以它先要对自己进行一下认证。

5.修改apache配置

修改主机名,方便操作

hostnamectl set-hostname controller

配置hosts

192.168.112.146 controller

修改httpd服务器配置

[root@controller ~]# echo "ServerName controller" >> /etc/httpd/conf/httpd.conf

        创建wsgi配置文件软链接 ,为mod_wsgi模块添加配置文件,直接拷贝模块文件或者做软连接都可以,
        wsgi:apache关于mod_wsgi模块的配置文件
        keystone:用来连接keystone

[root@controller ~]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

        wsgi-keystone.conf文件中的500端口说明keystone要开放这个端口,apache才能把请求交给keystone

启动和开机自启动apache

[root@controller ~]# systemctl enable httpd.service 
[root@controller ~]# systemctl start httpd.service

6.初始化keystone(本质就是在为keystone创建catalog)

注意,将controller都修改为IP地址

        接下来就是初始化keystone的操作,官方最新给出了一个框架叫做Bootsrap能够直接完成初始化操作:

[root@controller ~]# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ #设置keystone对自己进行认证的密码
--bootstrap-admin-url http://192.168.112.146:5000/v3/ \	#admin用户访问的端点
--bootstrap-internal-url http://192.168.112.146:5000/v3/ \	#内部访问的端点
--bootstrap-public-url http://192.168.112.146:5000/v3/ \	#外部访问的端点
--bootstrap-region-id RegionOne

        为keystone创建catalog,基于前两步给的权限,创建认证服务实体,基于建立的服务实体,创建访问该实体的三个api端点:public, internal, admin三个端点,用于外部,内部以及admin用户访问。
        可以从keystone数据库中查看当前keystone的各种信息,如当前的Keystone service服务ID:
在这里插入图片描述

也可以查询出当前keystone的所有endpoint端点:
在这里插入图片描述

        可以看见上面三个端点的service_id一样,且和之前我们查询出来的一样,则说明他们是属于一个服务的Endpoint 。

7.初始化环境变量

        在openstack中最大的资源集合就是域—>项目(租户)—>用户—>角色

创建一个默认的域“default” ;
创建admin项目 在“default”域中;
创建admin用户 在“default”域中;
创建admin角色;
创建上述三者的关联,不关联用户无法使用

同样,要将controller转换为IP地址

配置当前的环境变量:

[root@controller ~]# cat >> ~/.bashrc << EOF
export OS_USERNAME=admin 
export OS_PASSWORD=ADMIN_PASS 	#就是keystone-manage中设定的--bootstrap-password
export OS_PROJECT_NAME=admin 	#项目名 project <-- 用户 <--角色  若想让用户获取权限必须要指定用户所在的项目是哪个
export OS_USER_DOMAIN_NAME=Default 	#默认域
export OS_PROJECT_DOMAIN_NAME=Default 	#项目所在的域
export OS_AUTH_URL=http://192.168.112.146:5000/v3 #认证url
export OS_IDENTITY_API_VERSION=3 #指定版本信息为3
EOF

source命令用法

source FileName

source命令作用
        在当前bash环境下读取并执行FileName中的命令。
        *注:该命令通常用命令“.”来替代。

读取刚刚更新的.bashrc文件

[root@controller ~]# source ~/.bashrc  

验证初始化操作成功:
在这里插入图片描述

        查询所有的角色role,可以看到,当前有三种角色。:
在这里插入图片描述

        查询当前的角色role分配:
在这里插入图片描述

        可以看到,当前只有admin用户进行了分配,分配给了用户尾号为1c2bed的用户。

        查询当前所有的用户user:
在这里插入图片描述

        可以看到,与上面查询role分配是匹配的,只有一个尾号为1c2bed的用户admin。

        这些数据都是从keystone数据库中查询出来的,对应着keystone数据库中的多个表,分别是role表,user表,project表等。


8.创建测试用项目,角色,用户

        创建用于后期测试用的项目,用户,租户,建立关联 
        创建项目名为demo

openstack project create --domain default \
  --description "Demo Project" demo

在这里插入图片描述

        创建普通用户为demo 设置密码为123

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

之后会提示设置密码,设置密码为123
在这里插入图片描述

        创建普通用户的角色user

openstack role create user

在这里插入图片描述

        建立 项目demo,用户demo,角色user的关联:

openstack role add --project demo --user demo user 

        查询角色的分派情况:
在这里插入图片描述

        可以看到多了一个角色分派,角色尾号为fc96e5,用户尾号为a4902d;
        继续查询角色list:
在这里插入图片描述

        可以看到,user角色的尾号为fc96e5,因此就是user角色的分派。

        注意,每次创建一个用户的过程都是这几个步骤。但是会少了一步创建角色的过程。因为用户就两个,一个是admin,另一个就是user(一个项目里可以有很多admin角色和user角色)注意.角色一定是在项目中。

9.创建后续组件测试的项目service

        因为keystone是一个独立的授权组件,后面每搭建一个新的服务都需要在keystone中执行四种操作:1.建项目 2.建用户 3.建角色 4.做关联 并且创建catalog。

        这里将后面所有的服务(nova。glace等等)公用一个项目service,都是管理员角色admin(组件之间的通信都角色都是admin)。

        每一个组件,都要有一个访问用户,比如访问glance要有一个glance用户,还有一个角色,还要有一个关联。以后要部署glance,要在keystone中创建一个glance的catalog(service名/Endpoint)。还要有一个访问catalog的用户信息,这样的话还要创建一个域。但是现在已经有了一个默认的域 所以不需要再创建,域有了还要创建一个项目,但是现在项目也已经有了,service项目,所以不用创建了。只需要创建一个叫glance的用户就行了(一般组件叫什么名,用户就叫什么名)。还要创建一个角色,但是现在也不用创建,之前就有一个admin角色,使用admin用户就行。最后就只要做一个关联,以后每个组件都要这么做,就是说学会了keystone的部署,后面的组件也就部署好了

创建项目service:

openstack project create --domain default --description “Service Project” service  

在这里插入图片描述

查看当前的项目:
在这里插入图片描述


9.为各种用户申请令牌token

        管理员用户admin申请token,这里不需要加上admin用户的密码ADMIN_PASS

openstack --os-auth-url http://192.168.112.146:5000/v3 \
--os-identity-api-version 3  \
--os-project-domain-name default \
--os-user-domain-name default   \
--os-project-name admin \
--os-username admin \
token issue

在这里插入图片描述

项目是admin项目;
用户是admin;
令牌token的ID就是生成的;

        为普通用户demo申请token,注意这里我们之前为demo用户配置了密码123,因此需要加上配置项:

openstack --os-auth-url http://192.168.112.146:5000/v3 \
--os-identity-api-version 3  \
--os-project-domain-name default \
--os-user-domain-name default   \
--os-project-name demo \
--os-username demo \
--os-password 123 \
token issue

在这里插入图片描述

10.为不同用户定义用户信息脚本

        Linux export 命令用于设置或显示环境变量。

        在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。

        定义好用户信息脚本之后,将对应用户执行对应用户的信息脚本,则该次登录的环境信息就是用户信息脚本中的信息,在执行openstack token issue时就可以直接调用了,不需要传入上面那么多的参数了。

        对于admin用户,在root用户目录下/root创建admin.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_PASS
export OS_AUTH_URL=http://192.168.112.146:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

        对于demo用户,在root用户目录/root中创建demo.sh脚本:

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=123
export OS_AUTH_URL=http://192.168.112.146:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

        针对不同的业务应该有不同的用户信息,也都应该定义成脚本形式,方便管理

OpenStack节点企业私有云平台实施文档 本文详细介绍了OpenStack节点手工部署方案。项目基于三节点环境(控制节点、计算节点和存储节点),从基础环境配置开始,包括主机名设置、网络配置、时间同步等;随后依次部署Keystone认证服务、Glance镜像服务、Nova计算服务、Neutron网络服务、Dashboard界面和Cinder块存储服务部署过程涵盖了数据库创建、用户授权、服务配置、组件安装及验证测试等关键步骤,完整呈现了OpenStack核心组件的安装流程。该方案通过分布式部署各组件服务,实现了计算资源的横向扩展,为生产环境提供了 阅读详情

相关推荐

OpenStack Nova手动部署:从控制平面到计算节点的全链路解析

OpenStack Nova是IaaS层核心计算服务,其本质是一组协同工作的Linux进程构成的分布式控制平面。理解Nova需掌握RPC通信、服务分层(api/scheduler/conductor/compute)与数据流向,而非仅依赖一键脚本。手动部署过程强制暴露底层原理:如nova-conductor隔离数据库访问以提升安全性,nova-scheduler依赖Placement API获取资源提供者(RP)实时状态,而计算节点则深度绑定libvirt、KVM与QEMU。该实践直击云基础设施的认知断层,

weixin_30715523的博客 319

OpenStackTrain安装部署(五)】之Nova服务Controller节点和Compute节点部署

文章目录本文章由公号【开发小鸽】发布!欢迎关注!!!(一)Nova子服务节点分配()Nova子服务Controller节点部署1. 创建数据库并授权2. 创建nova用户3. 向nova用户添加admin角色4. 创建nova服务实体5. 给Nova服务关联endpoint(端点)6.Controller节点需要安装的nova子服务7. 修改nova.conf配置文件8. 填充nova-api数据库9.注册cell0数据库10. 启动计算服务nova并将其配置为开机自启11.检测nova服务启动情况(三)

开发小鸽 2978

Android HWC硬件合成器实战:从SurfaceFlinger到显示驱动的完整流程解析

本文深入解析Android HWC硬件合成器从SurfaceFlinger到显示驱动的完整流程,揭示HWC如何优化图形性能并降低功耗。通过实战案例和调试技巧,帮助开发者掌握硬件加速的图层混合技术,提升移动设备的显示效率。

gaochao的博客 476

OpenStack基础平台部署

网络接口1设置为外部网络,作为云主机通信和管理使用,网络接口2设置为内部网络,主要为云主机提供一个网卡设备。登录Dashboard页面,在左侧菜单栏中选择“项目→计算→实例”,单击“创建实例”按钮,输入实例名称cirros,默认可用域为nova,数量为1,单击“下一步”按钮,创建步骤如图4所示。执行完上面的脚本后,在compute节点执行脚本部署Nova组件的计算服务,这样就将compute节点的CPU、内存及磁盘资源添加到OpenStack平台的资源池中了。

zimoqin的博客 1430

OpenStackTrain安装部署(六)】之Neutron服务Controller节点和Compute节点部署

文章目录本文章由公号【开发小鸽】发布!欢迎关注!!!(一) Controller节点安装Neutron服务1.创建neutron数据库并授权 (Controller节点)2. 创建neutron用户3. 向neutron用户添加admin角色4. 创建neutron服务实体5. 创建neutron服务端点6. 安装软件包{配置层网络}7. 修改 neutron 配置文件(1)neutron server的配置文件neutron.conf(2)ML2 plugin的配置文件ml2_conf.ini(3)li

开发小鸽 2006

云计算|OpenStack|社区OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky

初始化keystone认证服务 1)创建 keystone 用户,初始化的服务实体和API端点 # 在之前的本(queens之前),引导服务需要2个端口提供服务(用户5000和管理35357),本本通过同一个端口5000提供服务.这个优化非常nice,减少了很多出错几率 # 创建keystone服务实体和身份认证服务,以下三种类型分别为公共的、内部的、管理的。

zsk_john的技术分享专用博客 2279

云计算平台OPENSTACK-IAAS服务搭建-双节点【详解】

目录 OPENSTACK平台基础架构 步骤 1.搭建虚拟机: 2.IAAS搭建流程第一步 基础搭建OPENSTACK平台基础架构 本来要搭建4节点,控制节点,网路节点,计算节点,存储节点,但是。。。。。此次搭建使用双节点测试,更多集群部署请自行增加即可。 步骤 openstack平台基础架构 1.搭建虚拟机: 2.IAAS搭建流程 Controller搭建 Compute:(2核,8G) 组件部署 controller .

weixin_67553250的博客 2万+

OpenStack Train部署

基础环境 1.1 主机名&ip IP地址 主机名 配置 10.0.0.11 controller 4C8G 10.0.0.31 compute01 4C8G 1.2 ntp时间同步 [root@controller ~]# yum install chrony -y [root@controller ~]# vim /etc/chrony.conf allow 10.0.0.0/24 [root@controller ~]# systemctl restart chronyd.service .

qq_40055558的博客 1655

OpenStack Train 部署实战:从零构建多节点私有云

本文详细介绍了OpenStack Train本在多节点私有云环境中的部署实战,包括硬件规划、操作系统配置、核心服务部署及生产环境优化建议。通过实际案例和关键配置示例,帮助用户从零开始构建稳定高效的OpenStack私有云平台,特别强调了时区设置、时钟同步和服务验证等易错环节。

796

OpenStack Train节点部署实战:3节点(1控制+2计算)环境搭建与核心服务验证

本文详细介绍了OpenStack Train本在多节点环境下的生产级部署实战,包括1控制节点+2计算节点的架构设计、核心服务Keystone、Nova、Neutron)的配置与优化,以及部署后的验证与排错方法。通过本指南,读者可以掌握OpenStack Train的高可用部署技巧,适用于企业级云计算环境搭建

dianzongfan5428的博客 430

centos7.9上部署openstack(train)——2. Identity--keystone

本文详细介绍了在 OpenStack Train 环境中部署 Keystone(标识服务)的完整流程。内容涵盖 Keystone 的核心概念(如用户、项目、角色、域、端点与令牌)、认证机制及服务目录作用,并逐步演示了在 Controller 节点安装配置 Keystone:包括创建数据库、安装组件、配置 Apache 与 Fernet 令牌、初始化服务,以及通过命令行创建域、项目、用户和角色。

qq_40567491的博客 475

centos7.9部署节点Topenstack

centos7.9快速部署Topenstack,根据文档操作0出错

amdongfangjibai的博客 1295

OpenStack Train节点部署实战:CentOS 7.5 环境 10 大核心服务一键脚本安装

本文详细介绍了在CentOS 7.5环境下使用自动化脚本快速部署OpenStack Train本双节点架构的完整流程,涵盖10大核心服务安装与配置。通过实战指南,帮助用户高效搭建私有云平台,包括环境规划、网络配置、基础服务安装及性能优化等关键步骤,为构建企业级云平台提供可靠解决方案。

weixin_30843121的博客 268

2024年Linux最全① OpenStack高可用集群部署方案设计(train)(1)

1] 8255#重启controller01节点;并在启动前删除contrller01节点之前的数据#注意以system unit方式启动mariadb服务时的权限。

2301_77033340的博客 1403

OpenStack Nova手动安装配置实战:控制节点部署详解

Nova是OpenStack计算服务的核心组件,负责虚拟机调度、生命周期管理和资源协调。其工作原理基于REST API接入、消息队列异步通信、数据库状态持久化与多进程协同(api/scheduler/conductor/novncproxy)四大机制。掌握Nova的手动安装与配置,不仅能深入理解云平台底层资源编排逻辑,更能提升私有云运维、高可用加固及故障根因定位能力。典型应用场景包括金融、政务等对稳定性与可审计性要求严苛的生产环境,以及OpenStack次开发与定制化集成项目。本文聚焦于CentOS 8

weixin_30430169的博客 314

基于centos7.8 ____openstack ____(train)手动部署.keystone

KEYSTONE服务安装配置(controller

qq_37692227的博客 393

centos7.9上部署openstack(train)——5. Compute--nova

本文详细记录了 OpenStack Train 环境中 Nova 计算服务部署过程。作为 OpenStack 最核心的服务,Nova 负责虚拟机生命周期管理,依赖 Keystone、Glance、Placement 等组件协同工作。文章分步演示了在 Controller 节点创建 nova 相关数据库(nova_api、nova、nova_cell0)、注册服务用户与 API 端点,安装 nova-api、scheduler、conductor 等组件并完成多数据库同步与 cell 注册

qq_40567491的博客 437

基于centos2009搭建openstack-t-ovs网络-脚本运行

基于centos2009搭建openstack-T,网络采用ovs,支持单节点脚本部署以及多节点

m0_56363537的博客 998

OpenStack Train部署实战:从零创建第一台虚拟机实例

云计算平台的核心能力之一是按需提供虚拟机实例,这背后涉及资源调度、虚拟化与软件定义网络等关键技术。OpenStack作为开源的IaaS云操作系统,通过Nova、Neutron、Glance等组件协同工作,实现了对计算、网络、存储资源的统一管理与交付。其技术价值在于为企业构建私有云或混合云提供了标准化、可扩展的解决方案,广泛应用于开发测试环境、Web应用托管和大数据处理等场景。本文聚焦OpenStack Train本,详细解析创建虚拟机实例的完整流程,涵盖镜像上传、网络配置、安全组设置等关键步骤,并深入探讨

weixin_34391445的博客 522
上一篇: 【OpenStack(Train版)安装部署(一)】之控制节点、计算节点环境部署
下一篇: 【OpenStack(Train版)安装部署(三)】之Glance服务环境部署
Harmony_Launch
博客等级 码龄8年 2万+粉丝 510原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值