LoginSignup
50

More than 5 years have passed since last update.

Vagrantで再現可能な仮想マシン開発環境をMacに構築する

Last updated at Posted at 2012-12-26

CentOS 6.3 をVagrantで再現可能な開発環境としてMac上で構築します。

構築した環境

  • Mac OS X 10.8
  • XCode 4.4.1
    • 事前にCommand Line Toolsはインストールしておく

Vagrnat 1.0以降はパッケージで提供されています。gemからVagrantを入れる必要ありませんので、最新の場合はインストール部分を省略してください。

Vagrantダウンロード一覧

RVMのインストール

bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

source ~/.bash_profile

rvm install 1.9.3
rvm use 1.9.3
rvm --default 1.9.3

.bash_profileの確認

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
source "$HOME/.rvm/scripts/rvm"

Vagrantのインストール

gem install vagrant

VeeWeeのインストール

VeeWeeはBoxファイルのテンプレートを生成してくれるパッケージです。

Bundlerが入っていなければ入れる

gem install bundler

VeeWeeの.rvmrcを書き換える

1.9.2 となっている部分を 1.9.3 に変更

インストール

git clone git://github.com/jedi4ever/veewee.git
cd veewee
bundle install

仮想マシンの定義

CentOS 6.3 の環境を作成する。

このコマンドはveeweeディレクトリ内で実行する。

bundle exec vagrant basebox define centos_63_x86_64 CentOS-6.2-x86_64-minimal

そうするとdefinationsにテンプレートが作成されるので、それらを編集する。

definition.rb

ミラーの参照先を変更

:iso_file => "CentOS-6.3-x86_64-minimal.iso",
:iso_src => "ftp://ftp.riken.jp/Linux/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-minimal.iso",

ks.cfg

これはキックスタート用のファイル
日本語対応にする。

install
cdrom
lang ja_JP.UTF-8
keyboard us
network --bootproto=dhcp
rootpw --iscrypted $1$damlkd,f$UC/u5pUts5QiU3ow.CSso/
firewall --enabled --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Tokyo
bootloader --location=mbr

仮想マシンのビルド

vagrant basebox build centos_63_x86_64

[centos_63_x86_64] Downloading vbox guest additions iso v 4.1.6 - http://download.virtualbox.org/virtualbox/4.1.6/VBoxGuestAdditions_4.1.6.iso
[centos_63_x86_64] Creating an iso directory
[centos_63_x86_64] Checking if isofile VBoxGuestAdditions_4.1.6.iso already exists.
[centos_63_x86_64] Full path: /Users/hoge/git/veewee/iso/VBoxGuestAdditions_4.1.6.iso
Fetching file:  62% |oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                                                      |  26.5MB 351.8KB/s ETA:   0:00:47

しばらく待つ。途中でisoをダウンロードするか聞いてくるのでyesとする。

自動的に仮想マシンが起動するので、またしばらく放置。

プロンプトに

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 7222 -l veewee 127.0.0.1

と表示されていれば、このコマンドでveeweeというパスワードでsshログインが可能。

この状態になったら一度落とします。

boxファイルへエクスポート

構築した仮想環境をboxファイルにエクスポートします。

vagrant basebox export centos_63_x86_64

仮想環境の登録と初期化

エクスポートしたboxを登録します。

vagrant box add 'centos_63_x86_64' 'centos_63_x86_64.box'

veeweeディレクトリから抜けて、仮想マシン用のディレクトリを作成します。

unalias vagrant

mkdir ~/box/centos_63_x86_64

さて、いよいよ。登録して起動です。

vagrant box add centos_63_x86_64 ~/git/veewee/centos_63_x86_64.box

vagrant init centos_63_x86_64

# カレントディレクトリにVagrantfileが作成される

vagrant up

[default] Importing base box 'centos_63_x86_64'...
[default] Matching MAC address for NAT networking...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Mounting shared folders...
[default] -- v-root: /vagrant

起動が完了しました!

ログインしてみる

vagrant ssh

[vagrant@localhost ~]$

プロンプトがでましたね。
仮想マシンを起動したカレントディレクトリが、/vagrant として仮想マシン内から参照可能です。

仮想マシンの停止

作業情報を保持したまま停止

vagrant halt

作業情報をすべて破棄

この方法は仮想マシンのファイルはすべて破棄されます。

vagrant destroy

一度boxファイルができてしまえば vagrant コマンドだけで、すぐに構築した仮想マシンをすぐに各環境で立ち上げることができます。

複数の環境を自動的にテストする目的には特に有用かと思います。

Appendix

公開されている box 一覧
http://www.vagrantbox.es/

今回作ったboxは欲しい人がいたらあげます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
50