No.2099 PuppetDashboardを試してみた
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 は登場したばかりなので、これから期待できるツールにもなりますね。