share facebook facebook2 twitter menu hatena pocket slack

2014.01.30 THU

Vagrantってなんじゃ?

三浦 悟

WRITTEN BY三浦 悟

memorycraftです。

VagrantはVirtual Boxという仮想環境のコマンドインターフェースのようなものです。
VirtualBoxをつかえば、手元に簡単にテスト環境を用意できます。

■VirtualBoxのインストール

VirtualBoxをダウンロードしてインストールします。
(Vagrantをgemではなく、パッケージインストーラの最新版から入れたらVirtualBoxの最新版に対応していました。)

インストーラなので、そのままインストールします。

■Vagrant のインストール

インストールが完了したら次はvagrant のインストールです。
vagrantは、最近のバージョンはGemではなくPackageインストーラでインストールします。

vagrantのインストールが完了したら、vagrantをつかって仮想環境をつくります。VirtualBoxでは仮想環境を固めたものをboxと呼ぶようです。
今回はCentOSのboxを追加します。各boxが、

http://www.vagrantbox.es/

に公開されているので、以下のようなコマンドでURLを追加します。

boxには名前をつける必要があるので、ここでは myfirstbox という名前をつけてみます。

$ vagrant box add myfirstbox https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box

これで、インストールが完了しました。

■仮想環境の起動

適当なディレクトリをつくって、vagrant initをすると、Vagrantfileが出来ます。

$ mkdir virtualbox
$ cd virtualbox/
$ vagrant init
$ ls -l
total 16
-rw-r--r--  1 memorycraft  staff  4668  1 28 22:27 Vagrantfile

Vagrantfileを開いて、2点だけ修正します。
・box名を先ほどつけたmyfirstboxへ変更する
・ネットワーク設定をプライベートIPの192.168.33.10に設定する
IPは他のIPでも構いません

Vagrantfile

config.vm.box = "base"

config.vm.box = "myfirstbox"

#config.vm.network :private_network, ip: "192.168.33.10"

config.vm.network :private_network, ip: "192.168.33.10"

これで起動の準備が整ったので、起動してみます。起動はvagrant upをつかいます。
起動のログ出力が正常に終わると、起動完了です。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'myfirstbox'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[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] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant

起動した環境にsshログインしてみます。

$ vagrant ssh-config --host myfirstbox >> ~/.ssh/config
$ ssh myfirstbox
[vagrant@vagrant-centos65 ~]$
[vagrant@vagrant-centos65 ~]$ pwd
/home/vagrant
[vagrant@vagrant-centos65 ~]$ ls -la
total 24
drwx------. 3 vagrant vagrant 4096 Dec  5 14:18 .
drwxr-xr-x. 3 root    root    4096 Dec  5 14:18 ..
-rw-r--r--. 1 vagrant vagrant   18 Jul 18  2013 .bash_logout
-rw-r--r--. 1 vagrant vagrant  176 Jul 18  2013 .bash_profile
-rw-r--r--. 1 vagrant vagrant  124 Jul 18  2013 .bashrc
drwx------. 2 vagrant vagrant 4096 Dec  5 14:18 .ssh
[vagrant@vagrant-centos65 ~]$

おお、入れました。
それでは、ここにhttpdをインストールしてWEBサーバーを立ちあげてみましょう。

$ sudo yum install -y httpd
$ sudo /etc/init.d/httpd start

■確認

そしてブラウザで、さきほどVagrantFileに記述したIPにアクセスしてみます。

簡単にWEBサーバーが出来てしまいました。
これで他に開発環境とかもつくれてしまいますね。

以上です。

こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら

三浦 悟

三浦 悟

高円寺在住のなんじゃ系男子 またの名をmemorycraftといいます。 炭水化物大好き 日々の「なんじゃ?」を記事にしてます。