Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Vagrant初期設定.md

ローカル開発環境をVagrantで構築する

開発環境と確認環境の違い

開発環境は常にエンジニアが変更を加え続ける

その環境をプロジェクトメンバーが確認する環境に利用するのは望ましくない

また、ユーザーを分けるなどの対応を行っていても、DBなど共通で利用している環境が存在する限りそこが開発速度を遅くする原因となりうる

そこで、開発環境は共通構成で各自の開発環境に構築し閲覧環境は常時最新にしておくことが望ましい

そのためのコストを下げる機能がVagrantである

構築環境

  • Windows7(64bit)
  • Vagrant 1.3.5
  • VirtualBox 4.3.12 for Windows hosts

Virtualboxのインストール

Windows7 64bitで作業

Downloads – Oracle VM VirtualBox

ここから最新版をダウンロードし、インストール。チェックボックスは任意で(別に全部はずしても困らない)

  • Create shortcut on the desktop
    デスクトップにショートカットを作成する
  • Create shortcut in the Quick Launch Bar
    クイックラウンチバーにショートカットを作成する
  • Register file associations
    ファイルの関連付けを登録する

インストールしたディレクトリに対してパスを通す

Vagrantのインストール

Vagrant - Downloads

ここから最新版をダウンロードし、インストール。再起動を求められるのでおとなしく従う

Vagrant Boxファイルを入れる

適当なディレクトリを作り、コマンドプロンプトに移動する(例: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の起動

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

SSHでの接続

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の必要なPluginを入れる

vagrant halt
vagrant plugin install sahara
vagrant up

開発作業をする前にかならず以下をやるようにする

vagrant sandbox on
#--------作業後---------
vagrant sandbox commit

手を入れた仮想マシンの状態を保持したboxファイルを作成し配布する

vagrant halt
vagrant package

これで、package.boxが作成されるので、そのファイルを利用したい環境に移動する

新しい環境下にC:\vagrantフォルダを作り、そこにpackage.boxを配置したうえで

vagrant box add customized_centos package.box
vagrant init customized_centos
vagrant up

これで、そのまま利用できる

Vagrantファイルは新しい環境で編集し直さないとだめ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment