如何开始使用OpenStack命令行和API-openstack学习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何开始使用OpenStack命令行和API-openstack学习相关的知识,希望对你有一定的参考价值。
参考技术A 当你开始使用OpenStack,基本上都是从一个已搭建好的环境入手,别人(operator)会告诉你horizon登录的租户名、用户名和密码。horizon登陆页
但毕竟horizon不会封装OpenStack的所有特性,当你已经玩腻了页面上那些功能时,你想尝试更多更丰富的功能,那么恭喜你,你已经向中级玩家迈进了一步。中级玩家对OpenStack的使用基本上有四种方式:
OpenStack client
cURL
Rest API
OpenStack SDK
我个人比较倾向于使用client和API,因为cURL的用法其实跟发送RestAPI相似,但cURL不太方便操作(因为我们普遍都喜欢在可视化页面点击按钮);而SDK则更多是基于OpenStack做应用时会用到,这些人一般不会关注OpenStack的内部机制。
好,你费尽心机跟operator讲好话,跟他说:哥,求求你,让我登陆后台玩玩吧! 当operator吃完你送的冰激凌,抹了一下嘴角,然后潇洒的扔了一个IP给你,“拿去耍吧”。你反复背诵着节点登陆的用户名和密码(注意,这跟horizon登陆的用户名密码不是一个东西),小心谨慎的进了让每个程序员都感到神秘的后台,然后,快速敲了一个命令并回车:
[root@node-2 ~]# nova list
ERROR: You must provide a username via either --os-username or env[OS_USERNAME]
复制代码
shit! 怎么回事?!一个ERROR可能让你慌了神。你平复了一下心情,心想:一定是老子敲命令的姿势不对,再试一次,这次用其他命令:
[root@node-2 ~]# keystone tenant-list
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的密码,其他内容不要改):
#!/bin/bash
# With the addition of Keystone, to use an openstack cloud you should
# authenticate against keystone, which returns a **Token** and **Service
# Catalog**. The catalog contains the endpoint for all services the
# user/tenant has access to - including nova, glance, keystone, swift.
#
# *NOTE*: Using the 2.0 *auth api* does not mean that compute api is 2.0. We
# will use the 1.1 *compute api*
export OS_AUTH_URL=http://119.81.159.110:5000/v2.0
# With the addition of Keystone we have standardized on the term **tenant**
# as the entity that owns the resources.
export OS_TENANT_ID=6d0dff68ecd24215bd971a8d1935ba03
export OS_TENANT_NAME="admin"
# In addition to the owning entity (tenant), openstack stores the entity
# performing the action as the **user**.
export OS_USERNAME="admin"
export OS_PASSWORD="tUWkuBpN"
并发编程--锁--如何使用命令行和代码定位死锁
用命令行的方式找到死锁
本地环境下,如果程序发生死锁后,首先cmd进入${JAVA_HOME}/bin/中,输入jps命令,就可以查看到当前 Java 程序的 pid,找到死锁类的pid后执行jstack命令+空格+死锁类的 pid,就可以获取线程获取锁的信息。
截取一部分和死锁相关的有用信息
常见命令解析
(1)jps(Java Virtual Machine Process Status Tool),是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。
其中PID相当于内存给它(进程)分配的名字,每个进程都有属于自己唯一的一个PID,我们可以利用找到PID来处理相应的进程,上图中27824就是pid。
(2)jstack主要用来查看某个Java进程内的线程堆栈信息.
用代码来定位死锁的方式
使用ThreadMXBean 工具类
运行结果
以上是关于如何开始使用OpenStack命令行和API-openstack学习的主要内容,如果未能解决你的问题,请参考以下文章
如何开始使用OpenStack命令行和API-openstack学习
OpenStack 通用设计思路 - 每天5分钟玩转 OpenStack(25)