jclouds_jclouds的命令行界面

jclouds

序幕

我使用和为jclouds贡献了一年多的时间。 到目前为止,我已经在很多领域广泛使用了它,尤其是在Fuse生态系统中 。 它的强大之处在于它缺少一件事,该工具可用于管理jclouds也提供访问权限的任何云提供商。 类似于EC2命令之类的工具,但具有jclouds的凉爽性。 一个通用的工具,通过它您可以管理EC2,Rackspace,Opesntack,CloudStack…为其命名。

我真的很高兴,现在有了这样的工具,并且它的第一个版本即将发布。

因此,这篇文章是对新的jclouds cli的介绍,它有两种形式:

  1. 互动模式(外壳)
  2. 非互动模式(CLI)

一点历史

作为一名Karaf提交者,我围绕jclouds做的第一件事就是致力于其OSGi支持。 第二件事是为Apache Karaf进行jclouds集成。 因此,我从事了一个项目,该项目使在Karaf上安装jclouds变得非常容易,并在blob存储周围添加了第一个基本命令,并且Jclouds Karaf项目开始形成。 同时,我的朋友和同事Guillaume Nodet也开始了类似的工作,他为Jclouds Karaf做出了贡献。 该项目现在支持大多数jclouds操作,并提供了丰富的完成支持,这使其真正快速且易于使用。

当然,这个集成项目主要针对的是熟悉OSGi和Apache Karaf的人 ,不能像我在序言中梦到的那样被视为通用工具。

几个月前, Andrew Bayer开始考虑构建通用jclouds cli。 然后,这让我大吃一惊 :“ 我们为什么不重用在Jclouds Karaf上所做的工作来构建通用的cli?

关于Apache Karaf的一大优点是,它易于品牌化,并且由于其模块化的基础,您可以轻松地添加/删除位以创建自己的发行版。 最重要的是,它允许您发现和使用OSGi之外的命令。

因此,创建一个量身定制的Karaf发行版(带有“ 开箱即用 ”的jclouds集成)似乎是一个好主意,任何人都可以使用而无需了解Karaf,无论是作为交互式外壳还是cli。 这里是: Jclouds CLI 。

Jclouds CLI入门

您可以从源代码构建cli,也可以下载tar球。 提取后,您会发现一个类似以下的结构:

屏幕截图2012年7月14日的7.54.36μ.μ.

bin文件夹包含两个脚本:

  1. jclouds-cli :启动交互式外壳。
  2. jcouds:用于调用jclouds操作的脚本。

zip发行版为Windows提供了等效的bat文件。

让我们从jclouds脚本开始。 该脚本有两个参数,多个选项和参数。 一般用法是:

./jclouds [类别] [操作] [选项] [参数]

  • 类别:要使用的命令类型。 例如节点,组,映像,硬件,映像等。
  • 动作:对类别执行的动作。 例如:列出,创建,销毁,运行脚本,信息等。

无论是计算服务还是blobstore操作,所有操作都将需要提供程序或api以及该提供程序/ api的有效凭据。 所有这些都可以指定为命令的选项。 例如,要列出Amazon EC2上的所有正在运行的节点:

/jclouds node list --provider aws-ec2 --identity [my identity] --credential [my credential] --add-option [some jclouds options]

对于api,您还需要指定端点,例如,对Cloudstack的相同操作可以是:

./jclouds node list --api cloudstack --identity [my identity] --credential [my credential] --endpoint http://localhost:8080/client/api

当然,您可能不想一次又一次地指定相同的选项。 在这种情况下,您可以仅将它们指定为环境变量。 变量名称始终使用大写字母,并分别以JCLOUDS_COMPUTE_JCLOUDS_BLOBSTORE_开头 ,分别用于计算服务和blobstore操作。 因此, –provider选项将与JCLOUDS_COMPUTE_PROVIDER用于计算服务,而JCLOUDS_BLOBSTORE_PROVIDER用于blob存储。

下图显示了用于访问EC2的环境设置中cli的示例用法。 这些命令在EC2上创建3个节点,然后销毁所有节点。

屏幕截图2012-09-06为10.59.06π.μ.

配置的环境变量是:

  • JCLOUDS_COMPUTE_PROVIDER aws-ec2
  • JCLOUDS_COMPUTE_IDENITY ????
  • JCLOUDS_COMPUTE_CREDENTIAL ???

当使用jclouds脚本时,默认情况下将使用jclouds支持的所有提供程序。 您可以通过将自定义jar放在系统文件夹下(最好使用类似目录结构的Maven)来添加自定义提供程序和api

使用交互式外壳

jclouds cli的第二种形式是交互式shell。 交互式外壳以类似的方式工作,但是它还提供了其他功能:

  • 服务可重用性
    • 服务创建一次
  • 代码完成
    • 完成命令
  • 模块化
    • 允许您仅安装所需的东西。
  • 可扩展的
    • 您可以添加自己的命令。

屏幕截图2012-09-06为11.07.03π.μ.

在上面的示例中,我们为EC2创建了可重用服务,然后执行了一个节点列表,该列表显示了我们在上一个示例中创建和销毁的节点。

将交互式外壳与多个提供程序或API结合使用

交互式外壳将允许您使用不同的配置参数,帐户等为多个提供程序和api注册计算服务,甚至为同一提供程序或api注册多个服务。

屏幕截图2012年9月18日的7.34.14μ.μ.

上图显示了如何使用不同的配置参数为同一提供者创建多个服务。 它还显示了如何指定每种情况下使用的服务。 再次注意,在此示例中,未传递标识和提供者,但是将其作为环境变量提供。

交互模式的模块化性质

如上所述,交互式外壳也是模块化的,允许您在运行时添加/删除模块。 模块可以支持提供程序或api,但是可以是您可能需要的任何扩展类型。

要查看可以在交互模式下使用的可用提供程序和api的列表,可以使用features:listfeatures:install命令。 在下面的示例中,我们列出了“ openstack ”的功能和grep,然后安装了jclouds openstack-nova api。 然后,我们为其创建服务,并在我们的Openstack中列出节点。

屏幕截图2012年9月18日的8.47.07μ.μ.

配置命令输出

最初,命令输出是根据最常见的云提供程序设计和格式化的。 但是,输出并非对所有提供者都是最佳的(不同的宽度等)。 此外,不同的用户需要显示不同的内容。

为了解决该问题,cli使用类似表的输出作为命令,并具有可自动调整的列大小,以最适合命令的输出。 命令的输出也是完全可配置的。

每个表实例都将显示数据作为代表表行的集合进行馈送。 列标题是从配置文件中读取的。 使用JSR-233脚本表达式(默认情况下,它使用groovy)计算每个单元格的实际值,这些表达式适用于每一行和每一列。 最后,该表支持按列排序。

硬件列表命令的示例配置可以如下所示:

#The column headers
hardware.headers=[id];[ram];[cpu];[cores]#Groovy expressions for displaying id, ram, sum of (cores X speed) for each proceessor, sum of cores.
hardware.expressions=hardware.id;hardware.ram;hardware.processors.sum{it.cores*it.speed};hardware.processors.sum{it.cores}#Cell alignments. We prefer numbers to be right aligned.
hardware.alignments=left;right;right;right#Sort by the [cpu] column in descending order
hardware.shortby=[cpu]
hardware.ascending=true

使用此配置,image list命令将产生以下输出:

屏幕截图2012-09-18为11.03.56μ.μ.

我们可以修改上面的配置并添加其他列,该列将显示分配给当前硬件配置文件的卷。 为此,我们需要简要了解一下jclouds硬件对象的外观:

public interface Hardware extends ComputeMetadata {    List<? extends Processor> getProcessors();int getRam();List<? extends Volume> getVolumes();Predicate<Image> supportsImage();
}public interface Volume {String getId();Type getType();Float getSize();String getDevice();boolean isDurable();boolean isBootDevice();}

因此,为了获得所有卷的大小和卷的类型,我们可以在硬件对象上使用以下表达式: hardware.volumes.collect {it.size +“ GB” + it.type}

更新后的配置将如下所示:

#The column headers
hardware.headers=[id];[ram];[cpu];[cores];[volumes]#Groovy expressions for displaying id, ram, sum of (cores X speed) for each proceessor, sum of cores.
hardware.expressions=hardware.id;hardware.ram;hardware.processors.sum{it.cores*it.speed};hardware.processors.sum{it.cores};hardware.volumes.collect{it.size + "GB " + it.type}#Cell alignments. We prefer numbers to be right aligned.
hardware.alignments=left;right;right;right;left#Sort by the [cpu] column in descending order
hardware.shortby=[cpu]
hardware.ascending=true

新配置将在EC2上产生以下输出:

屏幕截图2012-09-18为9.39.57μ.μ.

您可以在github上找到该项目: https : //github.com/jclouds/jclouds-cli 。 或者,您可以直接在以下位置下载压缩包: http : //repo1.maven.org/maven2/org/jclouds/cli/jclouds-cli/1.5.0/

参考:来自Ioannis Canellos Blog博客的JCG合作伙伴 Ioannis Canellos的jclouds命令行界面 。

翻译自: https://www.javacodegeeks.com/2013/10/a-command-line-interface-for-jclouds.html

jclouds

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数字信号处理】离散傅里叶级数(DFS)

周期信号的DFS 周期信号一定 不存在 离散傅里叶变换,通过引入冲激序列,可以进行表示,使得数学运算更加严谨;但一定存在傅里叶级数! 时域周期==>频域离散 时域离散==>频域周期 时域又离散又周期==>频域又周期又离散 联系序列的傅里叶变换DFT理解即可,只不过复指…

锁具行业电子工程师岗位职责_赏金猎人招募电子产品开发工程师产品结构工程师...

“赏金猎人”专栏6期来啦&#xff01;这个专栏&#xff0c;可以让产业需求被更广大的社区看见让社区更多有技能、有解决方案的小伙伴参与进来最终促进科技在传统产业中的应用落地专栏里面发布的猎人需求只要你觉得具备欢迎通过businesschaihuo.org跟我们取得联系今天要发布的是…

4代hiv检测50元_别瞧不起国货!这4个姥姥辈的护肤品,真心好用,还不到50元

在护肤这件事情上&#xff0c;其实最适合我们肤质的护肤品还是我们自己国家的生产的&#xff0c;但是国货这几年的确没有欧美的一些大牌&#xff0c;或者是日韩的护肤品更受到欢迎&#xff0c;国货被淹没的一个主要原&#xff0c;就是因为它的价格太过便宜了&#xff0c;可能老…

墙面有几种装修方法_新房装修除甲醛 用这几种方法就足够

新房装修后会散发出刺鼻的有害物质&#xff0c;其中甲醛是含量最高&#xff0c;危害最大的有害气体。那怎么才能有效的去除甲醛呢?下面小编就为大家带来新房装修除甲醛的四大方法&#xff0c;希望能给大家带来帮助。新房装修除甲醛方法一&#xff1a;开窗通风法将新房的窗户打…

Parallel Parking of Truck-Trailer Using Multistage Nonlinear MPC之MATLAB simulink编译转换C++代码(内附下载地址)

引言 这个例子展示了如何使用多级非线性模型预测控制(NLMPC)来并行停放卡车-挂车系统。 在本例的应用场景中,卡车-拖车系统(EGO车辆)在停车场行驶。当停车点被定位时,非线性预测控制规划器生成停车路径。然后,自行车使用另一个非线性MPC控制器,沿着规划的路径到达目标姿态…

攻防世界 适合做桌面_空间“狭小”的二人世界,适合情侣们做浪漫的事情

在最浪漫的11月与它邂逅&#xff0c;有着深秋的枫红、累累的苹果红、还有童话绘本中的苹果屋红&#xff0c;充满着热情活力的色彩&#xff0c;让人感到雀跃。眼瞧见银河的感动。那晚入住于福寿山农场的露营区&#xff0c;位在深山中的它空气轻透又鲜少光害&#xff0c;是观赏星…

使用混合多云每个人都应避免的3个陷阱(第1部分)

每天都在肆意宣传云&#xff0c;但每个人都应避免三个陷阱。 从云&#xff0c;混合云到混合多云&#xff0c;您被告知这是确保业务数字化未来的一种方式。 您必须做出的这些选择不会排除提高客户体验和敏捷交付这些应用程序的日常工作。 让我们开始一段旅程&#xff0c;仔细研…

jquery开关灯案例_全屋开关插座布局讲解,自己规划怕遗漏,手把手教你,很详细...

开关插座是装修内重要的一环&#xff0c;然而也最容易被忽视。装修完住进来后才发现插口不够用&#xff0c;插座被家具挡住&#xff0c;想改还得砸墙&#xff0c;没办法只能用拖线板。然而&#xff0c;满屋都是拖线板&#xff0c;乱糟糟的&#xff0c;看着就惹人烦&#xff0c;…

感量越大抑制频率约低_脉冲信号是什么?它与频率,占空比,正、负逻辑间是什么关系?...

在数字电子系统中&#xff0c;所有传送的信号均为开关量&#xff0c;即只有两种状态的电信号&#xff0c;这种电信号&#xff0c;我们称作做脉冲信号&#xff0c;这是所有数字电路中的基本电信号一个标准的脉冲信号如下图所示。我们把脉冲信号由低电压跳变至高电压的脉冲信号边…

【OFDM系列9】OFDM采用正交区分不同子载波的,但是子载波通过调相后携带了基带信号后,如何还能继续保证两者正交

不经意间在知乎看到这样一个问题&#xff0c;在此记录一下我的看法 OFDM采用正交区分不同子载波的&#xff0c;但是子载波通过调相后携带了基带信号后&#xff0c;如何还能继续保证两者正交&#xff1f; 补充内容是&#xff1a;OFDM是指通过2组正交载波传递信息&#xff0c;但…

企业为什么要开通银企直联_企业为什么要做网站推广

随着现代社会的发展&#xff0c;如果企业不做网站推广&#xff0c;那么可以说是寸步难行&#xff0c;今天就来为大家说说企业为什么一 定要做网站推广的详情&#xff01;1 、网络品牌推广做网络营销的结果就是在互联网要有自己的品牌&#xff0c;并且可以再网络上得到无限性的延…

在Java错误产生之前对其进行处理的新方法

我们如何认识到解决预生产错误的旧方法还不够&#xff0c;以及我们如何能够改变这种情况 第一次尝试时就没有完美的代码&#xff0c;我们所有人都可以证明我们已经学到了很难的方法。 不管我们使用多少测试周期&#xff0c;代码审查或工具&#xff0c;总有至少一个偷偷摸摸的错…

curl 访问不到html_嵌入式工程师入门前后端系列1:访问一个网页

做为嵌入式行业的从业者&#xff0c;最近经常听到PAAS&#xff0c;SAAS等和”云”相关的概念&#xff0c;被整的一头雾水。很多时候咱们的物联网硬件设备都会有一个云平台&#xff0c;用于设备管理或者UI应用展示等功能&#xff0c;这通常是由专门的前后端工程师配合美工一起完…

盲僧一键r闪用什么设置_美加狮R.A.T. PRO X3至尊版带你畅玩模拟飞行

很多模拟飞行或者皇牌空战的玩家们都追求在游戏过程中的真实驾驶体验&#xff0c;渴望通过游戏来实现自己的飞行梦。但普通鼠标的左右键及滚轮并不能带给玩家逼真的体验&#xff0c;美加狮全新发布的鼠标R.A.T. PRO X3至尊版却可以做到。美加狮R.A.T. PRO X3至尊版是美加狮全新…

input标签的值只能两位小数_Day51 HTML表格表单标签、flask框架

目录表格标签表单标签action标签input标签select标签textarea标签form表单提交文件需要注意flask框架1、表格标签<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>表格标签</title><meta name…

webservice 参数太大_手把手系列:常用数据交换方案Web Service接口处理法

手把手系列&#xff1a;常用数据交换方案之Web Service接口处理法Web Service是一个SOA(面向服务的编程)的架构&#xff0c;是一个平台独立的&#xff0c;低耦合的&#xff0c;基于可编程的web的应用程序&#xff0c;可使用开放的XML标准来描述、发布、发现、协调和配置这些应用…

点击事件为什么会失效_Spring事务原理?事务在方法间如何传播?为什么会失效?...

推荐学习疯狂膜拜&#xff01;阿里出品Spring Security王者晋级文档肝了十天半月&#xff0c;献上纯手绘“Spring/Cloud/Boot/MVC”全家桶脑图前言事务我们都知道是什么&#xff0c;而Spring事务就是在数据库之上利用AOP提供声明式事务和编程式事务帮助我们简化开发&#xff0c…

wcdma系统随机接入过程的流程图_招聘电信协优初中级优化工程师、联通系统高级...

点击上方“通信人才网” 订阅&#xff01;招聘岗位招聘职位&#xff1a; 电信协优初中级优化工程师岗位类型&#xff1a;5G无线网络优化,4G-LTE无线网络优化,无线网优项目负责人,DT/CQT测试与分析,2G/3G无线网络优化工作地点&#xff1a; 西宁市,果洛藏族自治州,海南藏族自治州…

基于wincc的虚拟电梯设计_一文带你了解西门子整个虚拟调试与仿真软硬件体系...

写在面前大家好&#xff0c;我是小智&#xff0c;智能制造之家号主~经常有朋友关注到PLCSIM、SIMIT、Amesim、NX MCD、 Process Simulate、Plant Simulation等&#xff0c;但都不知道它们到底做啥的~因此今天对西门子仿真与虚拟调试进行整体介绍&#xff0c;力求让小白也能熟悉…

三星ml1660拆机图解_炫龙DD2拆机,高性能的背后是怎样的面容?

双内存插槽 如标题所说&#xff0c;今天为大家带来炫龙DD2的图解拆机&#xff0c;废话少说&#xff0c;直接进入主题吧&#xff01;笔者对炫龙毁灭者DD2进行了简单拆解&#xff0c;拆解方式为打开D壳&#xff0c;查看散热模组和各部分硬件。炫龙毁灭者DD2延续了品牌一贯传统&am…