*

vSphereAPI をJavaでプログラミングする ~vijava programming tips

公開日: 最終更新日:2014/07/25  |  By  |  VMware, vSphereAPI

by kumagai 2013/02/01

VMwareの提供する仮想化プラットフォーム、vSphere
ビットアイルではこのvSphereを使用したサーバオンデマンドNEXTという仮想化インフラサービスを提供しています。
そして本日から、このサーバオンデマンドNEXTで Self Server というセルフサービス型メニューのトライアルを開始することとなりました。
このサービスではWebのコントロールパネルから仮想サーバ一台単位でセルフコントロールが可能となります。

私はこのSelf Serverのコントロールパネル部分の開発を担当していますので、
この中で使用したvSphere API による仮想サーバの制御のプログラミングのTipsをご紹介していきたいと思います。

vSphere APIと一口に言っても様々な言語向けのものが提供されているのですが、
今回使用したのはvijavaというJavaベースのライブラリになります。
オープンソースプロジェクトとしてBSDライセンスで提供されており誰でも自由に使用することができるものとなっています。
最近ではSourceForge.jpからもライブラリのダウンロードが可能となったようです。

さて、それではvSphere APIでの仮想マシン操作とはどのようなものか、
初回は一番簡単な仮想マシンの電源ONとシャットダウンを行うプログラムを例に大まかな流れをご紹介することといたしましょう。

    //①vCenterへの接続を行います。
    //この例では接続先のvCenter Serverのホスト名をvcenter-host,
    //ユーザ名:admin ,パスワード :passwordとしています。
    ServiceInstance si = new ServiceInstance(
        new URL("https://vcenter-host/sdk"), "blogUser", "password", true);

    //②インベントリのルートフォルダを取得します。
    Folder rootFolder = si.getRootFolder();

    //③②で取得したフォルダ以下にある"vmname"という
  //名称の仮想マシンのオブジェクトを取得します。
    VirtualMachine vm = (VirtualMachine) new InventoryNavigator(
      rootFolder).searchManagedEntity("VirtualMachine", "vmname");


    //④取得した仮想マシンの電源ON操作です。
    //電源ON操作はタスク=非同期処理です。
    Task task = vm.powerOnVM_Task(null);

    //⑤④のタスクの終了を待ち、処理が成功したか否かを判定します。
    if(task.waitForMe()==Task.SUCCESS)
    {
        //Task.SUCCESSの場合は仮想マシン操作が成功しています。
    }

    //⑥仮想マシンのシャットダウン操作です。こちらは同期処理のため
    //タスクを取得することはできません。
    vm.shutdownGuest();

 

 

この操作は、vSphere ClientのGUIを操作するのと同じような感覚で捉えることができます。
同じ操作をGUIから行った場合と比較してみると、

①vCenterへの接続
[GUIの操作]vSphere Clientへログインします。

②インベントリのルートフォルダ取得
③”vmname”という仮想マシンを取得
[GUIの操作]インベントリのルートフォルダ以下にあるvmnameという仮想マシンを選択する

④取得した仮想マシンの電源をONにする
[GUIの操作]選択した仮想マシンを右クリック-> 電源 -> パワーオン

⑤仮想マシンが電源ON状態となりました。

⑥仮想マシンをシャットダウンする。
[GUIの操作]選択した仮想マシンを右クリック-> 電源 -> ゲストのシャットダウン

このように、vSphere APIを使用すると、vSphere ClientのGUIから操作しているのと
同じ感覚で仮想マシンやそのほかのオブジェクトの操作が可能です。
実は、このようなvijavaの簡単なサンプルはこちらでも提供されていますので、
合わせて参考にされるとよいと思います。

次回以降の私の記事ではサンプルをベースにより実践的な内容や
サンプルからは読み取りにくい事柄などをご紹介していきます。
ご質問や要望なども受け付けますので、コメント欄に記載ください。

関連記事

WS000093

VMware vSphere PowerCLIを使った仮想マシンの基本操作

2015年1月18日 by ymaeda vSphereへのログイン 今回はPowerCLIを使

記事を読む

DSC_0584

vForum 2012

by kumagai 2012/11/7初めまして。ビットアイル総研の熊谷です。今日は11月6日、7

記事を読む

img-000002

仮想マシンへのISOイメージのマウント ~vijava programming tips(12)

by kumagai(@kumagai19o) 2013/8/30 今回は仮想マシンにデータス

記事を読む

blog-000018

仮想マシンの作成 ~vijava programming tips(3)

by kumagai(@kumagai19o) 2013/2/21 vijavaによるvSph

記事を読む

no image

INDEX : vijava Programming

by kumagai@kumagai19ovijava programming tips 

記事を読む

blog-000051

仮想デバイス設定の変更 ~vijava programming tips(4)

by kumagai(@kumagai19o) 2013/3/11 vijavaによるvSph

記事を読む

img-000004

仮想マシンのパフォーマンスチャートの取得 ~vijava programming tips(10)

by kumagai(@kumagai19o) 2013/8/8 今回は仮想マシンのパフォーマ

記事を読む

blog-000007

インベントリから操作対象のManagedEntityを取り出す ~vijava programming tips(2)

by kumagai 2013/2/8 vijavaによるvSphereAPIプログラミングt

記事を読む

WS000093

VMware vSphere PowerCLIの導入

2014年10月27日 by ymaeda PowerCLIとは PowerCLIは、Wind

記事を読む

img-000001

仮想マシンのクローン作成(Windows) ~vijava programming tips(8)

by kumagai(@kumagai19o) 2013/7/18 今回はWindow

記事を読む

no image

ビットアイル総合研究所は、クラウド技術に関する調査&研究を通して、社会と会社に寄与していくことを目的に、ビットアイル・エクイニクスの企業内研究所として2011年8月に設立されました。

openstack-figure1-2x
COHO DataStream のCinder連携

OpenStack Cinder のストレージバックエンドとしてはCe

blog-ocata
Jujuで Ocataを含む様々なバージョンのOpenStack をデプロイする方法

祝OpenStack Ocata リリース!! ということで、早速デプ

newton
Juju Manual Cloud で OpenStack 環境構築

本当にご無沙汰しております。 この投稿はOpenStack Adve

top
HACK! THE Juju/MAAS

6/8~6/10まで幕張メッセで開催されたInterop 2016。皆

dpdk
OpenStack OVS VXLAN ネットワークの高速化

少し前の話になりますが、3月2日に開催された 日本仮想化技術株式会社様

→もっと見る

PAGE TOP ↑