仮想環境のCentOS内のディレクトリをNFSでホストのMacと繋げる(追記)

自分の作業メモっす。「えーわからなかったのー!?」みたいな事は言わないでください・・・。
最近すっかりJavascriptしか触ってなくて・・・。

で、自宅で作業をする環境をきちんと整えるべく作業中。
とりあえずMac自体をいじると大変なことになりそうなんで・・・

  • コードを書くところ=Mac
  • Local鯖=仮想環境のCentOS

にするということにして目下準備中。
仮想環境のCentOS側に本物のディレクトリを置いて、MacはそのディレクトリをNFSマウントさせようかと思ってやってみました。
以下が作業ログ。

NFSホスト側作業(仮想環境側)

NFSを有効にします。インストール自体は大概入ってると思うんでパス。
とりあえず作業はすべてrootユーザーで行いますよ。

1./etc/exportsを編集

		vi /etc/exports
		

2.以下の記述を追加する

#マウント先ディレクトリ(/から記述)	接続許可サブネットマスク(読み書きについて,同期について,root権限付与とか)
		/www  10.0.0.0/24(rw,sync,no_root_squash)
		

3.以下のサービスを立ち上げる。

		/etc/rc.d/init.d/portmap start
		/etc/rc.d/init.d/nfs start
		/etc/rc.d/init.d/nfslock start
		

問題なく立ち上がるのであれば、そのままchkconfigにいれておきましょう。

4.OS起動時の自動実行にいれておく

		chkconfig portmap on
		chkconfig nfs on
		chkconfig nfs on
		

一応入っているかどうかは「chkconfig –list」あたりで確認して下さい。

NFSクライアント側作業(Mac側)

使う側は以下のようなコマンドを叩けばOKです。ちょっとここにはまった。

1.展開するディレクトリを作成する

多分この行動は必要な気がします。

2.以下のコマンドを入力

#sudo mount_nfs -P 接続先IP:接続先ディレクトリ絶対パス 展開先ディレクトリ絶対パス
		sudo mount_nfs -P 10.0.0.1:/www /mnt
		

仮想OS立ち上げるたびにこれを入れればOK。
sambaよりこっちのほうがいいじゃん俺・・・。(何やってたんだ)

参考にさせてもらったサイトさん

追記

実はこれだけだとファイル作成されるグループとユーザーがおかしいことになることがわかりました。。。(汗
どういう事かというと、NFSクライアント側で操作しようとすると、gidやuidも同期対象になるので両方のサーバーのユーザー設定がおなじになっていないとおかしいことになります。
(ファイルにアクセス出来ない、保存できない、実行できないなどなど)
で、調べた結果この設定でOK。/etc/exportsをこんな感じにします。

	#all_squash -> すべてのアクセスをnobodyユーザー(匿名ユーザーへマッピングする)
	#anonuid=xxx ->nobodyユーザーのアクセスをNFSサーバ側の指定されたuid(xxx)にマッピングする
	#anongid=xxx ->nobodyグループのアクセスをNFSサーバ側の指定されたgid(xxx)にマッピングする
	/www  10.0.0.0/24(rw,sync,all_squash,anonuid=xxx,anongid=xxx)

要は一旦クライアントからのアクセスをすべて匿名ユーザーマッピングして、その匿名ユーザーをNFSサーバ側の指定されたユーザーへマッピングし返すってことですね。