自分の作業メモっす。「えーわからなかったのー!?」みたいな事は言わないでください・・・。
最近すっかりJavascriptしか触ってなくて・・・。
で、自宅で作業をする環境をきちんと整えるべく作業中。
とりあえずMac自体をいじると大変なことになりそうなんで・・・
- コードを書くところ=Mac
- Local鯖=仮想環境のCentOS
にするということにして目下準備中。
仮想環境のCentOS側に本物のディレクトリを置いて、MacはそのディレクトリをNFSマウントさせようかと思ってやってみました。
以下が作業ログ。
Contents(目次)
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サーバ側の指定されたユーザーへマッピングし返すってことですね。
コメントを残す