RackMonkeyインプレッション（インストール編）

openDCIM、RackTablesに引き続き、データセンター構成管理ツールつながりで[RackMonkey](http://flux.org.uk/projects/rackmonkey/)というのを見つけたので、これもインストールしてみました。バージョンはRackmonkey 1.2.5-1です。

#動作環境

今どきPerl CGIです。Apache httpdが前提で、設定サンプルなどはApache httpdのものが用意されています。データベースはsqlite, PostgreSQL, MySQLから選べます。今回はMySQLを使いました。

CGIなので、Apache httpdにはmod_cgiかmod_cgidが必要です。今どきそんなの使ってないよ！という方もおられるかと思いますが、忘れないようにhttpd.confでLoadModuleするようにして下さい。

Perlには、``DBI``、``CGI``、``HTML::Template``、``HTML::Entities``、``DBD::mysql``モジュールが必要です。以下のようなコマンドラインで、必要なモジュールが全部入っているかチェックできます。

```
perl -MDBI -MCGI -MHTML::Template -MHTML::Entities -MDBD::mysql -e ''
```

バージョンなど詳細は[公式インストールガイド](http://flux.org.uk/projects/rackmonkey/doc/1.2.5/install.html)を参照して下さい。

#インストール

##ファイルの配置

[ダウンロードページ](http://flux.org.uk/projects/rackmonkey/download/)からRackmonkey 1.2.5-1をダウンロードして展開すると、``conf``、``doc``、``perl``、``sql``、``tmpl``、``www``の計6つのサブフォルダと``README``ファイルが出てきます。

まずは、このファイルを順次適切な場所へと配置していきます。外部から見える場所（DocumentRoot下）にインストールするファイルと、外部から見えない場所（DocumentRoot外）にインストールするファイルがありますので注意して下さい。

|フォルダ名|説明|
|:--|:--|
|``conf``|設定ファイルです。``rackmonkey.conf``は秘密情報（MySQLのパスワード）を含むので、外部から見えない場所（DocumentRoot外）にインストールします。``httpd-rackmonkey.conf``はApache httpdの設定ファイルに追記します。どちらにしても外部からは見えない場所に置きます。|
|``doc``|ドキュメント類です。インストールはしません。|
|``perl``|スクリプト本体です。外部から見える場所（DocumentRoot下）にインストールします。|
|``sql``|後述するデータベースを設定する際に一度だけ使います。使い終わったら削除して構いません。|
|``tmpl``|外部から見えない場所（DocumentRoot外）にインストールします。もっとも秘密情報は含まれませんので、外部から見える場所（DocumentRoot下）しか置き場所がなければ、そこへ置いても構いません。|
|``www``|画像などの静的コンテンツです。外部から見える場所（DocumentRoot下）にインストールします。``perl``フォルダとは同じ場所でも違う場所でも構いません。|

今回は以下の場所にインストールしました。

|フォルダ・ファイル|インストール先|
|:--|:--|
|``conf/httpd-rackmonkey.conf``|``/etc/httpd/conf.d/httpd-rackmonkey.conf``|
|``conf/rackmonkey.conf-default``|``/usr/local/rackmonkey/etc/rackmonkey.conf``|
|``perl``|``/srv/www/htdocs/rackmonkey``|
|``tmpl``|``/usr/local/rackmonkey/tmpl``|
|``www``|``/srv/www/htdocs/rackmonkey-static``|

というわけで、こんな感じで順次ファイルをコピーしていきます。

```bash
$ mkdir /srv/www/htdocs/rackmonkey
$ cp -pri perl/* /srv/www/htdocs/rackmonkey/
$ mkdir /srv/www/htdocs/rackmonkey-static
$ cp -pri www/* /srv/www/htdocs/rackmonkey-static/
$ mkdir /usr/local/rackmonkey
$ cp -pri tmpl /usr/local/rackmonkey/
$ mkdir /usr/local/rackmonkey/etc
$ cp -pi conf/rackmonkey.conf-default /usr/local/rackmonkey/etc/rackmonkey.conf
$ cp -pi conf/httpd-rackmonkey.conf /etc/httpd/conf.d/
```

##設定ファイルの記述
###Apache httpdの設定

httpd-rackmonkey.confを、Apache httpdの設定ファイルに取り込みます。ここの操作は環境により、httpd.confに直接書き込む場合もあるし、conf.dとかそんな名前のフォルダに配置する場合もあると思います。とにかくhttpd -tでエラーが出ないようにように何とかします。

で、その設定の中に、以下のような行があります。

```apache
SetEnv RACKMONKEY_CONF /etc/rackmonkey.conf
```

これが``rackmonkey.conf``の配置場所を指定する指定子です。今回は以下のように変更します。

```apache
SetEnv RACKMONKEY_CONF /usr/local/rackmonkey/etc/rackmonkey.conf
```

##rackmonkey.confの設定

上述した``rackmonkey.conf``を順次設定していきます。設定する項目は先頭のほうにある``dbconnect``、``dbuser``、``dbpass``、``tmplpath``、``wwwpath``の5項目です。まずはデータベースから。

```
# Database Connection Settings
dbconnect = dbi:mysql:dbname=rackmonkey:host=127.0.0.1
dbuser = rackmonkey
dbpass = rackmonkey
```

``dbconnect``はPerl DBIのデータソース（接続文字列）の文法に従います。詳細は[ドキュメント](http://search.cpan.org/perldoc?DBD%3A%3Amysql)を参照して下さい。

次はパスです。

```
# Path & URL Constants
tmplpath = /usr/local/rackmonkey/tmpl
wwwpath = /rackmonkey/www
```

``tmplpath``はファイルシステム上のパス、``wwwpath``は外部から見えるURLのパスで指定します。ここを間違えないようにして下さい。

##データベースの設定

###データベースとユーザーの作成

今回はデータベース名rackmonkey、ユーザー名rackmonkey、パスワードrackmonkeyとしました。手順としては、特に変わったところはありません。

```bash
$ mysql -u root -p -h 127.0.0.1
Enter password:
```
```mysql
> create database rackmonkey;
> create user rackmonkey identified by 'rackmonkey';
> grant all privileges on rackmonkey.* to rackmonkey;
```

###テーブルの作成と初期データの配置

上述の``sql``フォルダの下にsqlファイルが置いてありますので、``mysql``コマンドを使って順次流し込みます。

```bash
$ cd sql
$ mysql -urackmonkey -prackmonkey -Drackmonkey -h 127.0.0.1 < schema/schema.mysql.sql
$ mysql -urackmonkey -prackmonkey -Drackmonkey -h 127.0.0.1 < data/default_data.sql
$ mysql -urackmonkey -prackmonkey -Drackmonkey -h 127.0.0.1 < data/sample_data.sql
```

sqlファイルはたくさんありますが、使うのは上記コマンドラインの通り、3つのファイルだけです。

#日本語文字化け対応

[黒ぶちメガネのblog](http://www.kurobuti.com/blog/?p=7264)で、日本語が文字化けする現象と非公式パッチが提供されています。必要に応じて適用して下さい。

以上！ここまででインストールは一通り完了です。

#初回アクセス

``http://localhost/rackmonkey/perl/rackmonkey.pl``にアクセスすると、rackmonkeyの管理画面が現れます。最初はサンプルデータが入っています。

。。。それだけです。

ユーザー名とかパスワードとか、アクセス権限とか、そんなものはありません。認証が必要な場合は、Apache httpdのmod_auth_basicでも使いましょう。また、ユーザーごとに書き込み権限を付与するとか、リードオンリーアカウントとか、そんな機能はありません。至ってシンプル！

そんなわけで、ここまで来たら、あとは順次データ入力して行きましょう。

続きは気が向いたら書きます。

#リファレンス

##公式

Sundive Networks
RackMonkey
http://flux.org.uk/projects/rackmonkey/

##非公式

黒ぶちメガネのblog
【管理ツール】サーバラックを管理する RackMonkey をインストールしてみた
http://www.kurobuti.com/blog/?p=7264

##不肖私

openDCIMインプレッション（インストール編）
http://qiita.com/n-i-e/items/f4ba15640e58b031d7f6

openDCIMインプレッション（構成管理編）
http://qiita.com/n-i-e/items/8f7447c6fe274d05829a

openDCIMインプレッション（ワークフロー編）
http://qiita.com/n-i-e/items/d7f9c3084fb28fdc5af9

RackTablesインプレッション
http://qiita.com/n-i-e/items/a96b45229745b35005b2