网站章子怎么做,域名估价,骨骼型的网站,国内开源网站jclouds序幕 我使用和为jclouds贡献了一年多的时间。 到目前为止#xff0c;我已经在很多领域广泛使用了它#xff0c;尤其是在Fuse生态系统中 。 它的强大之处在于它缺少一件事#xff0c;该工具可用于管理jclouds也提供访问权限的任何云提供商。 类似于EC2命令之类的工具我已经在很多领域广泛使用了它尤其是在Fuse生态系统中 。 它的强大之处在于它缺少一件事该工具可用于管理jclouds也提供访问权限的任何云提供商。 类似于EC2命令之类的工具但具有jclouds的凉爽性。 一个通用的工具通过它您可以管理EC2RackspaceOpesntackCloudStack…为其命名。 我真的很高兴现在有了这样的工具并且它的第一个版本即将发布。 因此这篇文章是对新的jclouds cli的介绍它有两种形式 互动模式外壳 非互动模式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球。 提取后您会发现一个类似以下的结构 bin文件夹包含两个脚本 jclouds-cli 启动交互式外壳。 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个节点然后销毁所有节点。 配置的环境变量是 JCLOUDS_COMPUTE_PROVIDER aws-ec2 JCLOUDS_COMPUTE_IDENITY ???? JCLOUDS_COMPUTE_CREDENTIAL ??? 当使用jclouds脚本时默认情况下将使用jclouds支持的所有提供程序。 您可以通过将自定义jar放在系统文件夹下最好使用类似目录结构的Maven来添加自定义提供程序和api 。 使用交互式外壳 jclouds cli的第二种形式是交互式shell。 交互式外壳以类似的方式工作但是它还提供了其他功能 服务可重用性 服务创建一次 代码完成 完成命令 模块化 允许您仅安装所需的东西。 可扩展的 您可以添加自己的命令。 在上面的示例中我们为EC2创建了可重用服务然后执行了一个节点列表该列表显示了我们在上一个示例中创建和销毁的节点。 将交互式外壳与多个提供程序或API结合使用 交互式外壳将允许您使用不同的配置参数帐户等为多个提供程序和api注册计算服务甚至为同一提供程序或api注册多个服务。 上图显示了如何使用不同的配置参数为同一提供者创建多个服务。 它还显示了如何指定每种情况下使用的服务。 再次注意在此示例中未传递标识和提供者但是将其作为环境变量提供。 交互模式的模块化性质 如上所述交互式外壳也是模块化的允许您在运行时添加/删除模块。 模块可以支持提供程序或api但是可以是您可能需要的任何扩展类型。 要查看可以在交互模式下使用的可用提供程序和api的列表可以使用featureslist和featuresinstall命令。 在下面的示例中我们列出了“ openstack ”的功能和grep然后安装了jclouds openstack-nova api。 然后我们为其创建服务并在我们的Openstack中列出节点。 配置命令输出 最初命令输出是根据最常见的云提供程序设计和格式化的。 但是输出并非对所有提供者都是最佳的不同的宽度等。 此外不同的用户需要显示不同的内容。 为了解决该问题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.expressionshardware.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.alignmentsleft;right;right;right#Sort by the [cpu] column in descending order
hardware.shortby[cpu]
hardware.ascendingtrue 使用此配置image list命令将产生以下输出 我们可以修改上面的配置并添加其他列该列将显示分配给当前硬件配置文件的卷。 为此我们需要简要了解一下jclouds硬件对象的外观 public interface Hardware extends ComputeMetadata { List? extends Processor getProcessors();int getRam();List? extends Volume getVolumes();PredicateImage 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.expressionshardware.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.alignmentsleft;right;right;right;left#Sort by the [cpu] column in descending order
hardware.shortby[cpu]
hardware.ascendingtrue 新配置将在EC2上产生以下输出 您可以在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.htmljclouds