LoginSignup
5

More than 5 years have passed since last update.

openDCIMインプレッション(インストール編)

Posted at

プログラマがデータセンターの管理を兼務するのはDevOpsなんでしょうか。よくわかりませんが、オープンソースのデータセンター管理ツール、openDCIMを評価してみました。

動作環境

Linux, Apache, MySQL, PHP の古き良き伝統的LAMPです。Linuxが推奨ですが、Cygwinで動かしてみたら一応動きました。公式にはSSLが必要と書いてありますが、無暗号HTTPでも動きます。

PHPにはmbstring, gettext, PDO_MySQLモジュールが必要です。SNMPモジュールも必要と書いてありますが、なくても一応動きます。

Apacheにはmod_rewriteが必要です。また、今回のインストールではApacheの機能を使ってBasic認証しますので、mod_auth_basicもインストールします。また、.htaccessを使いますので、Apacheの設定でAllowOverrideを指定します。

MySQLは、my.cnfのsql-modeでSTRICT_TRANS_TABLESを使わない設定にする必要があります。

意外と物入りですね!そんなわけですので、LAMPなら既存の環境があるという場合でも、そこに相乗りインストールするのはちょっとしんどいかもしれません。

インストール手順

インストール手順自体はオープンソースのデータセンター管理ツール『openDCIM』をインストールしてみたの通りでおおむね構いませんが、phpにはPDO_MySQLが必須です。これがないことにはセルフテストにすら入れず空白画面とApacheのエラーログが出て終わりになってしまいますので、まずはPDOを確保します。

ダウンロードと展開

ダウンロードページからopenDCIM-4.3.tar.gzをダウンロードして適当な場所に展開します。次に、db.inc.php-distファイルをdb.inc.phpという名前に書き換えます。これが設定ファイルですので、インストール先の環境に合わせて書き換えます。

MySQLのホスト名、データベース名、ユーザ名、パスワードといった項目を設定していきます。MySQLのポート番号が3306以外だとかUNIXドメインソケットを使いたいとかいう場合はPHPマニュアルでも見て何とかして下さい。

    $dbhost = 'localhost';
    $dbname = 'dcim';
    $dbuser = 'dcim';
    $dbpass = 'dcim';

認証方式も指定できます。今回はデフォルトのApacheをそのまま使いますが、OauthやLDAPも使えます。

    if ( !defined( "AUTHENTICATION") ) {
        define( "AUTHENTICATION", "Apache" );

    /* If you want to use Oauth authentication, comment the above 3 lines, uncomment the next 4 lines
       and place your authentication handler in login.php (create symbolic link). 
       ex.  cp oauth/login_with_google.php oauth/login.php
    */
        // define( "AUTHENTICATION", "Oauth" );

    /*  LDAP authentication and authorization, which is far from simple.
        Don't even try to enable this unless you know how to query
        your LDAP server.  */
        // define( "AUTHENTICATION", "LDAP" );
    }

Basic認証の設定

.htpasswdでユーザーIDとパスワードを設定します。ここで設定するユーザーIDは、そのままopenDCIMのユーザーIDになります。管理者っぽいかっこいい名前をつけましょう!

$ touch .htpasswd
$ htpasswd.exe ./.htpasswd dcimadmin
New password:
Re-type new password:
Adding password for user dcimadmin

MySQLのアカウント作成

MySQL上でユーザーとデータベースを作ります。

> CREATE DATABASE dcim;
> CREATE USER dcim IDENTIFIED BY 'dcim';
> GRANT ALL PRIVILEGES ON dcim.* TO 'dcim';

ここまでやれば大丈夫。CREATE TABLEはopenDCIMに内蔵されているインストーラがやってくれます。

初回アクセス

ここまで来たらさっそくアクセス!私の場合はhttp://localhost/openDCIM-4.3/とかそんなURLです。これでインストーラが起動します。

opendcim-setup1.png

Pre-flight environment checksという題名の画面が出てきたら、たぶんFAILという赤字がぞろぞろ出て来ると思うので、一つ一つ順番に潰していきます。もっとも全部GOOD(緑字)にしないと先へ進まないという話でもないらしく、私の場合はOS(LinuxではなくCygwin)、SNMP(PHPのsnmp拡張が入っていない)の2項目がFAILでしたが通りました。

この段階を過ぎると、最初のDepartment(部署)を作るように促されます。

opendcim-setup2.png

ちょっと分かりにくいのは、Departmentの選択肢が空白になっているところです。プルダウンを開くと「New Department」というのが一つあるのですが、それを選択するとページの再読み込みが始まり、せっかく選んだ「New Department」が消え去って空白に戻ってしまいます。何のこっちゃという気分になりますが、この場合は、Departmentの選択肢は空白のままで放っておいて構いません。そのまま「Department Name」欄に書き込んでCreateボタンを押してしまえば大丈夫です(他の欄は後から訂正できますので、今は空欄のままで構いません)。

これと同じ要領で、データセンターとラックを一つずつ作ります。

すると、サイドバーにCompleteというタブが現れます。

opendcim-setup5.png

ここまで来たらインストールは完了ですので、Apache上のopenDCIMフォルダからinstall.phpファイルを削除してください。

改めてopenDCIMのURL(例えばhttp://localhost/openDCIM-4.3/)にアクセスすると、openDCIMが動いています。

opendcim-setup6.png

Q&A

日本語はないのか。

アゼルバイジャン語、カタロニア語(アンドラ公国)、ドイツ語、英語(米国)、スペイン語、フランス語、ガリシア語(スペイン)、韓国語、ポルトガル語(ブラジル)、ロシア語、スロベニア語、ウクライナ語、中国語が用意されていますが日本語がありません。

誰か翻訳してみませんか。1,092項目ありますので、なかなか根性が要りそうです。

nginxにインストールできないか。

そのままでは無理です。
mod_rewriteを使っているのはREST APIなので、そこは何とかするにしても、httpdから渡される環境変数をあっちこっちで使っているので、かなり大幅な改造が必要になると思います。

openDCIMはセキュアか。

残念ながらセキュアとは言い難いです。XSSとかいろいろあってお世辞にも褒められた作りではありません。社内の限られた範囲で使うに留めるべきでしょう。

以上!幸運を祈る。
続きは気が向いたら書きます。

参考文献

openDCIM(公式)
openDCIM Foundation, Inc.
http://opendcim.org/

blacknon (2015)
オープンソースのデータセンター管理ツール『openDCIM』をインストールしてみた
俺的備忘録 〜なんかいろいろ〜
https://orebibou.com/2015/06/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%B3%E3%82%BF%E3%83%BC%E7%AE%A1%E7%90%86%E3%83%84%E3%83%BC%E3%83%AB%E3%80%8Eopendcim/

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5