昨天面试,问了很简单的问题,我都讲不上来,太菜了。所以开个专题,走读下keystone代码。
面试问的问题主要是我之前工作中接触到了,然后我又讲不明白,先列一下,慢慢读代码。
1.keystone安装先装rpm包,然后改配置文件,然后还要干什么?
面试官告诉我要建数据库。然后我记着admin用户的数据是要写进去的。昨天装了一下,执行了keystone-manage db_sync ,表格都创建出来了,但是user表没数据。
db_sync创建表,bootstrap表格中添加数据包括添加用户,添加endpoint,添加role,添加域,project
我记得华为自研的要执行db_init.py,不知道是不是自己写的还是原生的。
2.keystone service_token,这个好像是原生的吧
解决业务时间太长token超期的问题。
3.keystone auth_token 过滤器。这个看了好多遍,我都没讲出来。主要是之前就看的不够深吧。。
先从缓存中获取token,如果获取到了,判断是否失效。如果缓存中获取不到,去server端校验。不是service_token,是user_token的情况,还要判断是否过期
4.还有个双向认证也没讲明白,还问我tls
单向认证是客户端校验服务端的证书。双向认证是服务端也要校验客户端的证书,不认识的客户端不能来访问服务端。
还问我除了防止仿冒,还有什么作用。
总结:要解决的问题
1.keystone-manage db_sync ,还有其他的子命令都是做了什么事情
keystone-manage子命令及其作用_yue_luu的博客-CSDN博客
2.初始用户名密码在哪加的
就是第一条keystone-manage命令加的
3.service_token 是啥,干啥用的
给nova neutron等服务用的,记得之前经常遇到nova执行热迁移啥的,时间特别长,等执行完访问cinder的时候token就过期了。service_token就是这种场景下会使用到。
4 auth_token代码再走读一遍
5.证书,tls