我使用 Devstack 在 ubuntu VM 上安装了 Openstack。在我的 local.conf 文件中,我仅指定了云 IP。
(HOST_IP=虚拟机的 ip。)
现在,当我尝试使用浏览器连接到我的一项服务(Compute、Orchestration、Volume ecc、Compute 例如具有以下 URL:http://192.168.0.9:8004/v1/2ba712fbd1244b2e85878850e51a6f63)我遇到了一条错误消息作为输出:
需要身份验证
我需要连接到这些服务,因为我想将云连接到 Scalr。我认为这是关于 ketstone 令牌或类似的东西的问题,有人可以给我一个建议吗?谢谢 ^^
/--------------/
这是我获取 RC 文件后“heat -d stack-list”的输出:
链接:http://oi62.tinypic.com/2a00oqr.jpg
答案1
看起来您正在尝试直接连接到 openstack heat 服务,而无需先经过 keystone 身份验证。
在 openstack 中,您登录到 openstack keystone 服务,接收身份验证令牌并将该令牌传递给您要使用的服务。如果您收到“需要身份验证”错误,则可能意味着您没有传递身份验证令牌。
尝试使用带有“调试”选项的 openstack CLI - 这将向您显示正在发送的 API 调用。(http://docs.openstack.org/cli-reference/content/heatclient_commands.html)
如果您的帐户有 rc 文件,则首先需要“source”该文件,然后执行 CLI 命令:
source <tenant>.rc
heat stack-list
答案2
- 我认为你应该创建 openstack rc 文件(例如 adminrc.sh) OpenStack RC 文件
- 进入服务器后,您应该先加载此文件“adminrc.sh”
更新
您可以直接使用 devstack 文件夹中的 openrc 文件:
. openrc admin admin
或者您可以创建新的源文件(nano rcfile.sh):
export OS_USERNAME=username admin
export OS_PASSWORD=password
export OS_TENANT_NAME=projectName
export OS_AUTH_URL=https://identityHost:portNumber/v2.0 #url was showed in the end of stack.sh output (example http://192.168.2.100/identity)
# The following lines can be omitted
export OS_TENANT_ID=tenantIDString
export OS_REGION_NAME=regionName
export OS_CACERT=/path/to/cacertFile
像这样使用它:
. rcfile.sh