手动 Openstack 安装:警告:...没有服务策略规则 'identity'
Manual Openstack Install: WARNING: ... No Policy rules for service 'identity'
已手动安装 Openstack Train 版本。
当以 non-admin 角色登录 Horizon 仪表板并单击仪表板时,右上角会弹出错误消息。
具体来说,在“计算”>“图像”下出现了两个错误:
- 错误:禁止访问。请求的操作权限不足
- 错误:无法检索项目
在 error_log 中查找 httpd,它一遍又一遍地显示这些错误:
WARNING openstack_auth.policy No policy rules for service 'network' in /usr/share/openstack-dashboard/openstack_dashboard/conf/neutron_policy.json
WARNING openstack_auth.policy No policy rules for service 'identity' in /usr/share/openstack-dashboard/openstack_dashboard/conf/keystone_policy.json
试图前往/usr/share/openstack-dashboard/openstack_dashboard/
时
并查看 keystone_policy.json 或 neutron_policy.json conf 目录丢失,文件也丢失。
Openstack 声明每个服务都有自己的 policy.json 文件(如果使用较新的版本,则为 yaml)。Openstack Documentation
但是,当我转到服务文件时,它们是空的。我的问题是是否可以简单地创建这些 policy.json 文件? Openstack 文档指出不建议更改 policy.json 文件,这让我认为这是一个错误。其他人是否遇到过类似问题?
更新
我已经在 /usr/share/openstack-dashboard/openstack_dashboard
下创建了 conf
目录。然后,我使用 oslo 生成器使用以下命令为 each 服务创建新的策略文件:oslopolicy-policy-generator --namespace keystone --output-file keystone_policy.json
我重新启动了 apache 并以管理员身份登录 horizon,发现我的管理员用户无法创建项目、用户或角色。
目前在这上面卡了一个星期左右。
有人遇到类似问题吗?
我自己经历了部分这个问题。
例如,在 glance
部分,所有策略都在 glancs-api/registry 主机 /etc/glance/policy.json
中定义,相同的文件存在于路径 /etc/openstack-dashboard
下的仪表板集群中。在 local_settings
中查找 POLICY_FILES =
部分并将其注释掉,这样 role = user
你就不会遇到错误了。
至于identity
政策下
POLICY_FILES = {
'identity': 'keystone_policy.json',
}
您必须确保 keystone_policy.json
存在于 openstack-dashboard 路径下。
作为用户角色,您会看到您 own/member 没有错误的项目。
我已经进行了这些更改,现在 运行 在进入生产环境之前在测试环境中进行,以确保所有更改都不会造成损害。
看来 yaml 文件在 Train 版本中可能无法正常工作。
oslopolicy-policy-generator --namespace keystone --output-file keystone_policy.json
命令生成一个以 .json 结尾的文件,但看起来实际上是 yaml snytax。
当放置在 /usr/share/openstack-dashboard/openstack_dashboard/conf
文件夹中时,策略文件未正确应用。
以下命令最终解决了我所有的策略文件问题:
oslopolicy-policy-upgrade \
--config-file /etc/keystone/keystone.conf \
--format json \
--namespace keystone \
--output-file keystone_policy_2.json \
--policy keystone_policy.json
检查 /var/log/keystone/keystone.log
时注意到以下消息:
Deprecated policy rules found. Use oslopolicy-policy-generator and oslopolicy-policy-upgrade to detect and resolve deprecated policies in your configuration.
这就是提示使用 oslopolicy-policy-upgrade -h
的原因
还确保 /openstack_dashboard/defaults.py
说了以下内容:
POLICY_FILES = {
'identity': 'keystone_policy.json',
'compute': 'nova_policy.json',
'volume': 'cinder_policy.json',
'image': 'glance_policy.json',
'network': 'neutron_policy.json',
}
我想指出的是,这两个不同的命令输出了两个不同的 keystone_policy.json 文件。
第一个命令有很多关于 system_scope:all 的提及,第二个命令有更简单的规则,如:“identity:list_users_in_group”: “rule:admin_required”。所以也许这与使用 IdentityV3 和 V2 有关?
这么多我不确定。但我很高兴正确应用了权限。
已手动安装 Openstack Train 版本。
当以 non-admin 角色登录 Horizon 仪表板并单击仪表板时,右上角会弹出错误消息。
具体来说,在“计算”>“图像”下出现了两个错误:
- 错误:禁止访问。请求的操作权限不足
- 错误:无法检索项目
在 error_log 中查找 httpd,它一遍又一遍地显示这些错误:
WARNING openstack_auth.policy No policy rules for service 'network' in /usr/share/openstack-dashboard/openstack_dashboard/conf/neutron_policy.json
WARNING openstack_auth.policy No policy rules for service 'identity' in /usr/share/openstack-dashboard/openstack_dashboard/conf/keystone_policy.json
试图前往/usr/share/openstack-dashboard/openstack_dashboard/
时
并查看 keystone_policy.json 或 neutron_policy.json conf 目录丢失,文件也丢失。
Openstack 声明每个服务都有自己的 policy.json 文件(如果使用较新的版本,则为 yaml)。Openstack Documentation 但是,当我转到服务文件时,它们是空的。我的问题是是否可以简单地创建这些 policy.json 文件? Openstack 文档指出不建议更改 policy.json 文件,这让我认为这是一个错误。其他人是否遇到过类似问题?
更新
我已经在 /usr/share/openstack-dashboard/openstack_dashboard
下创建了 conf
目录。然后,我使用 oslo 生成器使用以下命令为 each 服务创建新的策略文件:oslopolicy-policy-generator --namespace keystone --output-file keystone_policy.json
我重新启动了 apache 并以管理员身份登录 horizon,发现我的管理员用户无法创建项目、用户或角色。
目前在这上面卡了一个星期左右。
有人遇到类似问题吗?
我自己经历了部分这个问题。
例如,在 glance
部分,所有策略都在 glancs-api/registry 主机 /etc/glance/policy.json
中定义,相同的文件存在于路径 /etc/openstack-dashboard
下的仪表板集群中。在 local_settings
中查找 POLICY_FILES =
部分并将其注释掉,这样 role = user
你就不会遇到错误了。
至于identity
政策下
POLICY_FILES = {
'identity': 'keystone_policy.json',
}
您必须确保 keystone_policy.json
存在于 openstack-dashboard 路径下。
作为用户角色,您会看到您 own/member 没有错误的项目。
我已经进行了这些更改,现在 运行 在进入生产环境之前在测试环境中进行,以确保所有更改都不会造成损害。
看来 yaml 文件在 Train 版本中可能无法正常工作。
oslopolicy-policy-generator --namespace keystone --output-file keystone_policy.json
命令生成一个以 .json 结尾的文件,但看起来实际上是 yaml snytax。
当放置在 /usr/share/openstack-dashboard/openstack_dashboard/conf
文件夹中时,策略文件未正确应用。
以下命令最终解决了我所有的策略文件问题:
oslopolicy-policy-upgrade \
--config-file /etc/keystone/keystone.conf \
--format json \
--namespace keystone \
--output-file keystone_policy_2.json \
--policy keystone_policy.json
检查 /var/log/keystone/keystone.log
时注意到以下消息:
Deprecated policy rules found. Use oslopolicy-policy-generator and oslopolicy-policy-upgrade to detect and resolve deprecated policies in your configuration.
这就是提示使用 oslopolicy-policy-upgrade -h
还确保 /openstack_dashboard/defaults.py
说了以下内容:
POLICY_FILES = {
'identity': 'keystone_policy.json',
'compute': 'nova_policy.json',
'volume': 'cinder_policy.json',
'image': 'glance_policy.json',
'network': 'neutron_policy.json',
}
我想指出的是,这两个不同的命令输出了两个不同的 keystone_policy.json 文件。 第一个命令有很多关于 system_scope:all 的提及,第二个命令有更简单的规则,如:“identity:list_users_in_group”: “rule:admin_required”。所以也许这与使用 IdentityV3 和 V2 有关?
这么多我不确定。但我很高兴正确应用了权限。