HPE Blog, Japan
1820171 メンバー
4072 オンライン
109620 解決策
新規ポスト
bana87

【連載】導入前のアドバイス - 遠隔管理②:CLIツールとREST API

この記事は2020年12月に更新されました

 

皆様こんにちは、日本ヒューレット・パッカードでサーバーインフラ・仮想化技術関連のPresalesを担当しております、橘です。

「導入前のアドバイス」シリーズということで、随時記事を投稿させていただきます。

これまでの記事のまとめはこちら

今回は遠隔管理編②ということで、コマンドからサーバー情報を取得するCLIツールのご紹介や、REST APIの仕組み、REST APIを用いてサーバー情報を取得する方法についてご紹介いたします。

~スクリプティング/コマンドユーティリティ~

ますはスクリプティング・コマンドユーティリティのご紹介です。いくつか種類があるのですが、ここでは主要なものをピックアップします。

それぞれの細かい説明は割愛しますが、命令を送る起点はサーバーのホストOSであるか、それとも外部のクライアントOSであるか?使用するOSの種類はWindows かLinuxか?など、使用する環境によってどれを使用するかが分かれます。

・HPQLOCFG

・LOCFG.PL

・HPONCFG

・AMRSH CLP (SSHポート経由)

・IPMI

以下は、2020年11月現在で最新バージョンのiLO 5 ver 2.30で有効なユーティリティのバージョンです。

1..png

IPMIの使い方

様々あるコマンドユーティリティの中でも、多くの皆さんがお使いになっているIPMIについて使用方法をご紹介します。

IPMIは、サーバーOSのIPMIツール(Linuxの場合)やIMPIユーティリティアプリケーション(IMPIutil.exe)経由で使用します。OSによっては、IMPIドライバが有効になっていないものもあるので、下記コマンドでデバイスドライバを起動してください。

起動コマンド(Linux)

RHEL6、SLES10、SLES11:service ipmi start

RHEL7、SLES12:systemctl start ipmi.service

以下は実際の使用例になります。Linux版とWindows版でコマンドの詳細は異なりますが、同等の機能を提供しています。

使用例(Linux)

  • iLOの全般的なステータスを取得する:# ipmitool -H [IPアドレスまたはFQDN] -I lanplus -U [ユーザー名] -P [パスワード] mc info
  • ProLiantサーバーの電源を入れる:# ipmitool -H [IPアドレスまたはFQDN] -I lanplus -U [ユーザー名] -P [パスワード] chassispower on
  • ProLiantサーバーのUIDをオンにする:# ipmitool -H [IPアドレスまたはFQDN] -I lanplus -U [ユーザー名] -P [パスワード] chassisidentify on

使用例(Windows)

  • iLOの全般的なステータスを取得する:C:\> ipmiutil.exe health -N [IPアドレス]-J 3 -U [ユーザー名] -P [パスワード
  • ProLiantサーバーの電源を入れる:C:\> ipmiutil.exe reset -u -N [IPアドレス] -J 3 -U [ユーザー名] -P [パスワード]
  • ProLiantサーバーのUIDをオンにする:C:\> ipmiutil.exe leds -i5 -N [IPアドレス]-J 3 -U [ユーザー名] -P [パスワード]

 

ここまでご紹介してきたIPMIですが、メリットとして

  • エージェントいらずでサーバーリソースを使用しない(独立したBMC, HPEの場合はiLOで動作)
  • 無償のIPMIツールがOSSで公開されており、どのベンダーのサーバーでも同じように使用可能(標準規格としての役割)

などがあげられます。

ただ、以下のようなデメリットもあります。

  • 学習コストや使用するためのハードウェア設定が必要

 

IPMIは標準規格として長きにわたって活躍しており、現在でも使用している方は多いのではないかと思います。ただ、上記のようなデメリットがある&これからのソフトウェアディファインドの時代に合わせて、IPMIではない新たな標準規格が求められるようになりました。そこで生まれたのが、RESTful APIをインターフェースとしたRedfishになります。IPMIの開発にはHPEを始め、Intel, Dell, NECなどが参画していましたが、今後のIMPIの機能拡張は計画されておらず、より近代的なインターフェースであるRedfishへの移行検討を奨励しています。

Joint Message from the IPMI Promoters

https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ipmi-home.html

 

REST API

REST APIとは

先ほど出てきたAPIという単語、聞いたことはあるけれどいまいち何なのかわからないという方も多いのではないかと思います。ここで改めてAPIとは、そしてREST APIとは何かについてご紹介します。

APIとはApplication Programming Interfaceの略で、ソフトウェアとプログラムをつなぐインターフェースの役割です。インターフェースというとわかったようでわからないですが、要は架け橋となるものになります。身近なもので例えると、自分のPCとモニターをつなぐケーブルなんかもインターフェースの役割をする物の一つです。このAPIを使うと、複雑な処理を再度一から記述する必要が無くなったり、誰かが作った高度な処理を他の人が簡単に使えるようになります。また、ソフトウェアをプログラムで動作できるようにするため、自動化の促進にもつながります。

2. APIとは.png

APIはサーバーやクラウドといったインフラだけでなく、Web APIという種類もあります。皆さんが登録しているであろう各種SNSなんかもAPIを公開していて、その中のサービスをプログラム上から簡単に使うことができるようになっています。

そんなAPIの中で、REST APIというのがあります。RESTという概念自体は2000年にRoy  Fieldingが提唱したとされ、その後GoogleやAmazonといった当時の先進的なWeb企業によるWeb API提供をきっかけに、日本では2005年あたりから流行りだしました、RESTの概念に則ったAPIはREST API, または Web APIではRESTful APIと呼ばれています。

今回は個別の詳細な説明はしませんが、RESTの概念である設計思想は以下になります。気になった方はもっと調べてみるといかにRESTの世界がうまくできているかがわかるはずです。

RESTの設計思想

  1. アドレス指定可能なURLで公開されている
  2. インターフェース(HTTPメソッドの利用)の統一がされている
  3. 処理結果がHTTPステータスコードで通知される
  4. ステートレスである
  5. 情報の内部に、別の情報や状態へのリンクを含めることができる

 

REST APIでどうやってサーバー監視する?

そんなREST APIですが、HPEサーバーをiLOや管理ソフトウェアのOneViewがREST APIに対応しています。

以下、REST APIを使ってサーバーの情報をどうやってとってきているかの全体像になります。

  1. クライアントがメソッドと呼ばれる命令をiLO / OneViewに投げる
  2. 命令を受けたiLO / OneViewが内部で処理をして、リクエストの結果をクライアントに送り返す。
  3. 返ってきた結果をクライアントの方で解釈する

3. RESTの仕組み.png

返ってきたレスポンスの中身にサーバー情報が含まれています。

Redfishとは

REST APIの中でも、ハードウェア管理のAPIとしてRedfishという標準規格があります。

これはHPEもDMTF (Distributed Management Task Force) という標準化団体に参画し、開発の先頭に立ってリードしてきた取り組みであり、セキュリティやDevOpsといった面での優位性があります。他のサーバーベンダーやインフラ機器メーカーとも協力をして、業界全体の標準規格となりつつあります。HPEではiLO 4 ver2.00から対応しています。

4. redfish.png

Redfishの構造は階層的になっており、SystemやChassisなど、枝分かれした先の部分にGETでアクセスすることでサーバー情報が返ってくるという仕組みになっています。

5. redfish component.png

RESTful Interface Tool (iLOrest)

とはいえ、毎回毎回Redfishでそのまま記述するのは何かと手間がかかります。

そこでもっと簡単にRedfishを使えるようにしたのがRESTful Interface Tool (iLOrest)になります。このツールは、これまでのコマンドツールの使用感でRedfishを活用できるようになります。

6. iLorest.png

7. ilorest_use.png

iLOrestは操作元がクライアントPCからサーバーまで、OSに関してもWindows版Linux版もあるので、利用環境を選びません。インストールも簡単で、ツールインストーラーのダウンロードは以下のHPEサイトから可能です。

http://www.hpe.com/info/resttool 

リファレンスと最新情報

iLOのAPI最新情報に関してはHPEのGitHubに掲載されています。進化の早いAPI界隈では、ドキュメントで仕様をまとめてもそれが変更されるスピードも早いため、柔軟に変更できるようHPE内でもGitHubによる情報更新・運用を行っています。

8. information.png

iLOのAPI最新情報

https://hewlettpackard.github.io/ilo-rest-api-docs/ilo5/

iLO RESTful API Explorer (APIシミュレーションサイト)

https://ilorestfulapiexplorer.ext.hpe.com/

RESTful Interface Toolリファレンス:

https://hewlettpackard.github.io/python-redfish-utility/#using-the-restful-interface-tool

 

今回はこれまで用いられてきたコマンドラインツールと、近年Web Serviceを始め様々な分野で利用が加速しているREST APIを用いてサーバー情報を取得・制御する方法をご紹介いたしました。

ぜひ、サーバー管理の際にお役立ていただければと思います。

「導入前のアドバイス」まとめリンク

 

0 感謝
作者について

bana87

日本ヒューレット・パッカードでサーバーインフラ・仮想化技術関連のPresalesを担当しています。