LTN Blog 〜 Lenovo Technology Network 〜

レノボのソリューション・サーバー製品に関する技術情報、お役立ち情報をお届けします

NutanixのREST APIについて知ってみよう!

皆さん、こんにちは レノボ・エンタープライズ・ソリューションズ 小宮です。本日Nutanixで利用できるREST APIについてお話したいと思います。

REST APIについてご存じない方もいらっしゃると思いますので少しご説明したいと思います。

---------------------------------

REST (Representational State Transfer) APIは、Webシステムを外部から利用するためのプログラムの呼び出し規約(API)の種類の一つです。RESTそのものは適用範囲の広い抽象的なモデルであるが、一般的にはRESTの考え方をWeb APIに適用したものをRESTful APIと呼んでいる。

RESTful APIでは、URL/URIですべてのリソースを一意に識別し、セッション管理や状態管理などを行わない(ステートレス)。同じURLに対する呼び出しには常に同じ結果が返されることが期待される。

また、リソースの操作はHTTPメソッドによって指定(取得ならGETメソッド、書き込みならPOSTメソッド)され、結果はXMLやHTML、JSONなどで返される。また、処理結果はHTTPステータスコードで通知するという原則が含まれることもある。

引用:IT用語辞典 e-Words

---------------------------------

NutanixにおいてはREST APIがどのように使われて、どのように利用するのかを今回お話したいと思います。

1.Nutanix REST API

f:id:t_komiya:20190629094350p:plain

Nutanix REST APIを使用すると、Nutanixクラスタに対してシステム管理コマンドを実行するスクリプトを作成できます。APIを使用すると、HTTP要求を使用してクラスターに関する情報を取得したり、構成変更可能になります。コマンドからの出力はJSON形式で返されます。

動作イメージについても合わせてご覧いただければと思いますが、送信側(クライアント)から受信側(Nutanixクラスタ)に対して、必要としているクラスタ情報を取得ししたり、作成・更新・削除する際にHTTPをベースに操作を行います。

HTTPで送信した命令を元に出力結果をHTTPのコードとJSONファイルで出力します。

このようにして、HTTPのリクエストからNutanix上の操作を行うことができるようになっているのが、Nutanix REST APIになっています。

2.Nutanix REST APIを利用するには

f:id:t_komiya:20190629094953p:plain

Nutanix REST APIを利用するには、Nutanix REST APIが何ができるのかを知る必要があります。Prismの管理画面の右上にあるアカウントのメニューからREST API Explorerがメニューにあるので、こちらをクリックします。

REST API Explorerが起動されるとNutanix APIが表示されますが、REST APIにはバージョンもございます。バージョンの指定は右側のプルダウンメニューから選択することができます。現状はVersion3まであります。

f:id:t_komiya:20190629095350p:plain

REST API ExplorerでAPIで管理できるクラスターオブジェクトとのリストを表示します。オブジェクトについては、ベースがURI形式の相対パスになって表示されます。該当のPrism(Nutanix クラスタ)のIPアドレスおよびREST APIのバージョンを指定することで利用できます。

今回はNutanixで利用できるREST APIでClusterのコマンドについて説明したいと思います。ここでClusterに関して操作を展開してみます。

3.オペレーションに関して

f:id:t_komiya:20190629095831p:plain

Clusterに関するオペレーションが表示されます。例えばGet clusterなどはNutanixのクラスタ情報をクライアント側から取得するAPIになっています。それ以外にも様々な変数をNutanix クラスタの情報を作成、更新するAPIもあります。

ここで、Get clusterをクリックするとクラスタの情報がウィンドウで展開されて表示されます。ここでウィンドウで表示されているのがクライアント側から送信するGet clusterのREST APIの中身になります。

4.APIをテストする

f:id:t_komiya:20190629100240p:plain

APIをテストには、「Try it out!」をクリックすることで、クラスタ内で使用するAPIを呼び出してテストできます。

クリックするとクラスタに設定されているIPアドレス情報やマシンのシリアル情報などが取得できるようになります。こちらはブラウザベースでテストしていますが、実際はクライアント側からコマンドを実行することになります。

CentOSがインストールされている仮想マシンからコマンドで、curl コマンドを利用することで、リモートのサーバーに対してコマンドを投入することができます。

$ curl -X GET --header 'Accept application/json' 'http://NutanixのクラスタのIPアドレス:9440/api/nutanix/v2.0/cluster'

このようなAPIを利用することにより、オペレーションがコードされて自動化するためのツールとして利用できます。以前こちらのブログで紹介したCalmなどはこのREST APIなどが連携されて構成されているソリューションだと思って頂ければと思います。

 

では、REST APIを利用するとどのようなことができるのかをまとめてみました。

5.APIを使用した完全なライフサイクルの自動化

f:id:t_komiya:20190629101256p:plain

利用できるようなシーンとして、イメージのようなものを想定しています。

例えばプロビジョニングについて説明します。

新入社員で研修などで開発環境をたくさん作成しなければいけない場合、管理者が一つずつ手動で構築するのは非常に効率が悪くなります。そこで、オペレーションをすべてコードしておくことで必要に作業がシンプル化し、作業時間もかからずに導入が終わります。

f:id:t_komiya:20190629101515p:plain

どのように対応するかについては、仮想マシンのプロビジョニングに必要なイメージを用意して、それを必要な台数分をPOSTで作成することで対応できます。

その結果、プロビジョニングの時間が数分程度で終了して、管理者が準備に費やす時間を削減することができます。

f:id:t_komiya:20190629101850p:plain

システムの最適化にこのAPIを使うためにはどうするのかをお話したいと思います。

例えば制約を受けるようなVMを常にシステムを更新することによって発見して、リソースに影響を与えるような仮想マシンを保護するようなものを探したい場合にもこちらのREST APIを利用することで対応可能になります。

f:id:t_komiya:20190629102201p:plain

発見方法については、Powershellなどの連携で対応できます。システム全体の情報はREST APIで取得し、仮想マシンへの指示はPowerShellなどでそれぞれでできる部分をうまく連携することでパフォーマンスおよびセキュリティなどからシステム守るようなことができるようになります。

NutanixはGUIですべてできるようななっているように見えますが、細かい操作が必要な場合は是非REST APIなども利用してみると良いと思います。

f:id:t_komiya:20190629102540p:plain

最後にNutanixのREST APIにおける簡単なアーキテクチャを紹介したいと思います。参考程度に見て頂ければと思います。

 

以上、よろしくお願い致します。