Vagrant セットアップ (Mac)

  • 461
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

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