身份认证服务(Keystone)安装配置,这一篇就够了!!

本文详细介绍如何在控制节点上安装并配置OpenStack的身份服务Keystone,包括创建数据库、安装服务、配置Apache HTTP服务器等步骤,同时介绍了如何通过命令行创建项目、用户和角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验目标
OpenStack:Identity service 为认证管理,授权管理和服务目录服务管理提供单点整合。其它 OpenStack 服务将身份认证服务当做通用统一 API 来使用。此外,提供用户信息但是不在 OpenStack 项目中的服务(如 LDAP 服务)可被整合进先前存在的基础设施中。为了从 identity 服务中获益,其他的 OpenStack 服务需要与它合作。当某个 OpenStack 服务收到来自用户的请求时,该服务询问Identity 服务,验证该用户是否有权限进行此次请求。
实验内容

实验环境与实验效果预览

在控制节点安装 Keystone 服务

创建数据库及权限授权

  • 实验要求

需要在 mysql 里创建 keystone 的用户,并且授权远程访问

  • 实现过程:
    连接 mysql,输入密码登录
# mysql –uroot -p

然后创建 keystone 数据库,创建 keystone 用户(密码为 123456)并授权

MariaDB > CREATE DATABASE keystone;
MariaDB > GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123456';
MariaDB > GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123456';
MariaDB > Grant all privileges on keystone.* to 'keystone'@'controller' identified by '123456';

授权以后重启数据库服务
在这里插入图片描述

# systemctl restart mariadb

安装服务并配置

1、实现要求
安装 keystone 服务和 memcached 服务,并配置服务
2、实现过程
yum 安装 keystone 服务和 memcached 服务

# yum install openstack-keystone httpd mod_wsgi memcached python-memcached -y

启动 memcached 服务,配置开机启动

# systemctl start memcached
# systemctl enable memcached

生成随机数,创建管理员令牌,值记下来

# openssl rand -hex 10

我这里是 1d152f6511ae2ea79b09,进入/etc/keystone 目录,备份 keystone.conf 文件成 keystone.conf.bak 修改 keystone.conf 文件,共 3 处:

1[default]10 行左右
2[database]640 行左右,指定自己的用户名和密码
3[token]2659 行左右
admin_token = 1d152f6511ae2ea79b09
connection = mysql+pymysql://keystone:123456@192.168.23.101/keystone
provider=fernet 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
初始化身份认证服务的数据库

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

上一步完成以后要检查 keystone 库中有没有表,没有的话,检查一下哪里错误,可以查看日志/var/log/keystone/keystone.log,正确的结果有如下表:
在这里插入图片描述
初始化 fernet key 存储库

# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

配置 Apache HTTP 服务器,修改/etc/httpd/conf/httpd.conf,修改主机名,大概 95 行

ServerName controller:80

在这里插入图片描述
将 keystone 配置文件链接到 apache 默认目录下

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

在这里插入图片描述
启动 httpd 服务,添加开机启动

# systemctl start httpd
# systemctl enable httpd

创建实体和 API endpoint,配置认证令牌,与上面生成的管理员令牌一致

# export OS_TOKEN=1d152f6511ae2ea79b09

配置端点 URL

# export OS_URL=http://controller:35357/v3

配置认证 API 版本

# export OS_IDENTITY_API_VERSION=3

创建 keystone 的 service

# openstack service create --name keystone --description "OpenStack Identity" identity

在这里插入图片描述
创建 keystone 的 endpoint

# openstack endpoint create --region RegionOne identity public http://controller:5000/v3
# openstack endpoint create --region RegionOne identity internal http://controller:5000/v3
# openstack endpoint create --region RegionOne identity admin http://controller:5000/v3

创建管理项目、用户和角色

  • 实现要求
    创建域、项目、用户和角色,验证安装配置
  • 实现过程:
    创建 domain 域
# openstack domain create --description "Default Domain" default

创建 admin 项目

# openstack project create --domain default --description "Admin Project" admin

创建 admin 用户,会提示输入密码

# openstack user create --domain default --password-prompt admin

创建 admin 角色

# openstack role create admin

添加 admin 角色到 admin 项目和用户上,这个命令执行后没有输出

# openstack role add --project admin --user admin admin

创建"service"项目

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

常规任务应该使用无特权的项目和用户,创建一个 demo 项目和用户
创建 demo 项目

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

创建 demo 用户,会提示输入密码

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

创建 user 角色

# openstack role create user

添加 user 角色到 demo 项目和用户

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

完成之后可以验证,重置 OS_TOKEN 和 OS_URL 环境变量

# unset OS_TOKEN OS_URL

使用 admin 用户,请求认证令牌,密码:123456

# openstack --os-auth-url http://controller:35357/v3 --os-project-domain-name default --os-user-domain-name
default --os-project-name admin --os-username admin token issue

在这里插入图片描述
使用 demo 用户,请求认证令牌,密码:123456

# openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name default --os-user-domain-name
default --os-project-name demo --os-username demo token issue

在这里插入图片描述
有输出即为配置正确

创建用户环境脚本

1、实现要求
为了提升客户端操作的效率,OpenStack 支持简单的客户端环境变量脚本即OpenRC 文件创建 admin 和 demo 项目和用户创建客户端环境变量脚本,为客户端操作加载合适的的凭证
2、实现过程
创建 admin 脚本(目录任意),如下图:# vi admin-openrc

export OS_USERNAME=admin
export OS_PASSWORD=123456
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_DOMAIN_NAME=default
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2 

创建 demo 脚本(目录任意),如下图:# vi demo-openrc

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=123456
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2 

加载 admin-openrc 文件来身份认证服务的环境变量位置和 admin 项目和用户证书

# . admin-openrc

注意[ . ]和[ admin-openrc ] 之间有空格
加载 demo-openrc 文件来身份认证服务的环境变量位置和 demo 项目和用户证书

# . demo-openrc

注意[ . ]和[ demo-openrc ] 之间有空格
请求认证令牌信息

# openstack token issue

在这里插入图片描述
加油,冲冲冲!!!今日博客任务已经超额完成,我要滚回去学习高数了
在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃香菜的斌斌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值