Developer Center に触れてみよう – API Explorer 編

最終更新日

Developer Center という機能をご存じだろうか?vSphere 6.7 U2 からサポートされた機能で、API をよりvSphere Client 上から触れるようにしたり(API Explorer)1、vCenter の操作をキャプチャしてコードを吐き出したりと(Code Capture)、開発者向けの機能をより身近に提供することができる。しかしながら、マイナーな機能のせいか、そもそもサポートがよくわからないためか2、あまり使われている様子がない。

そこで今回は、実際にDeveloper Center のAPI Explorer という機能を使って、仮想マシンをインスタントクローンしてみることにしよう。

インスタントクローンとは?

一言で表すと「めっちゃ高速なクローン」である。もう少し丁寧な言い方をすると、ベースとなる仮想マシンのディスクおよびメモリを共有し、パワーオン状態のままクローンすることができる。この機能はもともとVMware Horizon の仮想デスクトップを高速展開するために使われる機能であり、普通はHorizon からしか使わない。

図にすると複雑だが、Horizon でインスタントクローンを使う場合はマスターとなる仮想マシンとそのスナップショットを作成すれば、あとはHorizon 側が自動的にVDI を展開してくれる。

しかしながら、実はこの機能、API 限定だがHorizon だけではなく、vSphere の通常の仮想マシンに対しても適用することができる。詳細な内容はコチラなどを参照してほしいが、今日はとにかくまずはこの機能をAPI Explorer から使ってみよう。

インスタントクローンしてみよう!

環境はおなじみVMware HOL を使うことにする。

https://labs.hol.vmware.com/HOL/catalogs/lab/7807

まずはそもそものDeveloper Center だが、vCenter にログイン後、メニューから選択することができる。が、その前にインスタントクローンの準備をすることにしよう。

今回はapp01a というもともと存在するLinux VM を使ってみる。さっそくWeb Console からログインしよう。ユーザー名はroot、パスワードはVMware1! だ。ログイン後、テキトーにhostname とでも入力しておき、準備は完了である。

Developer Center から、API Explorer を選択し、さまざまなAPI が表示されていることを確認する。

まずは親となるVM の情報を取得してみよう。フィルタにvm と入力し、GET /rest/vcenter/vm を見つける。その後、Try it out をクリックし、Execute をクリックするとcurl コマンドが実行されレスポンスを取得できる。これで、app01a VM のオブジェクト名(≠VM 名)はvm-3002 ということが分かった。

今度は先のフィルタにinstant と入力し、インスタントクローンのAPI を取得する。先と同様Try it out をクリックするが、今度はPOST のため、vCenter に投げるパラメータが必要である。

では何を入力すればよいかだが、細かいAPI 仕様はコチラにある。しかしながら、とにかくシンプルに、単純にインスタントクローンするだけであれば下記のjson をPOST するだけでOK だ。

{
    "spec" : {
        "name" : "ic-test",
        "source" : "vm-3002"
    }
}

“name” は仮想マシン名、source は先に取得したクローンもととなるVM のオブジェクト名だ。

最終的に画像のようなレスポンスが返ってくれば成功だ。インスタントクローンのタスクも実行されていることが分かる。また、仮想マシンも正しく作成されており、先に入力したhostname もそのままの状態で残っている。これはメモリの状態も共有するインスタントクローンならではの特徴だ。

さて、実際はこのままだと使えない。IP が重複しているからである。DHCP を使っていない場合は、ゲストカスタマイズが現在使えず3、手動でIP を設定することになる。

まとめ

スクリーンショットを多めに載せたため記事としては(主にスクロールが)長くなってしまったが、API と言われてもはや身構える必要はなく、API Explorer を使えばインスタントクローン以外にも様々なAPI をvCenter から呼び出すことができる。色々なユースケースがあるだろうから、ぜひ活用してみてほしい。

次回はDeveloper Center の目玉機能であるCode Capture について解説する。

  1. 実際はmob を利用することでvCenter からAPI は触ることはできた。
    https://vdc-repo.vmware.com/vmwb-repository/dcr-public/5e83c02a-0e6c-4bcc-9f0f-c545b230a0de/bf50706a-8886-43b6-acc2-2faf7954fb4f/doc/GUID-9D615A34-EEA5-4BBE-A612-E4600F47B555.html
  2. sdk サポートを別途購入する必要がありそう。
    https://www.vmware.com/jp/support/services/sdk.html
  3. https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-853B1E2B-76CE-4240-A654-3806912820EB.html
アバター

vkbaba

仮想化関連のSE をしています。 投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。