日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

jclouds的命令行界面

發(fā)布時(shí)間:2023/12/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jclouds的命令行界面 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

序幕

我使用和為jclouds貢獻(xiàn)了一年多的時(shí)間。 到目前為止,我已經(jīng)在很多領(lǐng)域廣泛使用了它,尤其是在Fuse生態(tài)系統(tǒng)中 。 它的強(qiáng)大之處在于它缺少一件事,該工具可用于管理jclouds也提供訪問(wèn)權(quán)限的任何云提供商。 類似于EC2命令之類的工具,但具有jclouds的涼爽性。 一個(gè)通用的工具,通過(guò)它您可以管理EC2,Rackspace,Opesntack,CloudStack…為其命名。

我真的很高興,現(xiàn)在有了這樣的工具,并且它的第一個(gè)版本即將發(fā)布。

因此,這篇文章是對(duì)新的jclouds cli的介紹,它有兩種形式:

  • 互動(dòng)模式(外殼)
  • 非互動(dòng)模式(CLI)
  • 一點(diǎn)歷史

    作為一名Karaf提交者,我圍繞jclouds做的第一件事就是致力于其OSGi支持。 第二件事是為Apache Karaf進(jìn)行jclouds集成。 因此,我從事了一個(gè)項(xiàng)目,該項(xiàng)目使在Karaf上安裝jclouds變得非常容易,并在blob存儲(chǔ)周圍添加了第一個(gè)基本命令,并且Jclouds Karaf項(xiàng)目開始形成。 同時(shí),我的朋友和同事Guillaume Nodet也開始了類似的工作,他為Jclouds Karaf做出了貢獻(xiàn)。 該項(xiàng)目現(xiàn)在支持大多數(shù)jclouds操作,并提供了豐富的完成支持,這使其真正快速且易于使用。

    當(dāng)然,這個(gè)集成項(xiàng)目主要針對(duì)的是熟悉OSGi和Apache Karaf并且不能被視為通用工具的人員,就像我在序言中夢(mèng)想的那樣。

    幾個(gè)月前, Andrew Bayer開始考慮構(gòu)建通用jclouds cli。 然后,這讓我大吃一驚 :“ 我們?yōu)槭裁床恢赜迷贘clouds Karaf上所做的工作來(lái)構(gòu)建通用的cli? ”

    Apache Karaf的一大優(yōu)點(diǎn)是它易于品牌化,并且由于其模塊化的基礎(chǔ),您可以輕松地添加/刪除位以創(chuàng)建自己的發(fā)行版。 最重要的是,它允許您發(fā)現(xiàn)和使用OSGi之外的命令。

    因此,創(chuàng)建一個(gè)量身定制的Karaf發(fā)行版是一個(gè)好主意,它具有“ 開箱即用 ”的jclouds集成,任何人都可以使用而無(wú)需了解Karaf,無(wú)論是作為交互式shell還是CLI。 這里是: Jclouds CLI 。

    Jclouds CLI入門

    您可以從源代碼構(gòu)建cli,也可以下載tar球。 提取后,您會(huì)發(fā)現(xiàn)一個(gè)類似以下的結(jié)構(gòu):

    bin文件夾包含兩個(gè)腳本:

  • jclouds-cli :啟動(dòng)交互式shell。
  • jcouds:用于調(diào)用jclouds操作的腳本。
  • zip發(fā)行版為Windows提供了等效的bat文件。

    讓我們從jclouds腳本開始。 該腳本有兩個(gè)參數(shù),多個(gè)選項(xiàng)和參數(shù)。 一般用法是:

    ./jclouds [類別] [操作] [選項(xiàng)] [參數(shù)]

    • 類別:要使用的命令類型。 例如節(jié)點(diǎn),組,映像,硬件,映像等。
    • 動(dòng)作:對(duì)類別執(zhí)行的動(dòng)作。 例如:列出,創(chuàng)建,銷毀,運(yùn)行腳本,信息等。

    無(wú)論是計(jì)算服務(wù)還是Blobstore操作,所有操作都將需要提供程序或api以及該提供程序/ api的有效憑據(jù)。 所有這些都可以指定為命令的選項(xiàng)。 例如,要列出Amazon EC2上的所有正在運(yùn)行的節(jié)點(diǎn):

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

    對(duì)于api,您還需要指定端點(diǎn),例如,對(duì)Cloudstack的相同操作可以是:

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

    當(dāng)然,您可能不想一次又一次地指定相同的選項(xiàng)。 在這種情況下,您可以僅將它們指定為環(huán)境變量。 變量名稱始終使用大寫字母,并分別以JCLOUDS_COMPUTE_或JCLOUDS_BLOBSTORE_開頭 ,分別用于計(jì)算服務(wù)和blobstore操作。 因此–provider選項(xiàng)將與JCLOUDS_COMPUTE_PROVIDER用于計(jì)算服務(wù),而JCLOUDS_BLOBSTORE_PROVIDER用于blob存儲(chǔ)。

    下圖顯示了用于訪問(wèn)EC2的環(huán)境設(shè)置中cli的示例用法。 這些命令在EC2上創(chuàng)建3個(gè)節(jié)點(diǎn),然后銷毀所有節(jié)點(diǎn)。

    配置的環(huán)境變量是:

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

    當(dāng)使用jclouds腳本時(shí),默認(rèn)情況下將使用jclouds支持的所有提供程序。 您可以通過(guò)將自定義jar放在系統(tǒng)文件夾下(最好使用類似目錄結(jié)構(gòu)的Maven)來(lái)添加自定義提供程序和api 。

    使用交互式外殼

    jclouds cli的第二種形式是交互式shell。 交互式外殼以類似的方式工作,但是它還提供了其他功能:

    • 服務(wù)可重用性
      • 服務(wù)創(chuàng)建一次
    • 代碼完成
      • 完成命令
    • 模塊化
      • 允許您僅安裝所需的東西。
    • 可擴(kuò)展的
      • 您可以添加自己的命令。

    在上面的示例中,我們?yōu)镋C2創(chuàng)建了可重用的服務(wù),然后執(zhí)行了一個(gè)節(jié)點(diǎn)列表,該列表顯示了在上一個(gè)示例中創(chuàng)建并銷毀的節(jié)點(diǎn)。

    將交互式外殼與多個(gè)提供程序或API結(jié)合使用

    交互式外殼將允許您使用不同的配置參數(shù),帳戶等為多個(gè)提供程序和api注冊(cè)計(jì)算服務(wù),甚至為同一提供程序或api注冊(cè)多個(gè)服務(wù)。

    上圖顯示了如何使用不同的配置參數(shù)為同一提供者創(chuàng)建多個(gè)服務(wù)。 它還顯示了如何指定每種情況下使用的服務(wù)。 再次注意,在此示例中,未傳遞標(biāo)識(shí)和提供者,但是將其作為環(huán)境變量提供。

    交互模式的模塊化性質(zhì)

    如上所述,交互式外殼也是模塊化的,允許您在運(yùn)行時(shí)添加/刪除模塊。 模塊可以支持提供程序或api,但是可以是您可能需要的任何擴(kuò)展類型。

    要查看可以在交互模式下使用的可用提供程序和api的列表,可以使用features:list和features:install命令。 在下面的示例中,我們列出了“ openstack ”的功能和grep,然后安裝了jclouds openstack-nova api。 然后,我們?yōu)槠鋭?chuàng)建服務(wù)并列出我們的Openstack中的節(jié)點(diǎn)。

    配置命令輸出

    最初,命令輸出是根據(jù)最常見的云提供程序設(shè)計(jì)和格式化的。 但是,輸出并非對(duì)所有提供者都是最佳的(不同的寬度等)。 此外,不同的用戶需要顯示不同的內(nèi)容。

    為了解決該問(wèn)題,cli使用了類似表的輸出作為命令,并具有可自動(dòng)調(diào)整的列大小,以最適合命令的輸出。 此外,命令的輸出是完全可配置的。

    每個(gè)表實(shí)例均作為表示表行的集合提供顯示數(shù)據(jù)。 列標(biāo)題是從配置文件中讀取的。 使用JSR-233腳本表達(dá)式(默認(rèn)情況下,它使用groovy)計(jì)算每個(gè)單元格的實(shí)際值,這些表達(dá)式適用于每一行和每一列。 最后,該表支持按列排序。

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

    #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命令將產(chǎn)生以下輸出:

    我們可以修改上面的配置并添加其他列,該列將顯示分配給當(dāng)前硬件配置文件的卷。 為此,我們需要簡(jiǎn)要了解一下jclouds硬件對(duì)象的外觀:

    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();}

    因此,為了獲取所有卷的大小和卷的類型,我們可以在硬件對(duì)象上使用以下表達(dá)式: 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上產(chǎn)生以下輸出:

    您可以在github上找到該項(xiàng)目: https : //github.com/jclouds/jclouds-cli 。 或者,您可以直接在以下位置下載壓縮包: http : //repo1.maven.org/maven2/org/jclouds/cli/jclouds-cli/1.5.0/

    參考:來(lái)自Ioannis Canellos博客博客的JCG合作伙伴 Ioannis Canellos的jclouds命令行界面 。

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

    總結(jié)

    以上是生活随笔為你收集整理的jclouds的命令行界面的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。