APIを使用してVMware vSphereを管理しよう!

皆さんこんにちは。VMware担当の大谷です。
ハイパーバイザーや仮想マシンをどのように管理していますか? vSphere Clientは使いやすくていいですよね。PowerShellでバッチ処理なんて方もいらっしゃると思います。しかし今回はこれらとは違う第3の管理手法としてAPIの活用についてご紹介します。

  • APIとは?

    Application Programing Interfaceの略で、簡単に言うとアプリケーション同士での情報交換や、人間や他のアプリケーションから指示を受け取るための窓口のことです。いくつか種類がありますが、最近はREST(Representational State Transfer)という通信にHTTPSを使った手法が主流になっています。呼び出し元からHTTPSリクエストを宛先ホストに送信して結果を受け取るという点では皆さんがWebブラウザでWebサイトを閲覧するのと同じですね。少し違うのは、送り返されるデータがHTMLだけではなく、プレーンテキストやJSONなど様々なものだというところです

  • VMware vSphereにもAPIがあります!

    もちろんvSphereにもAPIが用意されています。というより、すべての管理はAPI経由で実行されているのです。おなじみのvSphere Clientは人間のGUI操作に従ってAPIを呼び出して仮想マシンを作成したりvMotionしたりしています。このあたりはパブリッククラウドであるAWSやAzureの管理コンソールと同じですね。

  • vSphere Clientのデベロッパーセンターを試してみよう!

    とりあえず何か試してみましょう。今回は、仮想マシンをAPI経由でPower ONしてみたいと思います。 vSphere ClientにはAPIをGUIで呼び出せるツールが用意されています。vSphere Clientにログインして、メニュ>ホーム>デベロッパーセンターを選択してください。

  • 仮想マシンの電源をONにしてみましょう!

    では、APIを使って仮想マシンの電源をONにしてみましょう。vCenter上にはあらかじめテスト用の仮想マシンを用意してあります。

    使用するAPIはvm/powerの中にあるstartです。実際のリクエスト送信先は、
     https://(vCenterのFQDN)/rest/vcenter/vm/(vm名)/power/start
    になります。今回はデベロッパーセンターを使いますので気にする必要はありません。

    APIの中身を見てみると、どうやらvmというパラメータの指定が必要なようです。それではここにテスト用仮想マシンの名前であるho-testpcと入力して実行してみましょう。

  • なぜか仮想マシンが見つからないとエラーが発生

    仮想マシンが見つからないというJSONのメッセージがvCenterから返ってきました。どうやら指定した名前ではダメなようです。たしかに、パラメータ名はnameではなくvmと書かれています。コンピュータシステムでは、見た目の名前とは別に一意の名前やIDを内部的に持っていることがあります。Windowsのユーザー名とSIDの関係みたいなもので、一度削除したユーザーをもう一度作成しても別物として扱われますよね? 仮想マシンにも同じような仕組みがあるのかも知れません。

  • 仮想マシンの情報を取得して確認します

    それでは別のAPIを使って仮想マシンの情報を取得してみましょう。選択するカテゴリはvmで、情報を取得したいのでGETセクションを開きます。このまま実行するとvCenter上の全仮想マシンの情報が対象になってデータ量が多くなりますので、namesフィルタを使って名前で絞り込みましょう。

  • 仮想マシンの情報がResponseとして返ってきました

    実行すると、謎な書式のテキストデータが送られてきます。この書式こそREST APIのデータ送受で頻繁に使用されるJSON(JavaScript Object Notation)です。JSONについては、詳しく説明している他のサイトがたくさんありますのでそちらをご覧ください。

    受け取ったテキストを見ると、やっぱりnameとは別にvmという項目がありました。このデータにあるvm-285をpower/start APIのvmに指定するといいようです。
    それでは、正しいパラメータを指定して電源ONをもう一度やってみましょう。

    今度は無事APIを使用して仮想マシンの電源をONにできました!

いかがでしたか? APIを使ってvSphereを制御できれば、独自のアプリケーションと連携させることもできるようになります。仮想化環境の管理・運用の第3の手法として、ぜひAPIを活用してみてください!

VMwareの記事




※閲覧にはiDATEN(韋駄天)へのログインが必要です。