问题描述
我在~/.config/openstack/clouds.yaml
运行CLI openstack
命令可以正常工作(例如:openstack domains list
等)
尝试运行CLI nova
命令(例如:nova service-list
)将返回ERROR (CommandError): You must provide a user name/id (via --os-username,--os-user-id,env[OS_USERNAME] or env[OS_USER_ID]) or an auth token (via --os-token).
nova
是否应该使用相同的clouds.yaml
配置?
注意:这会在所有云上发生(使用export OS_CLOUD=<name>
进行切换),并且仅在nova
上失败。
编辑:这不是我可以控制的devstack部署。我只有每个云的配置信息和用于根据需要进行更改的管理员凭据。
解决方法
您应该使用openstack-commands,因为不建议使用nova-command之类的客户端库。因此,请使用openstack compute service list
而不是nova service-list
。
除此之外,nova命令还需要相同的身份验证,例如openstack命令,因此,如果您的登录凭据位于cloud.yaml中,那么您的nova命令也需要此身份验证。