Edited at

Vagrant セットアップ (Mac)

More than 3 years have passed since last update.


1. Vagrant のインストール

公式サイト

http://www.vagrantup.com/

上記公式サイトから、 vagrant_1.8.1.dmg をダウンロードし インストール

$ vagrant --version

Vagrant 1.8.1


2. VirtualBox を公式サイトからインストール

VirtualBox 公式サイト

https://www.virtualbox.org/

VirtualBox-5.0.20-106931-OSX.dmg をダウンロードし インストール


3. 初期化と起動

Centos6.7の例です。

$ mkdir -p ~/Vagrant/CentOS67/

$ cd ~/Vagrant/CentOS67/

$ vagrant init bento/centos-6.7
$ vagrant up --provider virtualbox

その他のBoxは下記にあるので、他のBoxを探して利用することも可能です。

https://atlas.hashicorp.com/boxes/search

例)ubuntuの例

$ vagrant init ubuntu/trusty64

$ vagrant up --provider virtualbox

以前からある vagrantbox.es からBoxを探して利用することも可能です。

http://www.vagrantbox.es/

例)

$ vagrant box add centos65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box

$ mkdir -p ~/Vagrant/CentOS65
$ cd ~/Vagrant/CentOS65

$ vagrant init centos65
$ vagrant up


4. 仮想マシンの操作


起動するには、up

$ vagrant up

Bringing machine 'default' up with 'virtualbox' provider...

[default] VirtualBox VM is already running.

すでに起動してます。


状態を見るには、 status

$ vagrant status

default running (virtualbox)


一時停止するには、suspend

$ vagrant suspend

[default] Saving VM state and suspending execution...


5. 仮想マシンへの接続

$ vagrant ssh

Welcome to your Vagrant-built virtual machine.
[vagrant@localhost ~]$


6. ネットワークの設定

$ vim Vagrantfile

# config.vm.network :private_network, ip: "192.168.33.10"
↑ ここのコメントアウトを削除

vagrant のリロード

$ vagrant reload

これで、192.168.33.10 というIPでアクセスできる

% ping 192.168.33.10

PING 192.168.33.10 (192.168.33.10): 56 data bytes
64 bytes from 192.168.33.10: icmp_seq=0 ttl=64 time=0.383 ms
64 bytes from 192.168.33.10: icmp_seq=1 ttl=64 time=0.624 ms
64 bytes from 192.168.33.10: icmp_seq=2 ttl=64 time=0.794 ms


7. プロビジョニング

Vagrantには chef や ansible のようなサーバーの初期設定をするしくみが備わっています。

大きく分けて、Vagrantfile に直接記述する inlineの方法と、外部ファイル(shell script)に記述する方法があります。


7.1 プロビジョニング/inlie

Vagrantfile に直接記述します。

Vagrant.configure("2") do |config|

config.vm.provision "shell", inline: <<-SHELL
sudo yum update
sudo yum install -y git screen tree wget
SHELL
end

変更したら、provisionを実行

$ vagrant provision


7.2 プロビジョニング/外部ファイル

外部のshell scriptを実行します。

Vagrant.configure("2") do |config|

config.vm.provision "shell", path: "script.sh"
end

このscript.sh はホストOS側にあります。


7.3 その他

他にも、指定したURLのスクリプトを実行したり、いろいろできます。

詳しくはこちら

https://www.vagrantup.com/docs/provisioning/shell.html


補足

Vagrantのsharedfolder使ってて良くはまるのが、CSSとかJSとかHTMLといった静的なコンテンツを更新しても

反映されない事があります。

そんな現象が起きた時は下記を参考にしてapacheやnginxの設定を見直すと良いかもです。

VagrantでCSSの更新が反映されない場合の対処法

http://qiita.com/shoyan/items/12389d5beaa8695b1a53