O019、通过例子学习 Keystone
上节介绍了 Keystone 的核心概念。本节我们通过“查询可用 image”这个操作让大家对这些概念简历更加感性的认识。User admin 要查看 Project 中的image。
第一步 登录
当点击 Connect 按钮的时候,OpenStack内部发生了哪些事情呢?见下图
Token 中包含了 User 的Role 信息
第二步 显示操作界面
请注意,顶部显示 admin 可访问的 Project 为 admin 和 demo 。其实在这之前发生了一些事情:
同时,admin 可以访问 Intance、Volume、Image 等服务。
这是因为 admin 已经从 Keystone 拿到了各 Service 的Endpoints 。
第三步 显示 image 列表
点击 Images 会显示 images 列表
背后有发生了些什么呢?
首先 admin将请求发送到 Glance 的Endpoint
Glance 向 Keystone 询问 admin 身份是否有效
接下来Glance 会查看 /etc/glance/policy.json 判断 admin是否有查看 image 的权限。
权限判定通过,Glance 将image列表发给 admin。
Troubeshoot
OpenStack排错问题的方法主要是通过日志。
每个 Service 都有自己的日志文件。Keystone 主要有两个日志: keystone.log 和 keystone_access.log ,保存在 /var/log/apache2/ 目录里
root@DevStack-Controller:/var/log/apache2# ll
total 25836
drwxr-x--- 2 root adm 4096 May 22 01:12 ./
drwxrwxr-x 14 root syslog 4096 May 22 00:08 ../
-rw-r----- 1 root adm 201783 May 22 01:12 access.log
-rw-r----- 1 root adm 2940 May 22 01:13 error.log
-rw-r--r-- 1 root root 2027277 May 22 20:37 horizon_access.log
-rw-r--r-- 1 root root 329201 May 22 20:34 horizon_error.log
-rw-r--r-- 1 root root 803 May 22 19:48 keystone_access.log
-rw-r--r-- 1 root root 19381569 May 22 20:37 keystone.log
-rw-r----- 1 root adm 0 May 22 00:09 other_vhosts_access.log
-rw-r--r-- 1 root root 4479073 May 22 20:37 placement-api.log
DevStack 的 screen 窗口已经帮我们打开了这两个日志,可以直接查看
如果需要得到详细的日志信息,可以在 cat /etc/keystone/keystone.conf 中打开debug选项。
root@DevStack-Controller:/var/log/apache2# cat /etc/keystone/keystone.conf | grep '^[^#]'
[DEFAULT]
max_token_size = 16384
logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d TRACE %(name)s %(instance)s
debug = True
admin_endpoint = http://10.12.31.241/identity_admin
public_endpoint = http://10.12.31.241/identity
transport_url = rabbit://stackrabbit:secret@10.12.31.241:5672/
在非 DevStack安装中,日志可能在 /var/log/keystone 目录中。
分类:
每天五分钟学OpenStack
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~