プログラマがデータセンターの管理を兼務するのは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です。これでインストーラが起動します。
Pre-flight environment checks
という題名の画面が出てきたら、たぶんFAILという赤字がぞろぞろ出て来ると思うので、一つ一つ順番に潰していきます。もっとも全部GOOD(緑字)にしないと先へ進まないという話でもないらしく、私の場合はOS(LinuxではなくCygwin)、SNMP(PHPのsnmp拡張が入っていない)の2項目がFAILでしたが通りました。
この段階を過ぎると、最初のDepartment(部署)を作るように促されます。
ちょっと分かりにくいのは、Departmentの選択肢が空白になっているところです。プルダウンを開くと「New Department」というのが一つあるのですが、それを選択するとページの再読み込みが始まり、せっかく選んだ「New Department」が消え去って空白に戻ってしまいます。何のこっちゃという気分になりますが、この場合は、Departmentの選択肢は空白のままで放っておいて構いません。そのまま「Department Name」欄に書き込んでCreateボタンを押してしまえば大丈夫です(他の欄は後から訂正できますので、今は空欄のままで構いません)。
これと同じ要領で、データセンターとラックを一つずつ作ります。
すると、サイドバーにCompleteというタブが現れます。
ここまで来たらインストールは完了ですので、Apache上のopenDCIMフォルダからinstall.phpファイルを削除してください。
改めてopenDCIMのURL(例えばhttp://localhost/openDCIM-4.3/
)にアクセスすると、openDCIMが動いています。
#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/