You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

误删OpenStack admin角色及权限丢失后的恢复方法咨询

恢复OpenStack Admin角色的完整解决方案

别慌,这种误删admin角色导致全权限丢失的情况我碰过好几次,咱们一步步来快速恢复:

1. 登录控制节点执行核心重建操作

你需要先登录到OpenStack的控制节点,所有修复操作都要在这里完成——因为现在所有用户都失去了权限,只能直接调用Keystone服务的初始化命令来重建核心资源。

执行keystone bootstrap命令,这个命令会自动检查现有资源,只创建缺失的admin角色、admin用户关联、admin项目权限,不会覆盖你已有的其他用户或项目:

keystone bootstrap \
  --bootstrap-password <你的原admin账户密码> \
  --bootstrap-admin-url http://<控制节点IP>:5000/v3/ \
  --bootstrap-internal-url http://<控制节点IP>:5000/v3/ \
  --bootstrap-public-url http://<控制节点IP>:5000/v3/ \
  --bootstrap-region-id <你的区域ID,通常是RegionOne>

提示:把命令里的<>内容替换成你环境的实际值,比如控制节点的内网/公网IP、之前的admin密码,区域ID如果没改过就用RegionOne

2. 验证Admin角色是否恢复

执行完bootstrap命令后,加载你的admin环境变量文件(如果之前的rc文件还存在):

source admin-openrc.sh

然后用命令查看角色列表,确认admin角色已经重新出现:

openstack role list

正常情况下你会看到类似这样的输出,其中包含admin角色:

+----------------------------------+-------+
| ID                               | Name  |
+----------------------------------+-------+
| 7a2b3c4d-5e6f-7890-abcd-1234567890ab | admin |
| ...其他系统/自定义角色...        | ...   |
+----------------------------------+-------+

3. 手动确认Admin用户的权限关联(可选但保险)

虽然bootstrap命令通常会自动帮你把admin角色重新绑定到admin用户和admin项目,但为了保险起见,你可以手动执行一次绑定操作:

openstack role add \
  --project admin \
  --user admin \
  admin

4. 验证权限恢复情况

现在尝试用原admin账号登录OpenStack Web GUI,应该能正常访问所有管理菜单;同时在CLI执行openstack project listopenstack user list这类管理命令,确认能正常返回结果。

额外提醒

  • 如果你的环境启用了Fernet令牌机制,bootstrap命令会自动处理令牌相关配置,不需要额外操作。
  • 之前拥有admin权限的其他用户,因为原admin角色被删除,他们的权限关联也会丢失,恢复后需要重新给这些用户分配admin角色。
  • 执行所有命令时确保你有控制节点的root权限,或者能通过sudo执行Keystone相关命令。

内容的提问来源于stack exchange,提问作者Valance23322

火山引擎 最新活动