当前位置: 首页 > news >正文

2.1 欧拉集群安装Keystone认证服务

文章目录

  • 1. 欧拉集群
    • 1.1 集群拓扑
    • 1.2 查看主机名
    • 1.3 查看IP地址
    • 1.4 查看映射文件
    • 1.5 查看防火墙状态
    • 1.6 检测集群互通性
  • 2. 任务描述
  • 3. 任务实施
    • 3.1 安装与配置Keystone
      • 3.1.1 安装Keystone软件包
      • 3.1.2 创建Keystone数据库并授权
      • 3.1.3 修改Keystone配置文件
      • 3.1.4 初始化Keystone数据库
    • 3.2 Keystone组件初始化
      • 3.2.1 初始化Fernet密钥库
      • 3.2.2 初始化Credential密钥库
      • 3.2.3 初始化用户身份认证信息
      • 3.2.4 配置Web服务
    • 3.3 模拟登录验证
      • 3.3.1 创建初始化环境变量文件
      • 3.3.2 导入环境变量进行验证
    • 3.4 检测Keystone服务
      • 3.4.1 获取 Token(最基础验证)
      • 3.4.2 创建与查阅项目列表
      • 3.4.3 创建角色与查询角色列表
      • 3.4.4 创建域与查看域列表
      • 3.4.5 创建用户与查看用户列表
  • 4. 实战总结

1. 欧拉集群

1.1 集群拓扑

  • Euler01 - 主控节点,Euler02和Euler03 - 从节点
    在这里插入图片描述

1.2 查看主机名

  1. 查看Euler01节点主机名,执行命令:hostname
    在这里插入图片描述
  2. 查看Euler02节点主机名,执行命令:hostname
    在这里插入图片描述
  3. 查看Euler03节点主机名,执行命令:hostname
    在这里插入图片描述

1.3 查看IP地址

  1. 查看Euler01节点IP地址,执行命令:ip addr
    在这里插入图片描述

  2. 查看Euler02节点IP地址,执行命令:ip addr
    在这里插入图片描述

  3. 查看Euler03节点IP地址,执行命令:ip addr
    在这里插入图片描述

1.4 查看映射文件

  1. 查看Euler01节点映射文件,执行命令:cat /etc/hosts
    在这里插入图片描述

  2. 查看Euler02节点映射文件,执行命令:cat /etc/hosts
    在这里插入图片描述

  3. 查看Euler03节点映射文件,执行命令:cat /etc/hosts
    在这里插入图片描述

1.5 查看防火墙状态

  1. 查看Euler01节点防火墙状态,执行命令:systemctl status firewalld
    在这里插入图片描述

  2. 查看Euler02节点防火墙状态,执行命令:systemctl status firewalld
    在这里插入图片描述

  3. 查看Euler03节点防火墙状态,执行命令:systemctl status firewalld
    在这里插入图片描述

1.6 检测集群互通性

  1. 测试主节点Euler01到三个节点的连通性
    • 执行命令:ping euler01
      在这里插入图片描述
    • 执行命令:ping euler02
      在这里插入图片描述
    • 执行命令:ping euler03
      在这里插入图片描述
  2. 测试从节点Euler02到三个节点的连通性
    • 执行命令:ping euler01
      在这里插入图片描述

    • 执行命令:ping euler02
      在这里插入图片描述

    • 执行命令:ping euler03
      在这里插入图片描述

  3. 测试从节点Euler03到三个节点的连通性
    • 执行命令:ping euler01
      在这里插入图片描述

    • 执行命令:ping euler02
      在这里插入图片描述

    • 执行命令:ping euler03
      在这里插入图片描述

2. 任务描述

  • 本次任务在欧拉集群主节点Euler01上安装配置Keystone服务,用于提供身份认证、授权和服务目录功能。通过部署Keystone,实现对OpenStack各组件的统一用户管理与安全访问控制,为云平台提供核心的身份验证服务。

  • 为了避免接下来的工作中由于操作不当而造成需要重装系统的情况发生,需要将前期工作拍摄快照保存。由于本次任务只在主节点上实施,因此仅需要给主节点拍摄快照。
    在这里插入图片描述

  • 单击【拍摄快照(T)…】菜单项,在弹出的对话框里设置快照名称和描述
    在这里插入图片描述

  • 单击【拍摄快照(T)】按钮,再次打开快照菜单,你会看到刚才我们拍摄的快照
    在这里插入图片描述

  • 打开快照管理器
    在这里插入图片描述

  • 选中我们刚才生成的快照
    在这里插入图片描述

  • 如果过段时间,系统想恢复到今天的快照
    在这里插入图片描述

  • 单击【恢复到快照……】菜单项,弹出消息框询问
    在这里插入图片描述

  • 单击【是(Y)】按钮,虚拟机状态开始恢复到快照
    在这里插入图片描述

3. 任务实施

3.1 安装与配置Keystone

3.1.1 安装Keystone软件包

  • 执行命令:yum -y install openstack-keystone httpd mod_wsgi
    在这里插入图片描述
  • 命令说明:该命令使用 yum 安装 OpenStack Keystone 服务及依赖组件:openstack-keystone 提供身份认证功能,httpd 作为 Web 服务器承载服务,mod_wsgi 使 Apache 能运行 Python 应用,三者结合实现高可用的 Keystone 身份验证服务。
  • 在安装openstack-keystone软件包时,会自动创建名为keystone的Linux用户及同名用户组。
  • 执行命令:cat /etc/passwd | grep keystone,查看keystone用户信息
    在这里插入图片描述
  • 执行命令:cat /etc/groupd | grep keystone,查看keystone用户组信息
    在这里插入图片描述

3.1.2 创建Keystone数据库并授权

  1. 进入MariaDB数据库客户端
    • 执行命令:mysql -uroot -p903213
      在这里插入图片描述
  2. 新建keystone数据库
    • 执行命令:create database keystone;
      在这里插入图片描述
  3. 给用户授权使用keystone数据库
    • 执行命令:grant all privileges on keystone.* to 'keystone'@'localhost' identified by '903213';,将keystone数据库的管理权限授予本地登录用户
      在这里插入图片描述
    • 执行命令:grant all privileges on keystone.* to 'keystone'@'%' identified by '903213';,将keystone数据库的管理权限授予远程登录用户
      在这里插入图片描述
    • 结果说明:已为keystone数据库用户分配权限:首先授予本地访问权限('keystone'@'localhost'),随后扩展为允许从任意主机连接('keystone'@'%'),确保Keystone服务在集群中可远程访问数据库,保障身份认证系统的正常运行。
  4. 退出MariaDB客户端
    • 执行命令:quit
      在这里插入图片描述

3.1.3 修改Keystone配置文件

  • 执行命令:mv /etc/keystone/keystone.conf /etc/keystone/keystone.conf.bak,备份配置文件
    在这里插入图片描述

  • 执行命令:vim /etc/keystone/keystone.conf
    在这里插入图片描述

    [DEFAULT]
    debug = true
    log_dir = /var/log/keystone[database]
    connection = mysql+pymysql://keystone:903213@euler01/keystone
    idle_timeout = 60
    max_pool_size = 10
    max_overflow = 20
    retry_interval = 3
    max_retries = 5[token]
    provider = fernet
    expiration = 3600[fernet_tokens]
    key_repository = /etc/keystone/fernet-keys/
    max_active_keys = 3[identity]
    driver = sql[assignment]
    driver = sql[credential]
    driver = sql
    key_repository = /etc/keystone/credential-keys/[revoke]
    driver = sql[cache]
    enabled = true
    backend = dogpile.cache.memcached
    backend_argument = url:euler01:11211
    expiration_time = 3600[memcache]
    servers = euler01:11211
    dead_retry = 30[paste_deploy]
    config_file = keystone-paste.ini
    
  • 配置说明:该配置文件用于部署 OpenStack Keystone 服务,核心包括:连接 MySQL 数据库(euler01)、使用 Fernet 令牌机制、配置身份与角色管理驱动为 SQL,并启用 Memcached 缓存提升性能,通过 WSGI 模式由 Apache 托管服务,适用于控制节点集中部署的典型 OpenStack 环境。

3.1.4 初始化Keystone数据库

  1. keystone-manage命令常见操作及说明

    命令说明使用场景
    keystone-manage db_sync同步数据库模式,创建或更新表结构首次部署或升级后必须执行
    keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone初始化 Fernet 密钥目录并生成密钥首次部署 Keystone 前执行
    keystone-manage credential_setup --keystone-user keystone --keystone-group keystone初始化凭证(credential)加密密钥启用联邦身份认证前执行
    keystone-manage bootstrap --bootstrap-password PASSWORD ...引导初始化管理员用户、服务、端点和区域首次部署时创建基础身份数据
    keystone-manage doctor检查 Keystone 配置与环境健康状态排查启动失败或配置错误
    keystone-manage mapping_purge --all--domain DOMAIN清理 LDAP 映射缓存修改映射规则后清理旧数据
    keystone-manage token_flush清除过期令牌(仅适用于 SQL 后端)手动清理令牌表以释放空间
    keystone-manage provider_rcache_setup为资源提供者设置读取缓存(Placement 相关)使用 Placement 服务时优化性能

    💡 提示:所有命令建议以 keystone 用户运行,如使用 su keystone -s /bin/sh -c "keystone-manage xxx"

  2. 同步数据库

    • 执行命令:su keystone -s /bin/sh -c "keystone-manage db_sync"
      在这里插入图片描述
    • 命令说明:该命令以 keystone 用户身份执行数据库同步,将 Keystone 的数据模型(如用户、项目、角色等)初始化到配置的数据库中。su 切换用户确保权限安全,-s /bin/sh -c 指定执行 shell 命令,是部署 Keystone 时必需的关键步骤。
  3. 检查数据库

    • 执行命令:mysql -uroot -p903213,进入MariaDB客户端
      在这里插入图片描述
    • 执行命令:use keystone;,切换到keystone数据库
      在这里插入图片描述
    • 执行命令:show tables;,查看数据库中的表,以此检验数据库同步是否成功
      在这里插入图片描述
      在这里插入图片描述
    • 可以看到,数据库同步成功,里面有49张表

3.2 Keystone组件初始化

3.2.1 初始化Fernet密钥库

  • 执行命令:sudo -u keystone keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    在这里插入图片描述

  • 命令说明:该命令以 keystone 用户身份运行,初始化 Fernet 加密密钥,用于 Keystone 服务中令牌的加密存储,确保安全性和一致性。

  • 执行命令:ll /etc/keystone/fernet-keys
    在这里插入图片描述

  • 结果说明:Fernet密钥已成功生成,/etc/keystone/fernet-keys/目录下存在编号为01的密钥文件,权限为600,属主为keystone用户,表明密钥初始化完成,Keystone服务可正常进行令牌的加密与验证,为后续身份认证功能提供安全保障。

3.2.2 初始化Credential密钥库

  • 执行命令:sudo -u keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
    在这里插入图片描述

  • 命令说明:该命令以 keystone 用户身份初始化凭证(credential)密钥环,用于 OpenStack Keystone 服务中敏感数据的加密管理,确保凭证安全存储与多节点间的一致性,是部署高可用环境的必要步骤。

  • 执行命令:ll /etc/keystone/credential-keys
    在这里插入图片描述

  • 结果说明:凭证密钥已成功生成,/etc/keystone/credential-keys/目录下存在编号为01的密钥文件,权限为600,属主为keystone用户,表明credential加密机制初始化完成,Keystone可安全存储和处理联邦身份、OAuth等敏感凭证数据,保障系统安全性。

3.2.3 初始化用户身份认证信息

  • 执行命令:sudo -u keystone keystone-manage bootstrap --bootstrap-password 903213 --bootstrap-admin-url http://euler01:5000/v3 --bootstrap-internal-url http://euler01:5000/v3 --bootstrap-public-url http://euler01:5000/v3 --bootstrap-region-id RegionOne
    在这里插入图片描述

  • 命令说明:该命令用于初始化 Keystone 的基础身份数据,创建 admin 用户、服务实体及 API 端点(URL),并设置默认区域为 RegionOne。--bootstrap-password 设置管理员密码,各 URL 指定不同访问路径,是部署 OpenStack 时建立身份认证体系的关键步骤。

  • keystone-manage bootstrap命令各参数说明表

    参数说明示例值
    --bootstrap-password PASSWORD设置管理员(admin)用户的密码--bootstrap-password adminpass123
    --bootstrap-username USERNAME指定管理员用户名(默认为 admin--bootstrap-username cloudadmin
    --bootstrap-project-name PROJECT_NAME指定默认项目(租户)名称(默认为 admin--bootstrap-project-name system
    --bootstrap-domain-name DOMAIN_NAME指定管理用户所在域(默认为 default--bootstrap-domain-name system_domain
    --bootstrap-role-name ROLE_NAME指定管理员角色名称(默认为 admin--bootstrap-role-name sysadmin
    --bootstrap-service-name SERVICE_NAME指定 Keystone 服务在服务目录中的名称(默认为 keystone--bootstrap-service-name identity
    --bootstrap-admin-url URL设置管理员端点 URL(v3 API)http://controller:5000/v3/
    --bootstrap-internal-url URL设置内部端点 URL(内部服务调用)http://controller:5000/v3/
    --bootstrap-public-url URL设置公开端点 URL(外部访问)http://controller:5000/v3/
    --bootstrap-region-id REGION_ID设置服务所在的区域 ID(默认为 RegionOne--bootstrap-region-id Beijing

    ✅ 提示:所有 URL 应使用控制节点的主机名或 IP,且主机名需能被解析。首次部署时建议使用默认值,确保 admin 用户和 default 域正确初始化。

3.2.4 配置Web服务

  1. 为Apache服务器增加WSGI支持
    • 执行命令:ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
      在这里插入图片描述

    • 命令说明:该命令创建符号链接,将 Keystone 的 WSGI 配置文件 wsgi-keystone.conf 软链接到 Apache 的配置目录 /etc/httpd/conf.d/,使 Apache 能加载 Keystone 服务。这是在 RHEL/CentOS 系统中启用 Keystone 通过 HTTP 提供身份认证 API 的关键步骤。

  2. 修改Apache配置文件
    • 执行命令:vim /etc/httpd/conf/httpd.conf
      在这里插入图片描述
    • 配置说明:已配置 Apache 的 ServerNameeuler01:80,确保服务器启动时能正确识别主机名和端口,避免因未指定导致的警告或服务异常。ServerAdmin 设置为 root@euler01,用于错误页联系信息。此配置是 Keystone 通过 Apache 提供服务的基础。
    • 执行命令:httpd -t,验证配置是否正确
      在这里插入图片描述
  3. 重启Apache服务
    • 执行命令:systemctl enable httpd,设置开机启用Apache服务
      在这里插入图片描述
    • 执行命令:systemctl restart httpd,重启Apache服务
      在这里插入图片描述
  4. 测试Web服务配置
    • 在主节点Euler01上执行命令:curl -i http://euler01:5000/v3
      在这里插入图片描述
    • 请求成功:HTTP/1.1 200 OK

3.3 模拟登录验证

3.3.1 创建初始化环境变量文件

  • 执行命令:vim admin-openrc
    在这里插入图片描述

    #!/bin/bash# Keystone 服务的访问地址(控制节点主机名或IP)
    export OS_AUTH_URL=http://euler01:5000/v3# 启用 v3 API
    export OS_IDENTITY_API_VERSION=3# 管理员用户名(默认为 admin)
    export OS_USERNAME=admin# 管理员密码
    export OS_PASSWORD=903213# 管理员用户的默认项目(租户)
    export OS_PROJECT_NAME=admin# 项目所属的域(通常为 default)
    export OS_PROJECT_DOMAIN_NAME=Default# 用户所属的域(通常为 default)
    export OS_USER_DOMAIN_NAME=Default# 认证方式(密码认证)
    export OS_AUTH_TYPE=password
    
  • 执行命令:chmod 600 admin-openrc,设置文件权限
    在这里插入图片描述

3.3.2 导入环境变量进行验证

  1. 导入环境变量
    • 执行命令:source admin-openrc
      在这里插入图片描述
  2. 验证是否生效
    • 执行命令:echo $OS_USERNAME
      在这里插入图片描述
    • 执行命令:export -p
      在这里插入图片描述
    • 结果说明:该命令输出了当前 shell 环境中所有已设置的环境变量,包括系统路径、语言编码、用户身份认证信息(如 OS_AUTH_URLOS_USERNAMEOS_PASSWORD)等。其中 OS_* 变量表明已配置 OpenStack 认证环境,可用于调用 OpenStack API 进行操作。

3.4 检测Keystone服务

3.4.1 获取 Token(最基础验证)

  • 执行命令:openstack token issue
    在这里插入图片描述
  • 结果解释:该命令成功获取了 OpenStack 认证令牌(token),显示了 token 的唯一标识、有效期、所属项目和用户 ID。说明 Keystone 身份认证服务正常,用户已通过身份验证,可访问 OpenStack 服务资源。

3.4.2 创建与查阅项目列表

  1. 创建名为huawei的项目
    • 执行命令:openstack project create --domain default huawei
      在这里插入图片描述
    • 结果说明:成功创建名为“huawei”的项目,归属默认域(default),项目ID已生成,状态启用。该操作表明Keystone服务正常,用户具备创建项目的权限,为后续资源分配和用户管理奠定了基础。
  2. 查看现有项目列表
    • 执行命令:openstack project list,可以看到我们刚才创建的huawei项目
      在这里插入图片描述

3.4.3 创建角色与查询角色列表

  1. 创建一个名为user的角色
    • 执行命令:openstack role create user --description "普通用户"
      在这里插入图片描述
  2. 查看现有角色列表
    • 执行命令:openstack role list
      在这里插入图片描述
  • 结果说明:该命令列出了当前Keystone中所有角色,包括admin、member、reader和user。每个角色有唯一ID,用于权限管理。admin为最高权限,user为自定义角色,可用于分配特定访问权限,表明身份认证体系已配置完成。

3.4.4 创建域与查看域列表

  1. 创建一个名为huawei的域

    • 执行命令:openstack domain create --description "华为公司域" huawei
      在这里插入图片描述
  2. 查看现有域列表

    • 执行命令:openstack domain list
      在这里插入图片描述
    • 结果说明:该命令显示当前Keystone中所有域,包括默认域(Default)和新增的“huawei”域。新域已成功创建并启用,描述为“华为公司域”,表明多租户环境配置完成,可用于隔离不同组织的用户与资源。

3.4.5 创建用户与查看用户列表

  1. 创建一个名为huawei的用户

    • 执行命令:openstack user create --domain default --password-prompt huawei
      在这里插入图片描述
    • 结果说明:该命令成功创建名为“huawei”的用户,归属默认域(default),系统提示输入密码并确认。输出显示用户ID已生成,状态启用,密码未设置过期时间,options为空,表明用户创建成功,可后续分配角色和项目权限。
  2. 查看现有用户列表

    • 执行命令:openstack user list
      在这里插入图片描述
    • 结果说明:该命令列出了当前Keystone中的所有用户,显示有两个用户:admin和huawei,分别对应其唯一ID。表明用户创建成功,身份认证系统正常运行,可进行后续角色分配和权限管理操作。

4. 实战总结

  • 本次实战在欧拉集群主节点Euler01上成功部署并配置了OpenStack Keystone服务。通过安装软件包、创建数据库、配置文件修改及服务初始化,完成了身份认证系统的核心搭建。使用keystone-manage完成数据库同步、Fernet密钥生成及管理员引导,并通过Apache发布服务。经环境变量加载与openstack token issue验证,认证功能正常。后续创建了域、项目、用户和角色,验证了多租户管理能力。整个过程涵盖安装、配置、初始化与测试,实现了对OpenStack的统一身份认证与权限控制,为云平台安全运行奠定了坚实基础。
http://www.dtcms.com/a/483335.html

相关文章:

  • pq|二维前缀和
  • 西安商城网站开发品牌营销型网站建设
  • vector,咕咕咕!
  • <数据集>药丸缺陷识别数据集<目标检测>
  • Java 在AWS上使用SDK凭证获取顺序
  • 百度手机网站自助建站青岛硅谷网站建设
  • 做响应式网站的物流微信商城网站案例展示
  • 【java】springboot分库分表 12 种分片算法(下)
  • Java多线程编程实战技巧深度解析:从并发基础到高吞吐架构的艺术
  • Nginx 自动化脚本安装方案
  • 巩义网站建设托管邹平建设项目网站公示
  • ETF网格交易覆盖率缺口与满仓踏空风险量化模型
  • 数据结构入门 (八):寻访节点的“路线图” —— 二叉树的深度与广度遍历
  • 复兴区建设局网站永久免费云储存空间
  • 线程池参数调整
  • Unity学习之Addressables可寻址系统
  • SQL优化手段有哪些
  • 建设银行江苏分行网站一键生成图片
  • php框架做网站的好处福田网站制作
  • 合并多个excel到一个excel中
  • 多因子模型识别供需共振:AI量化系统捕捉“白银突破52美元”的结构性动能
  • 网站建设公司哪里好企业微信小程序制作
  • 【前端学习】仿Deepseek官网AI聊天网站React
  • 2018年10月四川省自考《信息组织》试题
  • 统计期刊介绍——Journal of Statistical Software(JSS)
  • 漳州开发区人才网北京网站优化公司
  • Datawhale_数学建模导论_笔记
  • 【机器人学中的状态估计】2.5.1习题:假设u,v是两个相同维度的列向量,请你证明u^Tv=tr(vu^T)
  • 解决 Anki 启动器下载错误的完整指南
  • 烟台百度做网站多少钱怎么制作钓鱼网站链接