こんにちは VMware TAM の金子です。
今回は vSphere の REST API についてご紹介します。vSphere 環境の自動化ツールというと API より PowerCLI を思い浮かべる方が多いのではないでしょうか。
PowerCLI に関しては情報ソースも豊富で手軽に扱えることから運用現場においては、幅広く利用されているのではないかと思います。
PowerCLI については過去の TAM Blog で扱っているので、こちらを参照ください。
[TAM Blog] PowerCLIによる運用効率化 – その1 導入編(インストール~超基本まで)
[TAM Blog] Horizon PowerCLI コマンドレット活用方法のご紹介
一方、API に関しては vSphere ではこれまで SOAP API が提供されてきましたが、使いやすさの点で課題もありました。なので PowerCLI 程は普及していなかったのですが、2017 年リリースの vSphere 6.5 から REST API(vSphere Automation API)が使えるようになりました。
初期リリースの REST API はできることが限定的でしたが、vSphere 6.7、7.0 と少しづつ進化してきています。特に vSphere6.7 U2 から Developer Center が登場し、vSphere Client(HTML5)から API Explorer(6.7 U2 以前は所定の URL に直接アクセスすることで利用可能)、
Code Capture などが利用可能になり、より身近に REST API に触れることができるようになっています。
これらを踏まえて、今回は vSphere REST API の入門編ということで、軽く触れてみたいと思います。
◆API Explorer から API の仕様を確認する
それでは vSphere Client から Developer Center にアクセスし、API Explorer を見てみましょう。
「 エンドポイントを選択 」では、対象の vCenter を選択しています。「 API を選択」を見てみると API カテゴリのリストが表示されます。
内容はそれぞれ以下の通りです。
Appliance:vCenter アプライアンスの呼び出し(VCSAアクセス/ヘルス/バックアップなど)
CIS(Common Infrastructure Services):タグ付けに関連する呼び出し(タグの作成/カテゴリ/関連付けなど)
Content:コンテンツライブラリの呼び出し
ESX:ホスト操作に関する呼び出し(vSphere Lifecycle Manager / HCL /ホスト設定など)
Stats:vStats に関する呼び出し(現状、Tech Preview となります)
vAPI:vSphere API の呼び出し(Metadata)
vCenter:vCenter に関する呼び出し(データストア/クラスタ/ VM/ vCenter HA の設定など)
まずは API Explorer から API の仕様について見てみましょう。下記は VM の操作に関する API ですが、GET や POST の説明が記載されています。
さらにGET を展開して詳細を見てみるとレスポンスコードやパラメーターの説明が記載されています。こういった感じで仕様を確認することができます。
◆API を触ってみる
API Explorer から直接 API を実行することも可能です。まずは vCenter 配下の VM の一覧を取得してみましょう。
「 VM 」の GET から「 Try it out 」を展開すると、下部に「 EXECUTE 」とあるので押して実行します。
「 EXECUTE 」から実行すると、Curl コマンドと Response Body を確認することができます。
また、「 DOWNLOAD 」を押すことで JSON ファイルをエクスポートすることも可能です。
内容を見てみると、vCenter 配下の VM の情報が取得できていることが確認できます。
次に vCenter のサービス状態の取得を試してみます。ここでは ESX Agent Manager(EAM)というサービスの状態を見てみます。
実行後、「 DOWNLOAD 」より JSON ファイルをエクスポートして内容を確認してみます。
VAMI より ESX Agent Manager(EAM)の状態を見てみると、API で取得した内容と一致していることが確認できます。こちらの API を活用すれば vCenter のサービスの監視にも使えそうですね。
今回は入門編ということで、API Explorer から API の仕様を確認したり、簡単な操作を実行したりと vSphere REST API の基本を知るための内容でした。
今後の VMware TAM Blog では、より実践的な活用であったり、今回触れなかった Code Capture について扱っていきたいと思います。
◆サポートについて
今回ご紹介した vSphere の REST API に関しては、通常の製品サポートでは対応していません。API に関するサポートが必要な場合は、
別途 VMware SDK/API サポートを購入する必要がありますので、ご注意下さい。
◆vSphere7 Update2 からの API の変更について
最後に vSphere7 Update2 から /rest から /api での提供に変更されています。/rest での API は引き続き利用可能です。ただし時期は未定ですが将来的に廃止が予定されています。
本件に関しては下記 VMware blog にて詳細が説明されていますので、ご確認下さい。
vSphere 7 Update 2 – REST API Modernization
◆参考リンク