Windows + Vagrantで快適なRails開発がスタート!。。するはずだった。
現実は、Railsアプリの応答が遅すぎてページを開くだけで数十秒かかる始末。
どうやらvagrantが使用しているファイル同期が遅いのが原因らしい。
■挫折 プロトコル変更
だったらファイル同期のプロトコルを変更しよう!
nfsは、Windowsではできない。
rsyncも基本できないけど、導入の解説してくれてる人いるじゃん!!
え、rsyncって双方向同期してくれないの。。
ゲストOSでファイル追加、編集できないのは困る。。
■解決策 ネットワーク経由でゲストOSのファイルを直接編集
ゲストOSにフォルダ(/home/vagrant)を公開してもらいます。
ファイルサーバ機能はSambaを利用。
Sambaのインストールは、ほぼ下記のサイトを参考にしています。
どうにかブログやってるよ: windowsとvagrant間のファイル共有はsambaを使う
■設定手順
●ゲストOSにログイン
コンソールでログイン。
●Samba インストール
yum install samba
●Sambaユーザーの登録
pdbedit -a vagrant
●設定ファイルのオリジナルをバックアップした上で空ファイルに
cp -p /etc/samba/smb.conf /etc/samba/smb.conf_org && cp /dev/null /etc/samba/smb.conf
●設定ファイルを編集する
vi /etc/samba/smb.conf
#======================= Global Settings ==================
[global]
# 文字コード設定 CentOS
unix charset = UTF-8
# 文字コード設定 Win
dos charset = CP932
display charset = UTF-8
# ----------------------- Network Related Options ----------
# Widnows グループの設定 コンピュータのプロパティから調べる
workgroup = WORKGROUP
# Allow within local network
# Vagrantfile に設定してあるゲストOSのIP(デフォだと192.168.33.10)
hosts allow = 192.168.33. 127.
#============================ Share Definitions ==============
[homes]
comment = Home Directories
# ホームディレクトリをSAMBAで共有する
path = %H
browseable = no
writable = yes
ちなみにこのsmb.confはfuturismoさんが作成した設定ファイルがベースらしいです。
●Samba/NMBの起動
/etc/init.d/smb start
/etc/init.d/nmb start
●vagrant起動時にsambaを起動する設定
chkconfig smb on chkconfig nmb on
●ホストOS(Windows)からアクセスするためにiptableを変更
vi /etc/sysconfig/iptables
以下の内容を"追記"
# samba
-A INPUT -p tcp --dport 139 -j ACCEPT
-A INPUT -p udp --dport 137 -j ACCEPT
-A INPUT -p udp --dport 138 -j ACCEPT
-A INPUT -p tcp --dport 445 -j ACCEPT
# samba end
●iptablesを再起動
/etc/init.d/iptables restart
●SELinuxがオフか確認
getenforce
上記を実行して【disabled】と出てればOK
でなければ、SELinuxをdisabledにしてください。
●ゲストOSから公開したいRailsプロジェクトのフォルダを移動する
/home/vagrantに編集したいRailsプロジェクト(例 rails_project)のフォルダを移動する。
mv /vagrant/[rails_project] /home/vagrant/[rails_project]
●動作確認1 ファイルが編集可能か
ホストOS側からエクスプローラの下記を入力する。
\\192.168.33.10\vagrant
rails_projectが見れたら、ネットワーク越しに編集可能になってます。
●動作確認2 Railsが爆速か
ゲストOSからRailsプロジェクト([rails_project])を起動。
ホストOSのブラウザから動作確認。
きっと爆速になってます。
(なってなかったら/home/vagrant/がファイル"同期"対象になってるかも。対象から外してください。)
Windows + Vagrantで快適なRails開発を!