開発環境は常にエンジニアが変更を加え続ける
その環境をプロジェクトメンバーが確認する環境に利用するのは望ましくない
また、ユーザーを分けるなどの対応を行っていても、DBなど共通で利用している環境が存在する限りそこが開発速度を遅くする原因となりうる
そこで、開発環境は共通構成で各自の開発環境に構築し閲覧環境は常時最新にしておくことが望ましい
そのためのコストを下げる機能がVagrantである
- Windows7(64bit)
- Vagrant 1.3.5
- VirtualBox 4.3.12 for Windows hosts
Windows7 64bitで作業
Downloads – Oracle VM VirtualBox
ここから最新版をダウンロードし、インストール。チェックボックスは任意で(別に全部はずしても困らない)
- Create shortcut on the desktop
デスクトップにショートカットを作成する - Create shortcut in the Quick Launch Bar
クイックラウンチバーにショートカットを作成する - Register file associations
ファイルの関連付けを登録する
インストールしたディレクトリに対してパスを通す
ここから最新版をダウンロードし、インストール。再起動を求められるのでおとなしく従う
適当なディレクトリを作り、コマンドプロンプトに移動する(例:C:\vagrant)
この時作成したディレクトリが、ファイル共有ディレクトリとなる
A list of base boxes for Vagrant - Vagrantbox.es
ここからCentOS 6.5 i386 MinimalのURLをコピーし、コマンドプロンプトで以下を実行
まだCentOS6.5x86_64のMinimalは無いみたい(2014/07/09時点)
box addコマンドを実行の際、時間がかかりすぎる場合は一度ローカルにDLしそのファイルのパスを指定してもOK
cd C:\vagrant
vagrant box add centos65_64 https://dl.dropbox.com/s/3fgr7lbvcpn51py/centos_6-5_i386.box
vagrant init centos65_64
vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'centos65_64'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] The guest additions on this VM do not match the installed version of
VirtualBox! In most cases this is fine, but in rare cases it can
cause things such as shared folders to not work properly. If you see
shared folder errors, please update the guest additions within the
virtual machine and reload your VM.
Guest Additions Version: 4.2.16
vagrant ssh
ログインできれば成功。ただ、コマンドプロンプトとか超使いにくいのでPoderosaで接続する
- id:vagrant
- pass: vagrant
- address: 127.0.0.1
C:\vagrantのなかにVagrantファイルがあるので開き、
# Create a private network, which allows host-only access to the machine
# using a specific IP.
# config.vm.network :private_network, ip: "192.168.33.10"
のconfig.vm.networkの部分のコメントを解除する
以降、192.168.33.10にポート22で接続できるようになる
Vagrantファイルに共有フォルダの指定を行う
config.vm.synced_folder "C:/vagrant", "/vagrant"
IPv6のDNS逆引きでタイムアウトしてるらしい
Slow networking (due to IPv6?) on CentOS 6.x · Issue #1172 · mitchellh/vagrant
Vagrantファイルを開き、以下を追加
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--natdnsproxy1", "off"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "off"]
end
vagrant halt
vagrant plugin install sahara
vagrant up
開発作業をする前にかならず以下をやるようにする
vagrant sandbox on
#--------作業後---------
vagrant sandbox commit
vagrant halt
vagrant package
これで、package.boxが作成されるので、そのファイルを利用したい環境に移動する
新しい環境下にC:\vagrantフォルダを作り、そこにpackage.boxを配置したうえで
vagrant box add customized_centos package.box
vagrant init customized_centos
vagrant up
これで、そのまま利用できる
Vagrantファイルは新しい環境で編集し直さないとだめ