開発環境をWindows8上のVMに作ります。基本的な手順と、普段Macを使っている自分が見たWindows向けの話など。
必要なVagrantとVirtualBoxをインストール。合わせて仮想マシンをリストから探して登録します。
なお、単に開発環境がほしい場合は完成したものを探すとよいでしょう。たとえばPHPの開発環境が欲しい場合にはこういったものを使えば、PHP、Nginx、MySQL、PHPUnitなどの環境がそろいます。
yandod/php5-nginx-vagrant-sample
・VirtualBoxでVMを動かすときに環境によってはBIOS設定を変更する必要がある。
・コンソールからsshできないので、sshクライアントをインストールする必要がある。
まず1点目のBIOS設定です。セットアップ中、vagrant upが全く進まなくなる症状が出ました。これはVMが64bitOSを動かすのに仮想化支援機能を使うのですが、それが有効になっていなかったことが原因でした。有効にするにはBIOS設定の変更が必要です。 Windows の Vagrant で 64 bit OS が起動しないとき - Qiita [キータ]
2点目のsshについては、Windowsでもsshコマンドを使えるようにもできるらしいですが今回はsshクライアントを使いました。putty、Tera Term、Poderosaなどがあるようです。Poderosaが扱いやすかったのでとりあえずPoderosaを使用していましたが、文字化けなどの関係で今はputtyを使用しています。
・ssh接続が可能なので、それを使う
・デフォルトでVM側の/vagrantディレクトリは、vagrant initしたディレクトリと同じになるので、そこにファイルを置く
・Vagrantfileのsrc_dirに任意のディレクトリを書く
・sshfsを導入してVMを仮想ドライブとしてマウントする こういったやり方で、VMとの間でファイルを共有することができます。編集はWindowsで行い実行はVMで行うという操作も簡単に実現でき、非常に便利です。
vagrantをwindowsにインストール - Qiita [キータ]
Ruby - Vagrant and Chef on Windows - Qiita [キータ]
Ruby - 今っぽい Vagrant + Chef Solo チュートリアル - Qiita [キータ]
準備
まずVagrantにRubyが必要なので、RubyInstaller for Windowsを使いインストールします。必要なのは1系だったので、1.9.3をインストールしました。必要なVagrantとVirtualBoxをインストール。合わせて仮想マシンをリストから探して登録します。
$ vagrant box add <名前> < Available Boxes書いてあるURL>適当なディレクトリを用意して初期化を行います。
$ vagrant init <名前>それが完了したら、VMをマウントして完了です。
$ vagrant upVMにログインするには、Macならvagrant sshコマンド、Windowsならsshクライアントからログインを行います。設定は、host 127.0.0.1、port 2222、User vagrant、Password vagrant、です。
なお、単に開発環境がほしい場合は完成したものを探すとよいでしょう。たとえばPHPの開発環境が欲しい場合にはこういったものを使えば、PHP、Nginx、MySQL、PHPUnitなどの環境がそろいます。
yandod/php5-nginx-vagrant-sample
Windowsの場合について
Macでしか開発したことが無かったので、windowsに環境を用意する上でつまづいた点がありました。・VirtualBoxでVMを動かすときに環境によってはBIOS設定を変更する必要がある。
・コンソールからsshできないので、sshクライアントをインストールする必要がある。
まず1点目のBIOS設定です。セットアップ中、vagrant upが全く進まなくなる症状が出ました。これはVMが64bitOSを動かすのに仮想化支援機能を使うのですが、それが有効になっていなかったことが原因でした。有効にするにはBIOS設定の変更が必要です。 Windows の Vagrant で 64 bit OS が起動しないとき - Qiita [キータ]
2点目のsshについては、Windowsでもsshコマンドを使えるようにもできるらしいですが今回はsshクライアントを使いました。putty、Tera Term、Poderosaなどがあるようです。Poderosaが扱いやすかったのでとりあえずPoderosaを使用していましたが、文字化けなどの関係で今はputtyを使用しています。
vagrantとホスト間でのファイルのやり取り
最後に、VMとホストOS(Windows側)でファイルをやり取りする方法についてです。 Windows側のファイルを参照するには次のような方法があります。・ssh接続が可能なので、それを使う
・デフォルトでVM側の/vagrantディレクトリは、vagrant initしたディレクトリと同じになるので、そこにファイルを置く
・Vagrantfileのsrc_dirに任意のディレクトリを書く
・sshfsを導入してVMを仮想ドライブとしてマウントする こういったやり方で、VMとの間でファイルを共有することができます。編集はWindowsで行い実行はVMで行うという操作も簡単に実現でき、非常に便利です。
資料
Getting Started - Vagrant Documentationvagrantをwindowsにインストール - Qiita [キータ]
Ruby - Vagrant and Chef on Windows - Qiita [キータ]
Ruby - 今っぽい Vagrant + Chef Solo チュートリアル - Qiita [キータ]