设为首页 收藏本站
查看: 1480|回复: 0

[经验分享] openstack api快速入门

[复制链接]

尚未签到

发表于 2015-4-13 10:02:10 | 显示全部楼层 |阅读模式
   原文:http://my.oschina.net/guol/blog/105430
  openstack官方有提供api供开发者使用,可以使用api做一些外围的小工具,用来简化对openstack的管理。
      api-quickstart:http://docs.openstack.org/api/quick-start/content/index.html
      api-doc:http://api.openstack.org/api-ref.html
      环境:ubuntu12.10(10.1.1.186)
      如果你看了官方的quickstart,他会让你先生成一个X-Auth-Token值,然后使用这个认证的值调用相关的api接口。如下过程:
  



1curl-k -X 'POST' -v http://10.1.1.186:5000/v2.0/tokens-d '{"auth":{"passwordCredentials":{"username":"guol", "password":"123456"}}}' -H 'Content-type:application/json' |python -mjson.tool
输出结果如下:  



01{

02    "access":{

03        "serviceCatalog":{},

04        "token":{

05            "expires": "2013-01-27T04:55:35Z",

06            "id": "a4b6a871ff2f41a797c0b7d45c69f81e"

07        },

08        "user":{

09            "id": "4c1a6122fc874a8bb541a34be3b316ad",

10            "name": "guol",

11            "roles":[],

12            "roles_links":[],

13            "username": "guol"

14        }

15    }

16}
然后使用token id调用你使用的api  



1curl-X 'GET' -H  "X-Auth-Token:a4b6a871ff2f41a797c0b7d45c69f81e" -v http://10.1.1.186:5000/v2.0/tenants| python -mjson.tool
输出的结果如下:  



01{

02    "tenants":[

03        {

04            "description": "\u4e91\u5e73\u53f0\u7ba1\u7406\u5458,\u5168\u5c40\u7ba1\u7406\u6240\u6709\u9879\u76ee",

05            "enabled": true,

06            "id": "3a3613f83183435d9c47aa362261f720",

07            "name": "admin"

08        }

09    ],

10    "tenants_links":[]

11}
      当你按照api-doc接着调用compute、image、volume等下面的api接口时,会发现统统没有返回值,经过一段时间的摸索,发现对下剩下的api接口是需要使用认证过的token才能使用的,下面的方法才是王道。
  获取认证token值
  



1curl-X POST -d  '{"auth":{"tenantName": "VM", "passwordCredentials":{"username": "admin", "password": "123456"}}}' -H "Content-type:application/json" http://10.1.1.186:35357/v2.0/tokens| python -mjson.tool
  返回值如下:



001{

002    "access":{

003        "metadata":{

004            "is_admin":0,

005            "roles":[

006                "141927156f7a47d98858e51febaea8cf"

007            ]

008        },

009        "serviceCatalog":[

010            {

011                "endpoints":[

012                    {

013                        "adminURL": "http://10.1.1.186:8774/v2/170bf7acb88646bc9147085d426c4671",

014                        "id": "e02aaf58a24641049fddfe7385ce9399",

015                        "internalURL": "http://10.1.1.186:8774/v2/170bf7acb88646bc9147085d426c4671",

016                        "publicURL": "http://10.1.1.186:8774/v2/170bf7acb88646bc9147085d426c4671",

017                        "region": "RegionOne"

018                    }

019                ],

020                "endpoints_links":[],

021                "name": "nova",

022                "type": "compute"

023            },

024            {

025                "endpoints":[

026                    {

027                        "adminURL": "http://10.1.1.186:9292/v1",

028                        "id": "7c48fa4d876d44e0a3cb324a45a14931",

029                        "internalURL": "http://10.1.1.186:9292/v1",

030                        "publicURL": "http://10.1.1.186:9292/v1",

031                        "region": "RegionOne"

032                    }

033                ],

034                "endpoints_links":[],

035                "name": "glance",

036                "type": "image"

037            },

038            {

039                "endpoints":[

040                    {

041                        "adminURL": "http://10.1.1.186:8776/v1/170bf7acb88646bc9147085d426c4671",

042                        "id": "c08114987bc0443d879436db6290dd08",

043                        "internalURL": "http://10.1.1.186:8776/v1/170bf7acb88646bc9147085d426c4671",

044                        "publicURL": "http://10.1.1.186:8776/v1/170bf7acb88646bc9147085d426c4671",

045                        "region": "RegionOne"

046                    }

047                ],

048                "endpoints_links":[],

049                "name": "volume",

050                "type": "volume"

051            },

052            {

053                "endpoints":[

054                    {

055                        "adminURL": "http://10.1.1.186:8773/services/Admin",

056                        "id": "cd6c3c2ac44340d6a78cb903ec9bcab3",

057                        "internalURL": "http://10.1.1.186:8773/services/Cloud",

058                        "publicURL": "http://10.1.1.186:8773/services/Cloud",

059                        "region": "RegionOne"

060                    }

061                ],

062                "endpoints_links":[],

063                "name": "ec2",

064                "type": "ec2"

065            },

066            {

067                "endpoints":[

068                    {

069                        "adminURL": "http://10.1.1.186:8080/v1",

070                        "id": "a75755093500441ea954f4874ccecf15",

071                        "internalURL": "http://10.1.1.186:8080/v1/AUTH_170bf7acb88646bc9147085d426c4671",

072                        "publicURL": "http://10.1.1.186:8080/v1/AUTH_170bf7acb88646bc9147085d426c4671",

073                        "region": "RegionOne"

074                    }

075                ],

076                "endpoints_links":[],

077                "name": "swift",

078                "type": "object-store"

079            },

080            {

081                "endpoints":[

082                    {

083                        "adminURL": "http://10.1.1.186:35357/v2.0",

084                        "id": "196e553f9bcc4c8fa425bc0fa28a144b",

085                        "internalURL": "http://10.1.1.186:5000/v2.0",

086                        "publicURL": "http://10.1.1.186:5000/v2.0",

087                        "region": "RegionOne"

088                    }

089                ],

090                "endpoints_links":[],

091                "name": "keystone",

092                "type": "identity"

093            }

094        ],

095        "token":{

096            "expires": "2013-01-27T05:06:50Z",

097            "id": "71fb5b7816804febbd89ed315fe67c94",

098            "tenant":{

099                "description": "\u6240\u6709\u516c\u53f8\u81ea\u4e3b\u6e38\u620f\u7684\u524d\u7aef\u53d1\u5e03\u673a,\u5982\u8d5b\u5c14\u53f7,\u529f\u592b\u7b49",

100                "enabled": true,

101                "id": "170bf7acb88646bc9147085d426c4671",

102                "name": "VM"

103            }

104        },

105        "user":{

106            "id": "24a2251c32504957ad2647c2448ffac3",

107            "name": "admin",

108            "roles":[

109                {

110                    "name": "\u524d\u7aef\u6e38\u620f"

111                }

112            ],

113            "roles_links":[],

114            "username": "admin"

115        }

116    }

117}
  使用返回的token id和tenant id调用api返回该tenant下的servers



1curl-X GET -H "X-Auth-Token:71fb5b7816804febbd89ed315fe67c94" -H "Content-type:application/json" http://10.1.1.186:8774/v2/170bf7acb88646bc9147085d426c4671/servers| python -mjson.tool
返回结果如下  



01{

02    "servers":[

03        {

04            "id": "ac561829-dffa-443e-a321-260d48f4cba3",

05            "links":[

06                {

07                    "href": "http://10.1.1.186:8774/v2/170bf7acb88646bc9147085d426c4671/servers/ac561829-dffa-443e-a321-260d48f4cba3",

08                    "rel": "self"

09                },

10                {

11                    "href": "http://10.1.1.186:8774/170bf7acb88646bc9147085d426c4671/servers/ac561829-dffa-443e-a321-260d48f4cba3",

12                    "rel": "bookmark"

13                }

14            ],

15            "name": "VM1"

16        },

17        {

18            "id": "e3b84378-7598-48c8-8a1d-bd555c4c1f90",

19            "links":[

20                {

21                    "href": "http://10.1.1.186:8774/v2/170bf7acb88646bc9147085d426c4671/servers/e3b84378-7598-48c8-8a1d-bd555c4c1f90",

22                    "rel": "self"

23                },

24                {

25                    "href": "http://10.1.1.186:8774/170bf7acb88646bc9147085d426c4671/servers/e3b84378-7598-48c8-8a1d-bd555c4c1f90",

26                    "rel": "bookmark"

27                }

28            ],

29            "name": "VM2"

30        },

31        {

32            "id": "beafef2e-26c4-4320-9b45-70006e71785c",

33            "links":[

34                {

35                    "href": "http://10.1.1.186:8774/v2/170bf7acb88646bc9147085d426c4671/servers/beafef2e-26c4-4320-9b45-70006e71785c",

36                    "rel": "self"

37                },

38                {

39                    "href": "http://10.1.1.186:8774/170bf7acb88646bc9147085d426c4671/servers/beafef2e-26c4-4320-9b45-70006e71785c",

40                    "rel": "bookmark"

41                }

42            ],

43            "name": "VM3"

44        },

45        {

46            "id": "f8450270-9d96-4dba-b1c2-8ebcef1ff012",

47            "links":[

48                {

49                    "href": "http://10.1.1.186:8774/v2/170bf7acb88646bc9147085d426c4671/servers/f8450270-9d96-4dba-b1c2-8ebcef1ff012",

50                    "rel": "self"

51                },

52                {

53                    "href": "http://10.1.1.186:8774/170bf7acb88646bc9147085d426c4671/servers/f8450270-9d96-4dba-b1c2-8ebcef1ff012",

54                    "rel": "bookmark"

55                }

56            ],

57            "name": "VM4"

58        }

59    ]

60}
通过返回值可以看到vm tenant中共包含VM1 VM2 VM3 VM4四台实例。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56563-1-1.html 上篇帖子: openstack API debug OpenstackEveryProject_CLI,curl_based 下篇帖子: Ironic , Openstack Baremetal Hypervisor | UnitedStack Inc.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表