深挖Openstack keystone - 源码分析(1)

本文主要探讨了OpenStack Keystone的Policy策略机制,详细介绍了如何通过policy.json文件实现用户角色权限管理。此外,还剖析了Keystone组件间的关系,包括各组件的routes.py、controller.py、core.py和driver的实现。同时,提到了/etc/keystone-paste.ini中定义的公共服务mainservice和管理员服务adminservice的功能与区别。

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

一.  Policy策略

Policy机制就是用来控制某一个User在某个Tenant中某个操作的权限。对于Keystone服务来说,policy就是一个json文件,默认是/etc/keystone/policy.json。

{
    "admin_required": "role:admin",
    "cloud_admin": "rule:admin_required and domain_id:admin_domain_id",
    "service_role": "role:service",
    "service_or_admin": "rule:admin_required or rule:service_role",
    "owner": "user_id:%(user_id)s or user_id:%(target.token.user_id)s",
    "admin_or_owner": "(rule:admin_required and domain_id:%(target.token.user.domain.id)s) or rule:owner",
    "admin_or_cloud_admin": "rule:admin_required or rule:cloud_admin",
    "admin_and_matching_domain_id": "rule:admin_required and domain_id:%(domain_id)s",
    "service_admin_or_owner": "rule:service_or_admin or rule:owner",
}
<think>好的,我需要帮助用户确定CentOS上OpenStack Train的版本号。首先,用户提到了在CentOS7下安装OpenStack Train版本的Dashboard时遇到的问题,引用了相关的安装步骤,比如克隆Horizon仓库的稳定分支stable/train,以及初始化命令的路径。这说明用户可能已经通过kolla-ansible进行部署,而kolla-ansible通常与特定版本的OpenStack相关联。 首先,OpenStack的版本命名是按字母顺序的,比如Train是第20个版本,对应2019.10发布的。通常每个版本会有详细的版本号,比如Train的版本号是20.0.0。不过需要确认CentOS中OpenStack的包版本是否与上游一致,因为RDO或其他仓库可能会有些差异。 用户提供的引用中提到使用stable/train分支,而OpenStack的每个稳定分支对应一个主要版本。例如,Train的版本号是20.x.x。CentOS可能通过RDO仓库提供OpenStack Train,需要确认RDO中对应的版本号。 另外,用户执行了初始化脚本/usr/share/kolla-ansible/init-runonce,这说明他们使用的是kolla-ansible进行部署,而kolla-ansible的版本也会对应特定的OpenStack版本。例如,kolla-ansible的Train版本应该对应OpenStack Train。 可能需要检查安装的软件包版本,比如通过yum list installed | grep openstack,或者查看horizon的版本号,因为用户克隆了Horizon的stable/train分支,Horizon属于OpenStack的Dashboard组件,其版本号应与Train一致,即20.x.x。 总结来说,CentOS上通过kolla-ansible部署的OpenStack Train版本对应的版本号应为20.x.x,具体的小版本号可能需要查看具体的软件包或使用命令如openstack --version来确认。</think>在CentOS系统中,OpenStack Train版本对应的版本号为**20.x.x系列**。具体说明如下: 1. **版本命名规则** OpenStack采用按字母顺序的代号命名,Train是第20个版本,于2019年10月发布。其基础组件的版本号统一为$20.0.0$,例如: - Nova组件:$20.0.0$ - Neutron组件:$20.0.0$ - Horizon组件:$20.0.0$(对应git仓库的`stable/train`分支)[^1] 2. **CentOS中的部署验证** 通过Kolla-Ansible部署时,可使用以下命令验证: ```bash # 查看kolla-ansible版本与OpenStack的映射关系 yum info kolla-ansible | grep Version # 查看已安装的OpenStack组件版本 openstack --version ``` 若使用RDO仓库安装,Train版本在CentOS中通常标记为`centos-openstack-train`,软件包版本号为$20.*`。 3. **初始化脚本关联性** 用户引用的初始化脚本路径`/usr/share/kolla-ansible/init-runonce`是Kolla-Ansible为Train版本提供的标准初始化工具,其设计兼容OpenStack 20.x.x的API特性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值