2014年3月8日土曜日

windowsとvagrant間のファイル共有はsambaを使う

vagrantには、もともとファイル共有する場所「/vagrant」というディレクトリが用意されているけど、リンク這ったりするとプロトコルエラーになって使いづらいし、ファイルが1000以上になるとパフォーマンスが落ちるらしい


vagrant docs(英語)そんなようなことが書いてあるので、もし、よろしければ読んでみてはいかがか?
http://docs-v1.vagrantup.com/v1/docs/nfs.html


自分の作業環境はwindows + vagrantなのでファイルサーバーはsambaを使うことにしました
とりあえず、ルート権限でyum経由でsambaをインストールです

yum install samba


ここからは「Futurismo」というサイトを参考にさせていただきました


sambaユーザーの登録

pdbeditコマンドはsambaをインストールすると入るみたい

pdbedit -a linuxのローカルユーザー名

※ローカルユーザーは「/home」以下のユーザー


smb.confの設定

オリジナルを取っておく
cp -p /etc/samba/smb.conf /etc/samba/smb.conf_org

smb.confの中身を空に
cp /dev/null /etc/samba/smb.conf

smb.confの変更(Futurismoさんのsmb.confまんまですが。。。 ipはvagrant用に変更してあります)
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 に設定してあるIP(192.168.33.10)
    hosts allow = 192.168.33. 127.

#============================ Share Definitions ==============
[homes]
    comment = Home Directories
    # ホームディレクトリをSAMBAで共有する
    path = %H
    browseable = no
    writable = yes


Samba/NMBの起動

/etc/init.d/smb start
/etc/init.d/nmb start


vagrant起動時にsambaを起動する設定

chkconfig smb on
chkconfig nmb on


windowsからアクセスするためにiptableを変更

「# samba」のところを追加
vi /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

# browser port 3000
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT

# 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

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

iptabeを再起動
/etc/init.d/iptables restart


※SELinuxを有効にしている場合は「setsebool -P samba_enable_home_dirs on」を実行、今回は、SELinuxが無効になっているので必要なし


windowsからのアクセス方法

windows上でフォルダを開き、アドレスバーに「\192.16.33.10\ローカルユーザー」でアクセス可能


これでvagrant上のファイルをwindows上の慣れているテキストエディタでガンガン編集できるようになるんだけど一つだけ問題点があって、windowsで.bashrcとか編集するとパーミッションが変わってしまうので、注意が必要ですw

0 件のコメント:

コメントを投稿