openstack新手:为什么给我这个错误,即使密码是正确的?

openstack newbie: why give me this error, even if password is correct?

我已经按照this guide.

安装了openstack

现在我想尝试一个简单的 cli 命令

openstack catalog list

我已经导出了所有这些变量

export HOSTNAME="openstack1"
export OS_AUTH_PLUGIN="token"
export OS_AUTH_URL="http://openstack1:5000/v3/"
export OS_IDENTITY_API_VERSION="3"
export OS_PASSWORD="correctadminpass"
export OS_PROJECT_DOMAIN_ID="default"
export OS_PROJECT_DOMAIN_NAME="mydomain.fqdn"
export OS_SERVICE_ENDPOINT="http://openstack1:5000/v3/"
export OS_SERVICE_TOKEN="1234tokencorrecttakefromkeystone.conf"
export OS_USERNAME="admin"

但是命令return这个错误

openstack  catalog list
The request you have made requires authentication. (HTTP 401) (Request-ID: req-3346b80c-0b57-4a7e-a8c9-cf07acb83976)

导出 OS 个变量还不够吗?

找到解决方案,命令

openstack catalog list

return 导出这些变量后输出正确

export OS_AUTH_URL="http://openstack1.mydomain.priv:5000/v3"
export OS_BOOTSTRAP_PASSWORD="mypass"
export OS_IDENTITY_API_VERSION="3"
export OS_PASSWORD="mypass"
export OS_PROJECT_DOMAIN_ID="default"
export OS_PROJECT_NAME="admin"
export OS_TENANT_NAME="admin"
export OS_USERNAME="admin"
export OS_USER_DOMAIN_ID="default"

给你报错是因为没有指定项目。 Openstack 身份验证需要用户名或 ID, 项目名称或 ID。

注意:

export OS_PROJECT_NAME="admin"
export OS_TENANT_NAME="admin"

实际上在说同样的话。 "Tenant" 是 "project" 的旧术语。

请参考Openstack command Manual Entry了解其识别的环境变量的更多详细信息。

通常,您唯一需要的 URL 是 Keystone (OS_AUTH_URL) 的 URL。 openstack 命令可以计算出如何联系 Keystone 目录中的其他服务。