Puppet Dashboard を試してみた

February 15th, 2010 by naoya | Filed under day.

Puppet Dashboard  がリリースされたので、さっそく試してみました。

Puppet Dashboard とは、ノード管理とレポートツールを提供してくれる Puppet のウェブアプリケーションです。ノード情報はYAML 形式でエクスポートすることができて、ダッシュボードから外部ノードツールとして使うこともできるようです。

まず、最初にPuppet Dashboard を動作させるために、次のものが必要です。

  • ruby >= 1.8.1
  • rake >= 0.8.4
  • mysql
  • puppet
  • rubygems >= 1.3.2
  • rails >= 2.3.4

さっそくインストールしてみましょう。

$ git clone git://github.com/reductivelabs/puppet-dashboard.git

$ cd puppet-dashboard

$ rake install

rake install すると、dashboard_development というデータベースが作成されてテーブルがいくつか作成されるので、localhost に mysql が起動している必要があります。

Rails アプリケーションなので、さっそく起動します。

$ ./script/server

http://localhost:3000 にアクセスすると、次のような Puppet Dashboard トップ画面が表示されます。

ノードの例として、「sample node」が定義されています。さっそく、ユーザ登録してみます。ユーザ登録は、ユーザ名とパスワードを入力するだけのシンプルな形です。

ユーザ登録できたところで、実際のノードを追加してみます。Nodes タブをクリックして、ノードを追加します。

この他にも、ノードクラス、ノードグループ、レポート、の機能があります。

まず、レポートの機能は、現在の puppet レポートの実行結果が /var/puppet/lib/reports にある場合は、次のコマンドで Puppet Dashbaord へインポートできます。

$ rake reports:import

また、puppet レポートの実行結果が、他の場所にある場合は、次のコマンドで Puppet Dashboard へインポートすることができます。REPORT_DIR という環境変数に Puppet レポートの実行結果を格納してあるディレクトリを指定するだけです。

$ rake reports:import REPORT_DIR /path/to/your/reports

Importing 1 report from /path/to/your/reports
Importing:     100% |##########################################| Time: 00:00:00
1 of 1 report imported

試しに1件レポートデータをインポートした画面は、次のようになっています。

毎回、レポートをインポートするのが面倒なので、Puppet サーバと連携する方法も用意されています。Puppet サーバと連携するには、puppetmasterd に、次のように –reports オプションを指定するだけです。

–reports <puppet_bashboardのサーバ名>

ただし、Puppet Dashboard は、localhost:3000 で動作するようにハードコーディングされています。これを変更するには、lib/puppet/puppet_dashboard.rb を変更する必要があります。

次に Puppet Dashboard には、Puppet 互換の外部ノード情報と連携することができます。Puppet 互換の外部ノード情報は、YAML 形式で出力しますが、Puppet Dashboard に付属している bin/external_node プログラムを使います。このプログラムも、localhost:3000 でハードコーディングされているので、環境に応じて変更するとよいでしょう。

今のところ、僕が Puppet を投入している本番環境ではレポート機能をオフにして、エラーログのみチェックしていますが、比較的少ない台数で運用している場合は、Puppet Dashboard 管理画面からレポートの実行結果をチェックすることができるので、便利なツールと言えそうです。

将来的には、次の機能が実装予定とのことです。

  • LDAP と ActiveDirectory 認証
  • 管理者の権限によるアクセス制御
  • データをよりよく可視化して、情報にアクセスしやすくする
  • さらに多くのノード状態情報(オフライン状態、通信エラー、など)
  • リソースの変更を報告して、トラックキングする
  • Puppet の実行スケジューリング
  • その他のコミュニティからのリクエスト機能

まだ、Puppet Dashboard は登場したばかりなので、これから期待できるツールにもなりますね。

Tags:

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes