サーバラックを管理する RackMonkey をインストールした時の備忘録です。

■RackMonkey公式
https://flux.org.uk/projects/rackmonkey/

Excel管理撲滅を目指して以前は、IPアドレスを管理するツール phpIPAM をインストールしてみました。
今回は、サーバラックを管理する RackMoneky(Perlで動作) をインストールしてみようと思います。

スクリーンショット 2014-04-05 17.19.29

■環境

項目バージョンダウンロード先
CentOS6.5 64bit理研
RackMonkey1.2.5-1Download
httpd2.2.15-30標準パッケージを使用
perl5.10.1-136標準パッケージを使用
mysql-server5.1.73-3標準パッケージを使用


■インストールしてみて気づいた事(日本語の取り扱いではまった)
・ブラウザの言語自動判定でlatin1になってしまう。metaタグの文字コード指定にUTF-8とか入れても変わらず。原因は、PerlモジュールのCGI.pmにあった。解決はソースを改修。
・ラックや追加した機器情報のノート(備考)に日本を入れて保存しブラウザで表示しようとするとエンコードされて文字化けっぽくなる。解決はソースを改修。

■Perlモジュールについて
EPELで提供されているパッケージをインストールしても問題ないですが、ここではCPANを使ってインストールします。

■データベースについて
RackMonkeyはSQLite/PostgreSQL/MySQLをサポートしています。
ここでは、MySQLを使います。
 


 

(1)必要なパッケージのインストール

1-1. yumでRackMonkeyを動作させるのに必要なミドルウェアをインストールする

[root@localhost ~]# yum -y install cpan httpd mysql-server mysql-devel

 

(2)MySQLの設定・起動

2-1. my.cnfで文字コードをUTF-8に設定する

[root@localhost ~]# vi /etc/my.cnf 
[mysqld]
(snip)
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server = utf8 # 追加

[mysqld_safe]
(snip)

 

2-2. MySQLを起動する

(snip)
Please report any problems with the /usr/bin/mysqlbug script!

                                                           [  OK  ]
mysqld を起動中:                                           [  OK  ]
[root@localhost ~]# chkconfig mysqld on

 

2-3. RackMonkeyで使用するDB・ユーザー作成

[root@localhost ~]# mysql -u root
(snip)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant all privileges on rackmonkeydb.* to rackmonkeyadmin@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> create database rackmonkeydb;
Query OK, 1 row affected (0.00 sec)

mysql> quit
Bye


■ここで作成した情報
DB名 : rackmonkeydb
ユーザー名 : rackmonkeyadmin
パスワード : password
 

(3)必要なPerlモジュールのインストール

3-1. CPANを実行する

[root@localhost ~]# perl -MCPAN -e shell
(snip)
Would you like me to configure as much as possible automatically? [yes] yes <- # 自動設定するため「yes」を入力
(snip)
cpan shell -- CPAN exploration and modules installation (v1.9402)
Enter 'h' for help.

cpan[1]>

※初回実行だと、CPANの設定処理が実行されます。デフォルトだと自動で設定されます。
 

3-2. DBIインストール

cpan[1]> install DBI
(snip)
---- Unsatisfied dependencies detected during ----
----           TIMB/DBI-1.631.tar.gz          ----
    Test::Simple [requires]
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes] yes
(snip)
  TIMB/DBI-1.631.tar.gz
  /usr/bin/make install  -- OK

 

3-3. CGIインストール

cpan[2]> install CGI
(snip)
---- Unsatisfied dependencies detected during ----
----        MARKSTOS/CGI.pm-3.65.tar.gz       ----
    FCGI [requires]
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes] yes
(snip)
  MARKSTOS/CGI.pm-3.65.tar.gz
  /usr/bin/make install  -- OK

 

3-4. HTML::Templateインストール

cpan[3]> install HTML::Template
(snip)
  WONKO/HTML-Template-2.95.tar.gz
  /usr/bin/make install  -- OK

 

3-5. HTML::Entitiesインストール

cpan[4]> install HTML::Entities
(snip)
  GAAS/HTML-Parser-3.71.tar.gz
  /usr/bin/make install  -- OK

 

3-6. Time::HiResインストール

cpan[5]> install Time::HiRes
(snip)
  ZEFRAM/Time-HiRes-1.9726.tar.gz
  /usr/bin/make install  -- OK

 

3-7. DBD::mysqlインストール

cpan[6]> install DBD::mysql
(snip)
---- Unsatisfied dependencies detected during ----
----      CAPTTOFU/DBD-mysql-4.027.tar.gz     ----
    Test::Deep [requires]
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes] yes
(snip)
---- Unsatisfied dependencies detected during ----
----        RJBS/Test-Deep-0.112.tar.gz       ----
    Test::Tester [requires]
    Test::NoWarnings [requires]
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes] yes
(snip)
  CAPTTOFU/DBD-mysql-4.027.tar.gz
  /usr/bin/make install  -- OK

cpan[7]> quit
Terminal does not support GetHistory.
Lockfile removed.

 

(4)RackMonkeyのダウンロード

4-1. ダウンロード

[root@localhost ~]# curl -L -o rackmonkey-1.2.5-1.tar.gz https://sourceforge.net/projects/rackmonkey/files/latest/download

 

(5)RackMonkeyのインストール

5-1. インストール

[root@localhost ~]# tar zxvf rackmonkey-1.2.5-1.tar.gz 
[root@localhost ~]# cd rackmonkey-1.2.5-1
[root@localhost rackmonkey-1.2.5-1]# cp perl/rackmonkey.pl /var/www/html/rackmonkey/
[root@localhost rackmonkey-1.2.5-1]# cp -r perl/RackMonkey/ /var/www/html/rackmonkey/
[root@localhost rackmonkey-1.2.5-1]# chmod 755 /var/www/html/rackmonkey/rackmonkey.pl 
[root@localhost rackmonkey-1.2.5-1]# cp -r www/* /var/www/html/rackmonkey/
[root@localhost rackmonkey-1.2.5-1]# chown -R apache:apache /var/www/html/rackmonkey/
[root@localhost rackmonkey-1.2.5-1]# mkdir /var/lib/rackmonkey
[root@localhost rackmonkey-1.2.5-1]# chown apache:apache /var/lib/rackmonkey/
[root@localhost rackmonkey-1.2.5-1]# cp -r tmpl/ /var/lib/rackmonkey/
[root@localhost rackmonkey-1.2.5-1]# cp conf/httpd-rackmonkey.conf /etc/httpd/conf.d
[root@localhost rackmonkey-1.2.5-1]# cp conf/rackmonkey.conf-default /etc/rackmonkey.conf

 

5-2. テーブル作成

[root@localhost rackmonkey-1.2.5-1]# cd sql/schema/
[root@localhost schema]# mysql -u root rackmonkeydb < schema.mysql.sql 
[root@localhost schema]# cd ../data/
[root@localhost data]# mysql -u root rackmonkeydb < default_data.sql 
[root@localhost data]# mysql -u root rackmonkeydb < sample_data.sql

 

5-3. DB・その他設定

[root@localhost ~]# vi /etc/rackmonkey.conf 
(snip)
# NB. Comments must either start a line or follow whitespace

# Database Connection Settings
dbconnect = dbi:mysql:dbname=rackmonkeydb # DB設定
dbuser = rackmonkeyadmin # ログインユーザー名指定
dbpass = password # パスワード指定

# Path & URL Constants
tmplpath = /var/lib/rackmonkey/tmpl # テンプレートが保存されているディレクトリのパスを指定
wwwpath = /rackmonkey # ブラウザからアクセスするパスを指定

 

(6)Apacheの起動

6-1. Apacheを起動する

[root@localhost ~]# service httpd start
httpd を起動中: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
                                                           [  OK  ]

※ServerNameを指定していないので警告される
 

(7)RackMonkeyにアクセス

7-1. ブラウザでRackMonkeyにアクセスします

アドレス : http://ip_or_hostname/rackmonkey/rackmonkey.pl

これで、以下の画面が表示されれば成功です :D

スクリーンショット 2014-04-05 16.51.21

ただし、デフォルトだと日本語の取り扱いに問題があるので以下のパッチを当てます。
 

(8)日本語対応パッチ適応

8-1. パッチをダウンロード

項目ダウンロード先
rackmonkey-1.2.5-1_jp.patch.gzダウンロード
md5f6ebde76d4485337c2fd5bfc11537bfd

[root@localhost ~]# curl -L -O http://www.kurobuti.com/download/rackmonkey/rackmonkey-1.2.5-1_jp.patch.gz
[root@localhost ~]# openssl md5 rackmonkey-1.2.5-1_jp.patch.gz 
MD5(rackmonkey-1.2.5-1_jp.patch.gz)= f6ebde76d4485337c2fd5bfc11537bfd

※注意 : パッチ適応は自己責任でお願いします。
※このパッチは、RackMonkey-1.2.5-1でのみ動作を確認しています。



パッチの内容

--- old/rackmonkey.pl	2014-04-05 16:52:28.544395115 +0900
+++ new/rackmonkey.pl	2014-04-05 16:53:27.387393841 +0900
@@ -800,5 +800,6 @@
         $note =~ s/\*\*(.*?)\*\*/$1/sg;                         # remove **
     }
 
+    $note = decode_entities($note);
     return $note;
 }

--- old/RackMonkey/CGI.pm	2014-04-05 16:52:28.544395115 +0900
+++ new/RackMonkey/CGI.pm	2014-04-05 16:54:01.657395022 +0900
@@ -159,7 +159,8 @@
 sub header
 {
     my $self = shift;
-    my $type = shift || 'text/html';
+    #my $type = shift || 'text/html';
+    my $type = 'text/html; charset=UTF-8';
     return $self->cgi->header($type);
 }

 

8-2. パッチを当てる

[root@localhost ~]# gunzip rackmonkey-1.2.5-1_jp.patch.gz 
[root@localhost ~]# cd /var/www/html/rackmonkey/
[root@localhost rackmonkey]# patch -p1 < /root/rackmonkey-1.2.5-1_jp.patch 
patching file rackmonkey.pl
patching file RackMonkey/CGI.pm
[root@localhost rackmonkey]# rm -f /root/rackmonkey-1.2.5-1_jp.patch

 

(9)日本語が化けないか確認

9-1. 日本語表示確認

以下の Room を作成してみます。
スクリーンショット 2014-04-05 17.04.47

「Save」を押して保存します。

スクリーンショット 2014-04-05 17.05.40

日本語が化け無ければ問題ありません :-)


4月 5, 2014 at 5:31 pm by 黒ぶちメガネ
Category: Linux, ツール