kvmでDECO Driveを試してみた

kvmにDECO Driveをインストールしてみた。

DECO Drive って

メールで送信するには大きすぎるデータのやり取りをするのに便利そうなやつです。特にメールしか使ったことがないような人を相手にするにはかなり便利です。最近はcloudとかいって、webDAVを使うとかやってるけど、実際、ある程度わかっている人なら手っ取り早くsftpじゃないのかな。自分がそうだし。だいたいこの前、会社のWindows7でwebDAVを使おうとしたらできなかった。仕方なくftpで使った。そんなわけで、DECO Driveもありかなと。

DECO Driveの稼働には3台のマシンが必要となる。実際の運用は、外部のサーバが1台、内部で稼働するデータベースサーバが1台、管理用に使うサーバが1台という構成。というわけで、サーバとして1台、管理用として1台としても稼働できる。(たぶん)。管理用は常に使っているデスクトップでもapacheさえ稼働させれば(もちろんrubyとかDECOとかも必要)代用できる。管理用は管理するときだけ必要な感じなので(たぶん)。というわけで、素直にサーバ3台を立ち上げる。あれっ?

データサーバ 192.168.1.111
運営用サーバ 192.168.1.112
管理用サーバ 192.168.1.113

kvmに

CPU1
RAM512MB
HDD20GB

という構成の3台です。

インストール開始

この3台に Scientific Linux6-i386 をインストールします。 DECO Drive のマニュアルには、 CentOS5 を使うようになっていたけど、最近何かと出遅れ気味の CentOS よりは、話題性はなくても確実性のある Scientific Linux ということで、SL6を使います。1台だけインストールしていって、途中でコピーして2台にしちゃうという方法ができるのかなと考えつつもよくわからなかったので3台をインストールです。今回はOSのインストールは省略します。それでもって、インストールが完了したら、パッケージの更新ですよね。

   # yum update

そして、一般ユーザの追加。sshで使用する一般ユーザをwheelグループに登録しておきます。

   # useradd -G wheel deresuke
   # passwd deresuke

時間合わせも忘れずに。ついでにcronにでも登録しておけばなお良い。なぜ時間合わせにこだわるのかといえば、時計が進んだままにしておいて作業をしてて、途中で時間合わせをしたりすると新しくできたファイルなのに古いファイルだといちゃもん付けられて作業が進まなくなるという経験が何度もあるからですよ。

   # yum install ntpdate
   # ntpdate ntp.nict.jp

sshの設定(pamの利用)

   # vi /etc/pam.d/sshd に追加
       account    required     pam_access.so
   # vi /etc/security/access.conf に追加
       -:ALL EXCEPT wheel:ALL
   # vi /etc/ssh/sshd_config を編集
       PermitRootLogin no
   # /etc/init.d/sshd restart

SELinuxの設定

   # setenforce 0
   # vi /etc/sysconfig/selinux を編集
   SELINUX=disabled

ファイアーウォールの設定

   # /sbin/service iptables stop
   # /sbin/chkconfig iptables off

ホスト名の変更

   # vi /etc/sysconfig/network
   HOSTNAME=drive.tewasura.com

んでもって、ネットワークの再起動

   # /etc/init.d/network restart

とまぁここまで3台同じです。が、IPとかHOSTNAMEとかは個別に設定する。ここで、念のため再起動して確認。

データサーバの設定

まずはmysqlのインストール

# yum install mysql-server

文字コードの設定を追加する

# vi /etc/my.cnf
[mysqld]
default-character-set=utf8

mysqlサーバの起動

# /etc/init.d/mysqld start

自動起動設定

# /sbin/chkconfig mysqld on

データベース作成、外部にサーバを置く場合はその設定も加える。

# mysql
> GRANT ALL PRIVILEGES ON deco_production.* TO deco@'192.168.1.0/255.255.255.0' IDENTIFIED BY '********';
> create database deco_production;
> quit

運営用サーバと管理用サーバ

Rubyのインストール。素直にyumでインストールしてもVer.1.8.7がインストールされます。

# yum install ruby

必要と思われるパッケージのインストール。(かなり適当です)

# yum install ruby-devel gcc-c++ make

Ruby Gemsのインストール。これもyumでver.1.3.7がインストールされます。

# yum install rubygems

Railsのインストール。これはマニュアルでは2.2.2とあったが、2系でよさそうなのを適当に。

# gem install rails -v=2.3.11

Apache2のインストール

# yum install httpd httpd-devel

Apache2の設定。すでにサイトを立ち上げている場合はバーチャルにしましょう。

# vi /etc/httpd/conf/httpd.conf
#ServerName www.example.com:80
ServerName drive.tewasura.com:80
<VirtualHost *:80>
  ServerName drive
  DocumentRoot /usr/local/deco/public
  RailsEnv production
  <Directory /usr/local/deco/public>
    AllowOverride all
    Options -MultiViews
  </Directory>
</VirtualHost>

passengerに必要と思われるパッケージのインストール。開発関連のパッケージだけで充分だろうけどついでに入れてしまった。

# yum install zlib zlib-devel openssl openssl-devel curl-devel

passengerのインストール

# gem install passenger
# passenger-install-apache2-module

passengerの設定ファイルを作成

# vi /etc/httpd/conf.d/rails.conf
   LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
   PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11
   PassengerRuby /usr/bin/ruby

mysql用のパッケージをインストール

# yum install mysql-devel

必要なgemをインストール

# gem install mime-types
# gem install shared-mime-info
# gem install mysql

DECO Driveを展開する

# cd /usr/local
# cp /home/deresuke/deco-1.0.3.tar.gz ./
# tar -zxvf deco-1.0.3.tar.gz

DECO Driveの設定ファイルを編集

# vi /usr/local/deco/config/database.yml
production:
  adapter: mysql
  encoding: utf8
  database: deco_production
  pool: 5
  host: 192.168.1.111
  username: deco
  password: ********
  socket: /var/lib/mysql/mysql.sock
# cd /usr/local/deco/app/models
# mv notification.rb notification.rb.bak
# sed -e "s/name1@sample.com/deresuke@tewasura.com/g" notification.rb.bak > notification.rb
# vi /usr/local/deco/config/environments/production.rb
ActionMailer::Base.smtp_settings[:address] = "192.168.1.112"
ActionMailer::Base.smtp_settings[:domain] = "drive.tewasura.com"

Railsのバージョンが合わないので設定を変更。あとで、バージョンチェックで引っかかる。コメントアウトしちゃったけど、バージョンを指定しなおしてもいいんじゃない。

# cd /usr/local/deco/
# vi config/environment.rb
#RAILS_GEM_VERSION = '2.2.2' unless defined? RAILS_GEM_VERSION

ここまで2台同じですが、IPとかの設定は適宜。

運営用サーバ

データベースの設定(migrate)

# rake db:migrate RAILS_ENV=production

運営用に不要なファイルの削除

# rm -f /usr/local/deco/app/controllers/sys_*

apache2の起動

# /etc/init.d/httpd start

apache2の自動起動設定

# /sbin/chkconfig httpd on

管理用サーバ

管理専用のための設定

# vi /usr/local/deco/config/routes.rb
	map.root :controller => "sys_top"

apache2の起動

# /etc/init.d/httpd start

apache2の自動起動設定

# /sbin/chkconfig httpd on

とまぁこれで設定完了!!あとは、管理サーバにブラウザでアクセスして設定をする。これが結構面倒くさい。

それと、運営用のサーバでメールの設定もちゃんとやっておかないときちんと稼働しない。とりあえず、postfixでメールの送信ができるようにした。設定で忘れてはいけないのがファイルを置くディレクトリのパーミッションの変更、もしくは所有権の変更。当然だがこれをやっておかないとファイルがアップロードできないです。公開するのであれば、ルータのポートも開けてやらないとだめです。

結構、お手軽にインストールすることができました。こんなソフトウェアを公開してくれて本当にありがとうございました。ってテストだけで実際には運用していないのですが。

更新日時:2013/01/25 09:44:27
キーワード:
参照:[本日のメニュー]
このページは凍結されています。