分享

关于curl调用api问题 大佬求帮助

yozura 发表于 2017-3-26 11:35:20 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 16 12478
1.png
我想获取token 但是返回401 这里的username和password是 服务器的还是keystone的 我使用的是keystone的 为什么还是不行
也载入环境变量了
3.png
openstack token issue 获取的token到底怎么用 是用id么?
2.png
获取project的curl命令是不是下面这个
curl -s -H "X-Auth-Token:获取的token"  http://controller_ip:5000/v3/projects | python -mjson.tool 这里的获取的token 和openstack token issue 获取的token有什么关系?

已有(16)人评论

跳转到指定楼层
yozura 发表于 2017-3-26 11:49:49
@easthome001
回复

使用道具 举报

nextuser 发表于 2017-3-26 19:17:27
哪个版本的,楼主搞的有点复杂。而且信息缺失
建议参考以官网文档为主,其它资料为辅,但是需要多查资料。
推荐参考
Openstack rest API 操作实例
http://www.aboutyun.com/forum.php?mod=viewthread&tid=10327
最好说下版本,然后官网找到对应资料


回复

使用道具 举报

yozura 发表于 2017-3-26 19:58:11
nextuser 发表于 2017-3-26 19:17
哪个版本的,楼主搞的有点复杂。而且信息缺失
建议参考以官网文档为主,其它资料为辅,但是需要多查资料。 ...

是kilo版本
我现在知道openstack token issue是获取token
但是怎么用呢
我之前的命令哪里出现错误了?
回复

使用道具 举报

einhep 发表于 2017-3-26 20:06:38
yozura 发表于 2017-3-26 19:58
是kilo版本
我现在知道openstack token issue是获取token
但是怎么用呢

curl -k -X 'POST' -v http://192.168.1.1:5000/v2.0/tokens -d '{"auth":{"passwordCredentials":{"username": "admin", "password":"password"}, "tenantId":"3942bfc544a24f748788c06dbc486ffa"}}' -H 'Content-type: application/json'
尝试上面,如果还不行,说明keystone组件出问题了。

可以根据这篇验证下
openstack【Kilo】入门 【keystone篇】九:验证keystone安装【centos】
http://www.aboutyun.com/forum.php?mod=viewthread&tid=15233


回复

使用道具 举报

yozura 发表于 2017-3-26 20:15:03
einhep 发表于 2017-3-26 20:06
curl -k -X 'POST' -v http://192.168.1.1:5000/v2.0/tokens -d '{"auth":{"passwordCredentials":{"user ...

您说的tenant id 是怎么获得的呢  kilo版本的tenant不是被project代替了么

回复

使用道具 举报

einhep 发表于 2017-3-26 20:32:20
yozura 发表于 2017-3-26 20:15
您说的tenant id 是怎么获得的呢  kilo版本的tenant不是被project代替了么

对的,确实被替换了。
楼主先通过shell,保证组件是正常的,然后在验证rest api.

回复

使用道具 举报

yozura 发表于 2017-3-26 20:47:40
einhep 发表于 2017-3-26 20:32
对的,确实被替换了。
楼主先通过shell,保证组件是正常的,然后在验证rest api.

所以说怎么验证呢
直接按照你上面给的命令来么
不用换tenant id 么
如果换的话
换成什么?project id?
我可以这么理解么
curl -k -X 'POST' -v http://192.168.1.1:5000/v2.0/tokens -d '{"auth":{"passwordCredentials":{"username": "admin", "password":"password"}, "projectid":"projectid"}}' -H 'Content-type: application/json'
其中projectid是openstack project list 获取的

回复

使用道具 举报

yozura 发表于 2017-3-26 20:57:44
einhep 发表于 2017-3-26 20:32
对的,确实被替换了。
楼主先通过shell,保证组件是正常的,然后在验证rest api.

curl -k -X 'POST' -v http://192.168.1.1:5000/v2.0/tokens -d '{"auth":{"passwordCredentials":{"username": "admin", "password":"password"}, "tenantId":"3942bfc544a24f748788c06dbc486ffa"}}' -H 'Content-type: application/json'
直接就可以用么?tenantid 怎么获取?
回复

使用道具 举报

langke93 发表于 2017-3-26 21:11:26
rest api应该没有错
curl -k -X 'POST' -v http://controller_ip:5000/v2.0/tokens -d '{"auth":{"passwordCredentials":{"username": "ADMIN", "password":"MY_PASSWORD"}}}' -H 'Content-type: application/json' | python -mjson.tool


curl -k -X 'POST' -v http://controller_ip:5000/v2.0/tokens -d '{"auth":{"passwordCredentials":{"username": "ADMIN", "password":"MY_PASSWORD"},"tenantId":"de8f43bfe4244a1aa315a70a43248d60"}}' -H 'Content-type: application/json' | python -mjson.tool
楼主的临时token有问题,建议修改下。

执行下面操作贴出来看下
[mw_shl_code=bash,true]unset OS_TOKEN OS_URL[/mw_shl_code]
[mw_shl_code=bash,true]
openstack --os-auth-url http://controller:35357 \
  --os-project-name admin --os-username admin --os-auth-type password \
  role list[/mw_shl_code]


[mw_shl_code=bash,true]openstack --os-auth-url http://controller:5000 \
  --os-project-domain-id default --os-user-domain-id default \
  --os-project-name demo --os-username demo --os-auth-type password \
token issue[/mw_shl_code]


回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条