Help us understand the problem. What is going on with this article?

Vagrantのshare folderが遅い時はNFSを使うといいです

More than 5 years have passed since last update.

概要

Vagrant内のcentos6でrailsの開発をしてました。

ソースを共有フォルダに置いて動作確認していたのですが挙動が
異様に重く、調べてみたらvagrantのデフォルトのファイル共有のせいでした。

NFSを利用したら早くなったのでその時のメモです。

環境

  • Mac OS X 10.9.5
  • Vagrant 1.6.5
  • VirtualBox 4.3.18

内容

1. Vagrantfileの編集

ゲスト側の/vagrantをNFSでマウントするようにします。*参考リンク

vagrantfile
  #--途中は省略--
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  #--途中は省略--
  config.vm.synced_folder ".", "/vagrant", type: "nfs"
  #--以後も省略--
end

2. sudoerを編集

このままでもOKですが、vagrant起動時に毎回マウントするため
パスワード聞かれます。聞かれないようにできるみたいです。

http://joemaller.com/3411/vagrant-nfs-shares-without-a-password/

mac上で下記shellを一度実行すれば聞かれなくなりました。
一応スクリプトを写経。

install_vagrant_sudoers.sh
#!/bin/bash
# Add Vagrant's NFS setup commands to sudoers, for `vagrant up` without a password
# Updated to work with Vagrant 1.3.x

# Stage updated sudoers in a temporary file for syntax checking
TMP=$(mktemp -t vagrant_sudoers)
cat /etc/sudoers > $TMP
cat >> $TMP <<EOF

# Allow passwordless startup of Vagrant when using NFS.
# https://gist.github.com/joemaller/6764700

Cmnd_Alias VAGRANT_EXPORTS_ADD = /bin/bash -c echo '*' >> /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
%staff ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE
EOF

# Check syntax and overwrite sudoers if clean
visudo -c -f $TMP
if [ $? -eq 0 ]; then
  echo "Adding vagrant commands to sudoers"
  cat $TMP > /etc/sudoers
else
  echo "sudoers syntax wasn't valid. Aborting!"
fi

rm -f $TMP

こんな結果になるはず

/tmp/vagrant_sudoers.ziY5C09b: parsed OK
Adding vagrant commands to sudoers

3. リロード

vagrantをリロードしましょう。
リロード後何も聞かれずに立ち上がればOKです。

vagrant reload

4. 結果

早くなりました。
ローカルで動かしてる時より若干遅いかな?くらいのレベルです。
(以前はrails起動ですら数分かかってました。)

参考URL

http://docs.vagrantup.com/v2/synced-folders/nfs.html
http://webradar.info/2014/03/06/slowly-rails-in-vagrant/
https://gist.github.com/joemaller/6764700#file-install_vagrant_sudoers-sh

itopan88
システム運用をやってます。 システム運用を楽にするツール作成、OSSプロダクトの導入や検証をしてます。 お仕事がんばります。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away