Linux上にSambaで共有フォルダを作り,Windowsから開発環境として利用しよう (環境構成のわかりやすい図解付き)
Webアプリを開発する際,下記のような要求が出たとする。
- アプリそのものは,Linux上で動作させたい。
- しかし,開発作業は,Windows上で行ないたい。(ExcelとかTortoise SVNなどGUIを駆使したい)
このような場合,もし共有フォルダが無いと
「Windows上で編集したファイルを,いちいちLinux上に転送する」
という無駄な労力がかかる。ミスも起きやすい。
しかし,「Samba」で共有フォルダを作れば,この手間はなくなる。
1つのフォルダを,Windowsからも,Linuxからも利用できる。
ちょうど下の図のような開発環境を構築すればよい。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃Linux(仮想マシン) ┃
┃ ┃
┃ ┌─────────┐ ┃
┃ │ Samba │ ┃
┃ └─────────┘ 公開 ┌─────────┐ ┃
┃ ↓ 共有設定 ディレクトリ │ Apache │ ┃
┃ ┌─────────┐ として参照 │ (Webサーバ) │ ┃
┃ │ (Linuxの │←───────│http://guest-addr │ ┃
┃ │ ファイルシステム) │ └─────────┘ ┃
┃ │ │ ↑ ┃
┗━│ │━━━━━━━━━━━━━│━━━━━━┛
│ [★共有フォルダ] │ ↑ │
│ ソースコードや │ :OSを仮想化 │Webアプリを
│ ドキュメントを格納 │ : │テスト
┏━│ │━━━━:━━━━━━━━│━━━━━━┓
┃ │ │ : │ ┃
┃ │(ネットワークドライブ │ ┌─────┐ ┌──────┐ ┃
┃ │ として割り当て)│ │ VMWare │ 管理 │ │ ┃
┃ └─────────┘ │ Server 2 │←──│ Webブラウザ│ ┃
┃ ↑ ワーキングコピー └─────┘ │ │ ┃
┃ ┌─────────┐ │ │ ┃
┃ │ Tortoise SVN │ │ │ ┃
┃ └─────────┘ │ │ ┃
┃ コミット↓↑ チェックアウト │ │ ┃
┃ ┌─────────┐ WebDAVで │ │ ┃
┃ │ Apache │ 閲覧 │ │ ┃
┃ │ (リポジトリサーバ) │←──────────│ │ ┃
┃ │ http://host-addr │ │ │ ┃
┃ └─────────┘ └──────┘ ┃
┃ ┃
┃Windowsマシン ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
図の補足:
Linux上の共有フォルダ(★印)は,
- Linux上では,Webアプリとしてサーバが読み取る。
- Windows上では,開発資材として自由に編集・加工可能。「Tortoise SVN」などのGUIで管理可能。
また,Linux側のsshdは,Windows側の「Putty」や「WinSCP」などのsshクライアントと通信可能。
ついでに,Windows側のOSはVistaを想定。
また,Apache上で動作するWebアプリケーションはRuby on Railsを想定。
以下は,このような環境を構築する手順。
構築手順:
(1)Windows上にVMWare Server 2を導入し,ゲストOS上でWebサーバを構築
下記の記事を参照。
CentOS 5.6上で Apache+Passenger+Ruby on Rails 1.2 を動作させる手順 (仮想マシン上に,レガシーRailsの実運用環境を構築)
http://language-and-engineering.hatenablog.jp/entry/20110814/p1
- 本稿ではRailsを動かすので全手順の網羅が望ましいが,最低限であればVMとApacheだけでもよい。
なお上記ページにも掲載されているが,開発環境なので chkconfig iptables off しておく事を推奨。
また,ホストとゲストは同一のネットワーク上に存在すること。
(ネットワークアダプタとしてBridge接続を利用)
2マシン間でIPアドレスのサブネットが異なると,共有フォルダ構築時には余計な心配や手間やミスのもとになるため。
NATの場合は末尾の補足3を参照。
ちなみに,VMWare Playerでも別にOK。
※ただし,Windows7かつVMWare PlayerかつNAT接続,という悪条件が3つそろってしまうと,問題が起きる。
Windows7上でVMware PlayerのNATを使う方法
http://blog.cluefinder.net/archives/2...
(2)Windows上にTortoise SVNを導入し,SVNリポジトリサーバを構築
下記の記事を参照。
Windows Vista上に Apache+Subversion+Tortoise SVN をインストールして,ネットワーク越しにリポジトリを利用できるようにする手順
http://language-and-engineering.hatenablog.jp/entry/20110723/p1
- WindowsにXAMPPとTortoise SVNを入れたのち,subversionとApacheが連携できるようにする。
(3−1)Sambaのインストール
Sambaをインストール。
[root@localhost ~] yum install samba 〜〜 Complete! [root@localhost ~] which smbd /usr/sbin/smbd [root@localhost ~] smbd --version Version 3.0.33-3.29.el5_6.2 [root@localhost ~] /etc/init.d/smb status smbd は停止しています nmbd は停止しています
自動起動の設定もする。
[root@localhost ~] chkconfig smb on [root@localhost ~] chkconfig --list smb smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
これで,Sambaの設定を開始するための環境が整った。
(3−2)共有フォルダを作成
まずはコンソール上で,共有すべきディレクトリを作成。
ダミーファイルも作っておく。
[root@localhost ~] mkdir /usr/local/work [root@localhost ~] echo testdayo > /usr/local/work/hoge [root@localhost ~] chmod -R 777 /usr/local/work
次に,このフォルダを共有する。
/etc/samba/smb.conf という設定ファイルを取得し,下記のように丸ごと書き換え。(UTF8)
※余計なオプション項目を残すとトラブルの元になりやすいので,思い切って削除する。
[global] workgroup = WORKGROUP dos charset = CP932 netbios name = DEV_SHARE server string = Samba Server Version %v passdb backend = tdbsam ldap ssl = no hosts allow = 192.168.100.0/24 cups options = raw # ファイル作成時のパーミッション create mask = 0777 force create mode = 0777 security mask = 0777 force security mode = 0777 # ディレクトリ作成時のパーミッション directory mask = 0777 force directory mode = 0777 directory security mask = 0777 force directory security mode = 0777 [share_for_dev] path = /usr/local/work public = yes writable = yes printable = no
全体に関わる設定(global)
- Windows側のファイルシステムの文字コードとして,CP932(Shift-JIS)を指定。
- この共有サーバが,WindowsのNetBIOSネットワーク上で「DEV_SHARE」というNetBIOS名を持つ事にする。
- 共有を許可するIPアドレスとして,192.168.100.* のみを指定。(アスタリスク記法ではなくサブネットマスク記法である点に注意。「192.168.100.」のような,尻切れトンボ記法でもOK)
個別の共有設定:
- share_for_devという名前の共有名で,/usr/local/workを共有する。
- writableで書き込み可能にする。
これを /etc/samba/smb.conf に保存。
設定ファイルの妥当性を検証:
[root@localhost ~] which testparm /usr/bin/testparm [root@localhost ~] testparm /etc/samba/smb.conf Load smb config files from /etc/samba/smb.conf Processing section "[share_for_dev]" Loaded services file OK. WARNING: You have some share names that are longer than 12 characters. These may not be accessible to some older clients. (Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.) Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions
設定ファイルの詳細については,下記ページを参考:
Sambaの基本設定
http://www.jitaku-server.net/samba_se...
- Vine Linuxなのでapt-getを利用
- カッコで囲まれた部分は共有名となる
smb.conf Samba の設定ファイル
http://www.samba.gr.jp/project/transl...
smb.confの設定
http://www.confrage.com/linux/CentOS/...
- パーミッション関連
これで,共有すべきフォルダが整った。
(3−3)共有フォルダアクセス用のユーザを作成
Windowsのアカウントと同じユーザ名で,Linux上にもユーザを作成する。
また,Windowsのアカウントと同じパスワードで,Sambaに該当ユーザを登録する。
かりにWindows上では「hogeyama」というアカウント名で,パスワードが「hogeword」だったとしよう。
[root@localhost ~] useradd hogeyama [root@localhost ~] smbpasswd -a hogeyama New SMB password: Retype new SMB password: [root@localhost ~] pdbedit -L hogeyama:501:
参考:
Sambaで始めるWindowsファイルサーバー入門
http://www.samba.gr.jp/doc/contrib/be...
- 基本的な考え方ですが、Linux上のユーザー名とWindowsネットワークのユーザー名(Windowsを起動した時に入力するユーザー名の事)は同一のものにしましょう
- また、WindowsをSambaサーバーに接続させるには、Samba用のパスワードを設定しないといけませんが、このパスワードも、Windowsネットワークにログオンする際のパスワードと同一のものにしておけば、Sambaサーバーにアクセスする際にいちいちパスワードを入力しないで済みます
- ですから、ユーザー名、SambaパスワードともにWindows起動時に入力するものと同じにしておくことを推奨します
Sambaの基本設定
http://www.jitaku-server.net/samba_se...
- Sambaによるファイルサーバーを使うために新しいユーザーを追加する場合、そのユーザーがLinuxにログインする必要がないなら、「useradd -s /sbin/nologin ユーザー名」のようにして、ログインができないように設定しておくと安全性が高まる
ユーザ追加・削除、グループの設定 [Fedora, RedHat, CentOS]
http://memorva.jp/memo/linux/user.php
- 間違えた場合は userdel -r ユーザ名 でユーザ削除
pdbedit SAM データベースを管理する
http://www.samba.gr.jp/project/transl...
- pdbedit プログラムは SAMデータベース(Security Accounts Manager Database)内に保持されるユーザーアカウントを管理するために利用され、 root だけが実行できる。Sambaに含まれるツール。
- -L : データベースのすべてのユーザーアカウントを一覧表示する
- -a : ユーザーをデータベースに追加する
- -x : データベースからアカウントを削除する
これで,共有フォルダにアクセスする体制が整った。
(3−4)共有開始
シェル上で,Sambaのサービスを開始。
[root@localhost ~] /etc/init.d/smb start SMB サービスを起動中: [ OK ] NMB サービスを起動中: [ OK ]
これで,共有が開始された。
(3−5)共有フォルダの動作確認
まず,Linux上での動作確認。
smbclientコマンドを使って,共有フォルダに接続し,
Sambaのコマンドを打ち込んでファイルのリストを取得できる事を確認する。
[root@localhost ~] su - hogeyama [hogeyama@localhost ~]$ smbclient //DEV_SHARE/share_for_dev Password: Domain=[DEV_SHARE] OS=[Unix] Server=[Samba 3.0.33-3.29.el5_6.2] smb: \> pwd Current directory is \\DEV_SHARE\share_for_dev\ smb: \> ls . D 0 Tue Aug 16 14:14:26 2011 .. D 0 Tue Aug 16 14:14:16 2011 hoge A 9 Tue Aug 16 14:14:52 2011 38752 blocks of size 262144. 25803 blocks available smb: \> mkdir boo smb: \> ls . D 0 Tue Aug 16 15:10:47 2011 .. D 0 Tue Aug 16 14:14:16 2011 hoge A 9 Tue Aug 16 14:14:52 2011 boo D 0 Tue Aug 16 15:10:47 2011 38752 blocks of size 262144. 25803 blocks available smb: \> ! less hoge hoge: そのようなファイルやディレクトリはありません smb: \> ! pwd /home/hogeyama smb: \> exit
「!」のあとには,Linuxの通常のコマンド(bash)が使える。
上記の実行結果をみると,共有フォルダ上のファイルを
smbclientのセッション内でlessで閲覧する事はできないようだ。
しかし,フォルダ内のファイル一覧は取得できたし,
セッション内で新規フォルダ(boo)の作成にも成功しているので,
共有フォルダへの接続に成功した事になる。
参考:
sambaで共有ディレクトリを作成するには
http://www.tempest.jp/linux/fedora/do...
管理者必見! ネットワーク・コマンド集 smbclientコマンド
http://itpro.nikkeibp.co.jp/article/C...
※もしsmbclientからの接続に失敗する場合,smb.conf中でのIPアドレス制限に引っ掛かっていないかチェックしてみよう。
Windowsマシンに対してはアクセスが許可されていても,自マシン(Linux)のIPアドレスに対してアクセスを許可するのを忘れていた,なんてケースがある。
面倒なら,最悪「hosts allow = 192.」とだけ書いておけば,最低限のセキュリティは確保される。
※パーミッション設定を忘れていたり,共有サーバ名が長かったりすると,下記のようなエラーになる。
Connection to (共有サーバ名) failed (Error NT_STATUS_BAD_NETWORK_NAME)
次に,Windows上での動作確認。
マイコンピュータを右クリックし,プロパティから,PCの所属するワークグループが
「WORKGROUP」である事を確認。
Windowsのエクスプローラ上で,ロケーションバーに下記のUNCパスを入力してアクセス。
- \\LinuxのIPアドレス
すると,「share_for_dev」というフォルダと「プリンタ」が表示されるはずだ。
WindowsとSambaでアカウント情報を統一しておいたおかげで,
認証ダイアログが出ずにアクセスできた,という事に注意。
※もしアクセスできない場合は,
(1)で述べた iptables の設定解除を行なっていないので
アクセスが弾かれたのだと思われる。
そうでない場合は,Windows Vistaのセキュリティポリシーの設定変更が必要かもしれない。
VistaマシンでNAS(Samba)へ接続できない
http://mroom.cool.ne.jp/nikki/archive...
- Vistaの認証セキュリティレベルが高く設定されているため
- LAN Manager認証レベルを「LMとNTLMを送信する-ネゴシエーションの場合 NTLMv2セッションセキュリティを使う」に変更
VistaマシンでWebdavにつながらない
http://joint.aichi-u.ac.jp/mt3/2007/0...
- NASなどのネットワークドライブにつながらない場合
- Vista HomeなどVistaのエディションによっては、ローカルセキュリティポリシーの変更は、レジストリを編集する必要がある
フォルダが表示できたので,さっそく「share_for_dev」というフォルダを開く。
「hoge」というダミーファイルが存在するので,エディタで開いて編集し,保存してみよう。
また,新規フォルダやファイルも作ってみよう。
それらが正常に完了すれば,Windowsから共有フォルダ上での作業が可能になった,という事だ。
※もしここで「他のプロセスが使用中です」みたいなエラーメッセージが出て
ファイルに書き込めない場合,ファイルアクセスの権限が不足している。
(3−2)で chmod -R 777 をし忘れたのかもしれない。
そうでなければ,SELinuxが悪さをしている可能性がある。
だとすると, /etc/selinux/config の内容を下記のように修正すればよい。
SELINUX=enforcing ↓ SELINUX=disabled
(※このファイルは,/etc/sysconfig/selinux からシンボリックリンクを張られている。)
参考:
CentOS 5.6上で Apache+Passenger+Ruby on Rails 1.2 を動作させる手順 (仮想マシン上に,レガシーRailsの実運用環境を構築)
http://language-and-engineering.hatenablog.jp/entry/20110814/p1
- (9)SELinuxが有効のままだと,passengerに権限が足りず「403 Forbidden」と表示されてしまう
SELinux機能の停止方法
http://www.server-memo.net/linux-sett...
sambaで共有フォルダが見えるが書き込みできない
http://okwave.jp/qa/q5685846.html
- 良くあるのはディレクトリのパーミッションの設定のし忘れ
覚えておくべき点:
- Linux上のファイルにアクセスできない場合,パーミッションの次に,SELinuxを疑え。
- Linux上のネットワーク資源にアクセスできない場合,打ち間違いやセグメント違い・起動し忘れなどの次に,iptablesを疑え。
なお,Sambaのログの場所は /var/log/samba/smbd.log なので,
何かあったらその中を見て,エラーメッセージを頼りに対処してゆくこと。
参考:
Samba+CentOSでファイルサーバを作ろう
http://thinkit.co.jp/free/article/070...
Windowsファイルサーバー構築(Samba)
http://centossrv.com/samba.shtml
※ちなみに,Sambaをブラウザ上(901番ポート)から管理できる「SWAT」というツールも存在するが,お勧めしない。
このSWATというツールは,作りがあまりよろしくない。
例えば,GUIの画面上からパラメータを入力して,設定を反映させようとすると,
(ブラウザのキャッシュなどのせいで)設定が未反映の状態で画面が再表示されてしまう事がある。
そこで再度「設定反映」ボタンを押してしまうと,設定前の状態に戻ってしまうのだ。
設定項目も大量に表示されてしまい,最初のうちは使いこなしづらい。
参考:
SWATのインストールと利用設定
http://www.obenri.com/_samba/swat_set...
ここまでで,共有フォルダ作成のための基本的な作業が完了したことになる。
(3−6)共有フォルダをWindows上で開発環境にする
ここからは,この共有フォルダを,冒頭の図のような開発環境に仕立て上げてゆく。
まずは,共有フォルダに楽々辿りつけるよう,ネットワークドライブの割り当てを行なう。
Windows Vistaでは,マイコンピュータを開くと
画面上部に「ネットワークドライブの割り当て」ボタンがある。
そこを押下し,「ネットワークドライブの割り当て」ダイアログ上で,
ドライブ名は適当に選ぶ(Yとか)。
フォルダ名は「\\LinuxのIPアドレス\share_for_dev」とする。
「ログオン時に再接続」にチェックされている事を確認し,完了を押下。
これで,「share_for_dev」ディレクトリは,
Windows上でYドライブとしてアクセスできるようになった。
次に,そのドライブを開発環境として用いるために,SVNリポジトリを作る。
手順(2)で既に紹介されているが,要所だけをかいつまんで書くと,
まずは
- D:\svnprojects\samba_test
というフォルダを作成。
そのフォルダ上で,右クリック→Tortoise SVN→「ここにリポジトリを作成」する。
そして,ブラウザ上から
にアクセスし,「samba_test - Revision 0: /」と表示される事を確認する。
(もしアクセス制限をかけている場合は,認証情報を入力する。)
これでリポジトリができ,WebDAV経由で閲覧できるようにもなった。
次いで,リポジトリから開発環境にチェックアウトを行なう。
Y:\samba_test というフォルダを作り,そのフォルダ上で
右クリック→「SVNチェックアウト」を選択。
チェックアウトダイアログ上で,リポジトリのURLとして
を入力。
OKを2回押下。
これで,Y:\samba_test 上に .svn 隠しファイルが生成され,
リポジトリとして利用可能になった。
そしてWindows上の作業として最後に,
この共有フォルダが,Windows起動時にすぐに利用可能になるようにしよう。
現状では,Windows起動時にはこの共有フォルダは使えない。
このフォルダが,VMWare上の仮想マシンの一部であることをお忘れなく。
だから,Windows起動と同時に,VMWareおよび仮想マシンが起動するようにすればよいのだ。
そのようなバッチは,下記の3つのバッチを組み合わせることによって作成できる。
vmrun.exeで,仮想マシンの操作をバッチから自動化しよう (VMWare Server 2で,WindowsからLinuxをOSごと自動操作)
http://language-and-engineering.hatenablog.jp/entry/20100514/p1
- 仮想マシンを自動操作するバッチ
- VMWare Host Agent サービスを起動するバッチ
「スタートアップ」に,仕事をさせよう (朝,出社するだけで仕事が進む仕組み作り)
http://language-and-engineering.hatenablog.jp/entry/20100929/p1
- my_startup.bat
my_startup.batの末尾に,下記のように追記するとよいだろう。
@rem VMサービスを起動 net start "VMWare Host Agent" @rem 仮想マシンを起動 "C:\Program Files\VMWare\VMWare Server\vmrun" -T server ^ -h https://localhost:8333/sdk ^ -u Windowsのユーザ名 -p Windowsのパスワード ^ start "[standard] 仮想マシン名/仮想マシン名.vmx"
これで,Windows起動時には自動的に共有フォルダが利用可能になる。
(※もしチームで開発している場合は,さらに共有フォルダ上のSVN更新もスタートアップに含めるとよいだろう。)
※なお,Windows Vistaではスタートアップが管理者権限で実行されないので,
net startコマンドの部分が「システム エラー 5 が発生しました。アクセスが拒否されました。」のエラーになる。
その場合,スタートアップではなく,タスクスケジューラで
「ログオン時」のタスクを定義すればよい。
または,単にサービスの設定として
該当VMサービスが自動起動するようにしておけばよい。
vistaで管理者権限にてスタートアップを使用する方法
http://d.hatena.ne.jp/zizif/20070912/p2
- 「タスクの作成」→全般タブで「最上位の特権で実行する」にチェック
- トリガタブでタスクの開始を「ログオン時」に
ここまでで,共有フォルダをWindows側で開発環境として利用する環境が構築できた。
(3−7)共有フォルダにLinux上でWebアプリを置いて動かす
次に,ここにRuby on Railsのプロジェクトを作成し,Linux上で動かす。
なお,手順(1)によりApacheとRailsとPassengerは導入済みとする。
Linux上で作業:
[root@localhost ~] cd /usr/local/work/samba_test/ [root@localhost samba_test] mkdir src [root@localhost samba_test] cd src [root@localhost src] rails samba_test 〜〜 [root@localhost src] chmod -R 777 ../ [root@localhost src] chown -R hogeyama:hogeyama ../
※chownしてオーナーをWindowsのユーザにしておかないと,SVNコミット時に失敗する。
次に,そこを公開ディレクトリとして認識させるために
Apacheの設定ファイル /etc/httpd/conf/httpd.conf を編集。
既に下記の3行は記述済みだろう。
# passengerのモジュールを読み込み
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.7
PassengerRuby /usr/local/bin/ruby
その下に,サンプルとして既にRailsBaseURIが指定されているかもしれない。
下記のように。
# /var/www/htmlという公開ディレクトリ中の # link_hogeというシンボリックリンクの参照先を # Railsのルートディレクトリにする <VirtualHost *:80> DocumentRoot /var/www/html ErrorLog logs/error_log CustomLog logs/access_log common RailsBaseURI /link_hoge </VirtualHost>
これを,以下のように1行だけRailsBaseURIを追記する。
# シンボリックリンクの参照先をRailsのルートディレクトリにする
<VirtualHost *:80>
DocumentRoot /var/www/html
ErrorLog logs/error_log
CustomLog logs/access_log common
RailsBaseURI /link_hoge
RailsBaseURI /samba_test
</VirtualHost>
こうすれば,複数のサブURLに対して複数のシンボリックリンクを対応させ
同一サーバ上で複数のRailsアプリを同時並行して動作させることができる。
参考:
Passenger で複数の Rails アプリをサブ URI にぶら下げる方法
http://blog.livedoor.jp/kaznobster/ar...
- http://example.com/hoge/ と http://example.com/fuga/ という URI で、Passenger を使って複数の Rails のアプリを動かす
そして,シンボリックリンクを実際に作成する。
また,Apacheを再起動。
[root@localhost ~] cd /var/www/html [root@localhost html] ln -s /usr/local/work/samba_test/src/samba_test/public samba_test [root@localhost html] /etc/init.d/httpd restart
これで,ブラウザから下記のURLにアクセス。
- http://LinuxのIPアドレス/samba_test/
「Welcome aboard!」と表示されればOK。
あとは,Windows上で
- Y:\samba_test\src
の内容をSVNコミットしておくだけだ。
これで,共有フォルダを
- Windowsからは開発資材
- Linuxからは公開ディレクトリ
として,シームレスに共用できるようになった。
冒頭の図の開発環境が完成した。
最後に,構成情報をまとめておく。
Windows側:
- Windows Vista
- VMWare Server 2
- Tortoise SVN 1.6.16
- Win32SVN Subversion-1.6.17
- XAMPP1.7.1
- Apache 2.2.11
Linux側:
- CentOS 5.6
- Ruby 1.8.6
- RubyGem 1.3.6
- Apache 2.2.3
- mod_rails(passenger) 2.2.7
- Ruby on Rails 1.2.6
- Samba 3.0.33
補足
共有フォルダ上でのSVN更新やSVNコミット等の操作は,割と遅めになるかもしれない。
(ネットワークを経由して一括ファイル操作するので。)
そういう環境なのだ,と割り切って,うまく時間配分して作業を進めてゆくことが大事。
補足2
このページを他のエンジニアに紹介する際には,
- GoogleかYahooで,『Linux Samba 共有フォルダ 環境』で検索して一番上に来るページ
を見るように伝えればOK。
(2011年8月時点)
補足3:仮想マシンのネットワークアダプタとして,BridgeではなくNATを選択したい場合
もし仮想マシンに対してBridgeではなくNATを使いたい場合,
VMのWeb管理画面から該当マシンのNWアダプタを「NAT」に変更。
VMコンソール上で該当マシンにログインし,端末を開いて
dhclient
/etc/init.d/network restart
ifconfig
これで,VMWareがDHCPサーバとして機能して,仮想マシン内には新IPアドレスが自動的に割り振られた。
ホストから下記のURLにアクセス:
- http://新IPアドレス/
Apacheのスタートページが見えるはず。
- http://新IPアドレス/samba_test/
Railsのスタートページが見えるはず。
この時点で,ホストとゲストで異なるサブネットに所属するような状況になっているはずなので,ゲストOSのsmb.confのIPアドレス許可設定を極力緩めにする(192. だけとか)。
そしてSambaを再起動。
/etc/init.d/smb restart
これで,ホストOSのエクスプローラから下記のパスにアクセス。
- \\新IPアドレス
すると,共有フォルダの中身が見れる。
NATでも問題なくSambaで共有フォルダを利用できる,という事がわかった。
ただし,BridgeでIPアドレスを固定しておき,いざという時には他のユーザに対して公開することもできるような環境を整えておいたほうが,共有フォルダの用途として何かと便利ではあるだろう。
参考:
Windows 7 + VMware Server 2 + Windows XP NAT接続のゲストPCからのHTTPアクセス設定編
http://ogu80000.blog135.fc2.com/blog-...
- 会社や学校等で他の利用者がいる場合に仮想マシンの設定ミス等で迷惑をかけないためとか物理マシン1台に1IPアドレスしか割当ててもらえない場合などNAT接続は有用
- ホストマシンのコマンドプロンプトでipconfig /allを実行し、NAT接続に使われるVMnet 8 が表示されるか 確認
- VMwareの仮想環境上にDHCPサーバができているのでホストマシンのIPアドレス帯と異なるIPアドレスが自動的にふられている
関連する記事:
Linux上のApacheで,複数のWebサイトを同時テストできる環境を作る (仮想ホストでサイト住み分け + SVNフックスクリプトで自動デプロイ+ユーザ認証でチーム作業)
http://language-and-engineering.hatenablog.jp/entry/20110928/p1
共有フォルダ上で,マウスだけで一発でコマンドプロンプトを開く方法 (UNCパスへのpushdをバッチクリックで済ませる)
http://language-and-engineering.hatenablog.jp/entry/20090305/p1
Linux(CentOS6.3 x64)上で、無線LAN接続を設定する手順のメモ
http://language-and-engineering.hatenablog.jp/entry/20121220/p1