2021年7月21日水曜日

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ステータスコードで通知するという原則が含まれることもある。

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

1. Nutanix REST API
Nutanix REST APIを使⽤すると、Nutanixクラスタに対してシステム管理コマンドを実⾏するスクリプトを作成できます。APIを使⽤すると、HTTP要求を使⽤してクラスターに関する情報を取得したり、構成変更可能になります。コマンドからの出⼒はJSON形式で返されます。
動作イメージについても合わせてご覧いただければと思いますが、送信側(クライアント)から受信側(Nutanixクラスタ)に対して、必要としているクラスタ情報を取得ししたり、作成・更新・削除する際にHTTPをベースに操作を⾏います。

HTTPで送信した命令を元に出⼒結果をHTTPのコードとJSONファイルで出⼒します。
このようにして、HTTPのリクエストからNutanix上の操作を⾏うことができるようになっているのが、Nutanix REST APIになっています。

2. Nutanix REST APIを利用するには
Nutanix REST APIを利⽤するには、Nutanix REST APIが何ができるのかを知る必要があります。Prismの管理画⾯の右上にあるアカウントのメニューからREST API Explorerがメニューにあるので、こちらをクリックします。
REST API Explorerが起動されるとNutanix APIが表⽰されますが、REST APIにはバージョンもございます。バージョンの指定は右側のプルダウンメニューから選択することができます。現状はVersion3まであります。

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

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

3. オペレーションに関して
Clusterに関するオペレーションが表⽰されます。例えばGet clusterなどはNutanixのクラスタ情報をクライアント側から取得するAPIになっています。それ以外にも様々な変数をNutanixクラスタの情報を作成、更新するAPIもあります。
ここで、Get clusterをクリックするとクラスタの情報がウィンドウで展開されて表⽰されます。ここでウィンドウで表⽰されているのがクライアント側から送信するGet clusterのREST APIの中⾝になります。

4. APIをテストする
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を使用した完全なライフサイクルの自動化
利⽤できるようなシーンとして、イメージのようなものを想定しています。
例えばプロビジョニングについて説明します。

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

どのように対応するかについては、仮想マシンのプロビジョニングに必要なイメージを⽤意して、それを必要な台数分をPOSTで作成することで対応できます。
その結果、プロビジョニングの時間が数分程度で終了して、管理者が準備に費やす時間を削減することができます。

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

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

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

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

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








0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。