< 前回の投稿を読む

 

こんにちは、仮想化技術およびクラウドソリューション担当の平原です。前回までは、仮想マシンプロビジョニング時のIPアドレス払い出しをNetwork Profileという設定を使用して自動化してみました。ここでお客様から「IPアドレス管理の自動化が可能なことは分かったけど、構成管理の一貫として、IPアドレスの払い出し状況はvRealize Automationの画面を見ることなく管理出来るようにしたい。Network Profileの情報をまとめて取り出す方法はないだろうか」という質問を受けました。このようにvRealize Automationから情報を取り出したり、他のツールからvRealize Automationを制御するためにvRealize AutomationはREST APIが便利です。

 

REST APIとは、それ自体で何か機能が定義されているAPIではなく、分散システムにおいて複数のソフトウェアを連携させるのに適したお作法に基づいたAPIといったものでしょうか。一般的にはパラメータを指定して、特定のURLにHTTPでアクセスすると、XMLまたはJSONで記述されたメッセージが返ってくるようなシステムおよび呼び出しインターフェースのことを指します。これによって、あるリソースを参照(GET)したり、またはリソースの新規作成(POST)、修正(PUT)が可能になります。具体的には、情報を参照、更新したり、何か新しい動作を指示するといった感じですね。

 

ということで、最近の言語にあまり馴染みのない(?)古くさい私は、今回はcurlコマンドを使用して、シンプルにREST APIを叩いてみますが、もちろんJavaやPythonなどで作成したアプリケーションからもREST APIを介して、クラウドそのものをスクリプトベースで運用することも可能となります。


vRealize Automationの場合、まずは認証操作が必要となります。vRealize Automationサーバに対して、API操作を行うHTTP Bearer Token(HTTPベアラトークン)なるものを要求します。返り値の黄色の長たらしい文字列がそのトークンです。このトークンを使うことで、デフォルトで24時間はトークンを要求した利用者でアクセスしているよということを証明することができるのです。関所手形みたいなものですね。

restapi1.png

次にこのトークンを使って、Network Profileの情報を参照します。そうすると、これまたダラダラとシリアルな文字列が返ってくるので、これを適当なコマンドやツールでパーズ(構文解析)してあげれば、自由自在な形で情報を整形して取り出すことが可能になります。今回はjqコマンドで単純整形した出力でお見せします。黄色の部分の"192.168.22.7"に着目しておいてください。

 

restapi2.png

restapi3.png

(省略)

restapi4.png

(省略)

restapi5.png

さて、これを確認の意味でvRealize AutomationのNetwork Profile設定画面から見てみましょう。着目していたIPアドレス"192.168.22.7"が"Allocated"で一致しているのがお分かりいただけるでしょう。REST APIで参照した情報は構造化されたシンプルなテキストなので、ここから必要な情報を抜き出せば、構成管理台帳の元ネタに使用できますし、いわゆるITILで言うところのCMDB(構成管理データベース)があれば、ツール間連携でデータベースにデータを直接インポートすることも容易に可能です。

 

network_profile.png

 

このようにREST APIを活用すると、単なるGUI操作しか出来ないと思われたクラウドサービスも、皆さんが日頃活用している業務フローにうまく組み入れることが出来そうな印象を持っていただけたのではないでしょうか?次回は、VMware社が提供しているvRealize CloudClientというCLIツールを使用して、従来のコマンドライクな形でvRealize Automationからの情報参照などを行ってみたいと思います。

 

続きの投稿を読む >