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でメールの送信ができるようにした。設定で忘れてはいけないのがファイルを置くディレクトリのパーミッションの変更、もしくは所有権の変更。当然だがこれをやっておかないとファイルがアップロードできないです。公開するのであれば、ルータのポートも開けてやらないとだめです。
結構、お手軽にインストールすることができました。こんなソフトウェアを公開してくれて本当にありがとうございました。ってテストだけで実際には運用していないのですが。
キーワード:
参照:[本日のメニュー]