【转载】如何开始使用OpenStack命令行和API

【转载】

【原文地址】http://lingxiankong.github.io/blog/2014/08/02/openstack-client-api/#userconsent#

当你开始使用OpenStack,基本上都是从一个已搭建好的环境入手,别人(operator)会告诉你horizon登录的租户名、用户名和密码。

但毕竟horizon不会封装OpenStack的所有特性,当你已经玩腻了页面上那些功能时,你想尝试更多更丰富的功能,那么恭喜你,你已经向中级玩家迈进了一步。中级玩家对OpenStack的使用基本上有四种方式

  • OpenStack client
  • cURL
  • Rest API
  • OpenStack SDK

我个人比较倾向于使用client和API,因为cURL的用法其实跟发送RestAPI相似,但cURL不太方便操作(因为我们普遍都喜欢在可视化页面点击按钮);而SDK则更多是基于OpenStack做应用时会用到,这些人一般不会关注OpenStack的内部机制。

好,你费尽心机跟operator讲好话,跟他说:哥,求求你,让我登陆后台玩玩吧! 当operator吃完你送的冰激凌,抹了一下嘴角,然后潇洒的扔了一个IP给你,“拿去耍吧”。你反复背诵着节点登陆的用户名和密码(注意,这跟horizon登陆的用户名密码不是一个东西),小心谨慎的进了让每个程序员都感到神秘的后台,然后,快速敲了一个命令并回车:

  1. [[email protected]-2 ~]# nova list
  2. ERROR: You must provide a username via either --os-username or env[OS_USERNAME]

shit! 怎么回事?!一个ERROR可能让你慌了神。你平复了一下心情,心想:一定是老子敲命令的姿势不对,再试一次,这次用其他命令:

  1. [[email protected]-2 ~]# keystone tenant-list
  2. Expecting an auth URL via either --os-auth-url or env[OS_AUTH_URL]

天呐! 呜呼一声,你已然跪了……眼角斜了斜operator,他匆忙的背影让你失去了打扰他的信心,又摸了摸兜里仅剩的1块硬币,准备打退堂鼓。

等等! 请看完我的blog,会让你起死回生的。

找到rc文件

找了半天资料,你可能已经知道你需要的就是一个文件,然后source一下。但文件的内容从哪里来?因为你到目前为止只知道horizon登录的用户名和密码。好,我现在告诉你:

第一步,登录horizon,进入下图所示的页面。

看到那个“下载OpenStack RC文件”的按钮了么?看到了么?看到了么?别光顾着点头了,还等啥?!

打开下载的文件(这里举个例子,我以admin用户登录的),对内容稍作修改(主要是最后那个password,改成你登录horizon的密码,其他内容不要改):

  1. #!/bin/bash
  2. # With the addition of Keystone, to use an openstack cloud you should
  3. # authenticate against keystone, which returns a **Token** and **Service
  4. # Catalog**. The catalog contains the endpoint for all services the
  5. # user/tenant has access to - including nova, glance, keystone, swift.
  6. #
  7. # *NOTE*: Using the 2.0 *auth api* does not mean that compute api is 2.0. We
  8. # will use the 1.1 *compute api*
  9. export OS_AUTH_URL=http://119.81.159.110:5000/v2.0
  10. # With the addition of Keystone we have standardized on the term **tenant**
  11. # as the entity that owns the resources.
  12. export OS_TENANT_ID=6d0dff68ecd24215bd971a8d1935ba03
  13. export OS_TENANT_NAME="admin"
  14. # In addition to the owning entity (tenant), openstack stores the entity
  15. # performing the action as the **user**.
  16. export OS_USERNAME="admin"
  17. export OS_PASSWORD="tUWkuBpN"

好了,现在你可以登录后台,新建一个文件,然后把上面的内容复制进去,执行久违的source,然后再次运行命令:

  1. [[email protected]-2 ~]# vi ~/openrc
  2. [[email protected]-2 ~]# source ~/openrc
  3. [[email protected]-2 ~]# nova list
  4. [[email protected]-2 ~]# keystone tenant-list
  5. +----------------------------------+----------+---------+
  6. | id | name | enabled |
  7. +----------------------------------+----------+---------+
  8. | 6d0dff68ecd24215bd971a8d1935ba03 | admin | True |
  9. | d1f2d43d358743eda4e37bfd489c1163 | services | True |
  10. +----------------------------------+----------+---------+
  11. [[email protected]-2 ~]#

呵呵,别亲我?!别动我!!

Rest API

虽然使用命令行已经很接近OpenStack的本质了,但别忘了,命令行毕竟也是一种封装,如果你想玩的再透一些,Rest API是个不错的选择,使用Rest API之后,OpenStack在你面前基本上就是裸奔了。

关于API的使用我不做过多说明,因为在我之前的blog和topic里面已经说过太多次了,看一看下面的截图,你自己再稍微google一下,就什么都明白了。

时间: 2024-08-08 17:32:53

【转载】如何开始使用OpenStack命令行和API的相关文章

CloudFoundry命令行和Kubernetes命令行的Restful API消费方式

先说CloudFoundry的命令行工具CLI.我们在CloudFoundry环境下工作,第一个使用的命令就是cf login. 如果在环境变量里维护CF_TRACE的值为true: 则我们能发现,诸如cf login这种命令,实际上也是通过消费Restful API来完成的. 下图是cf login这个命令的api endpoint请求细节,供大家参考: API endpoint: https://api.cf.eu10.hana.ondemand.com REQUEST: [2018-09-

openstack:RESTful API的查看与调试

1 相关文档及官网示例 官网API介绍: <openstack-bk-api-ref.pdf> 网址: http://developer.openstack.org/api-ref.html 下载pdf: http://developer.openstack.org/api-ref-guides/bk-api-ref.pdf 关于RESTful可以参考官方文档: http://docs.openstack.org/zh_CN/api/quick-start/content/index.html

在CMD命令行和PowerShell中实现复制粘贴功能

在CMD命令行和PowerShell中实现复制粘贴功能 经常使用命令行或者PowerShell的朋友肯定会遇到这种情况:粘贴文本很简单,右键--选择粘贴即可,但是想要复制命令行或者PowerShell中的命令,倒是不知道怎么办了.其实只需要更改其属性. PS:PowerShell是基于任务的命令行外壳,这里和CMD命令行设置一样. 左键点击CMD处理程序左上角,选择属性.(或者按下Alt+空格). 选中快速编辑模式,点击确定. 这时,我们可以选择命令行中的文本了. 在新命令行中双击右键,即可实现

Python进阶(三十五)-Fiddler命令行和HTTP断点调试

Python进阶(三十五)-Fiddler命令行和HTTP断点调试 一. Fiddler内置命令 ??上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的session不是同一个概念,这里的每条HTTP请求都称为一个session).界面中能够看到Fiddler抓取的全部HTTP请求.而为了更加方便的管理全部的session, Fiddler提供了一系列内置的函数用于筛选和操作这些session(习惯命令行操作Linux的童鞋应该能够感受到这会有多么方便

Cent OS 命令行和窗口界面默认登录切换方法

在 CentOS 中的修改方法如下: 1. root登陆,免得老是sudo 2. 打开/etc/inittab 文件     #vim /etc/inittab 3. 在默认的 run level 设置中,可以看到第一行书写如:      id:5:initdefault:(默认的 run level 等级为 5:即图形模式 3:即命令行模式) 4. 将第一行的 5 修改为 3 即可. 5. 保存文件后重启系统你就可以看见是启动的文本界面了. Cent OS 命令行和窗口界面默认登录切换方法,布

扩展 OpenStack 的 REST API 的方法

以Nova REST API为例, 你应该按照以下步骤来扩展 Nova REST API (使用 类nova.api.openstack.compute.contrib.floating_ips.Floating_ips 作为例子) 1)    创建一个新的extension 子类. Extension子类应该派生于"nova.api.openstack.extensions ExtensionDescriptor" 以 Floating_ips 类为例 2)    在 Nova AP

CentOS下命令行和桌面模式的切换方法

CentOS下命令行和桌面模式的切换方法 桌面模式和命令行模式的切换方法 用编辑器打开 /etc/inittab 文件(这里用的是vi,你可以选择你喜欢的): #vi /etc/inittab 打开效果图如下: 桌面模式    : 把光标所在地点修改成   id:5 命令行模式:把光标所在地点修改成   id: 3 修改好之后,切换vi到命令模式(ESC切换)输入 :wq!  回车保存退出. (想了解更多vi命令) ,然后重启系统,命令是: #reboot 顺便说明一下各个选项的含义: 0 所有

js调试系列: 控制台命令行API

上次初步介绍了什么是控制台<js调试系列: 初识控制台>,以及简单的 console.log 输出信息.最后还有两个小问题,我们就当回顾,来看下怎么操作吧. 先打开百度,然后按 F12 打开后,如果不是 Console 项的就点击 Console 这项,因为我们要在控制台操作..看到如下内容:好了我们先清空内容,可以右击选 Clear console 菜单,或者输入 clear() 都行.接着,我们输入 document.getElementById('kw1'); 然后回车,就可以看到 id

【转载】每天一个linux命令(11):nl命令

转载至:http://www.cnblogs.com/peida/archive/2012/11/01/2749048.html nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能. 1.命令格式: nl [选项]... [文件]... 2.命令参数: -b  :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行