サイトアイコン アイネクシオ(Webサイトドクター)

Ubuntu 15.04にVirtualbox、Vagrantをインストール

開発環境を整えるってのは重要ですよね。
MAMP とかXAMMP で十分ってこともありますが、自分以外の端末だと動かなかったり、Apache設定ファイルにVirtualHostがたくさん並んだりと、問題もあったりします。

Vagrantを利用することで、自分以外と同じ環境が用意できたり、本番と同じ環境が用意できたり、プロジェクト毎に独立した環境が用意できたりと、いろいろ嬉しいことがあります。

Ubuntu 15.04にVagrantとVirtualboxをインストールする方法をまとめておきます。

環境

Virtualboxのインストール

「/etc/apt/sources.list」に記載します。

sudo vi /etc/apt/sources.list

#最後に以下を追加
deb http://download.virtualbox.org/virtualbox/debian raring contrib

sudo wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox

Vagrantのインストール

以下アドレスからファイルをダウンロードします。
執筆時点では1.7.2でした。
https://www.vagrantup.com/downloads.html 

wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2_i686.deb
sudo dpkg --install vagrant_1.7.2_i686.deb

boxイメージをダウンロード

以下URLからboxイメージをダウンロードすることにします。
http://www.vagrantbox.es/

今回はとりあえず「Official Ubuntu 14.04 daily Cloud Image i386 (Development release, No Guest Additions)」を設定することにしてみた。

コマンドは以下のとおり。
例: vagrant box add {box名} {boxファイル}

vagrant box add ubuntu14.04 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-i386-vagrant-disk1.box

上記コマンドの時点では仮想環境は作成されていません。
Vagrantにboxイメージを追加しただけです。

以下コマンド追加されたboxを確認できます。
「ubuntu14.04」が追加されていることが確認できます。

vagrant box list
ubuntu14.04 (virtualbox, 0)

仮想環境の準備

Vagrantのプロジェクトディレクトリを用意し、そこで作業を行うようにしました。

mkdir /home/user/vagrant
cd /home/user/vagrant

仮想環境の設定ファイルであるVagrantfileを作成します。

vagrant init ubuntu14.0.4

また、IPアドレスの設定を行っておきます。
「Vagrantfile」を編集して、以下「config.〜」を追記します。
ここではIPアドレスを「192.168.10.33」としておきます。

vi Vagrantfile

config.vm.network "public_network", ip: "192.168.10.33"

ネットワークインターフェイスが複数あると、起動時に毎回選択する必要あります。
一部抜粋すると以下のようなところで止まってしまうと思います。

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Fixed port collision for 22 => 2222. Now on port 2203.
==> default: Clearing any previously set network interfaces...
==> default: Available bridged network interfaces:
1) eth0
2) wlan0
==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
    default: Which interface should the network bridge to?

これは設定ファイル「Vagrantfile」に追記することで回避できるようです。
上の例の「default: Available bridged network interfaces:」の次にでてくる選択肢を記載しておきます。
ここでは1) eth0を常時選択するようにしておきます。

vi Vagrantfile

config.vm.network "public_network", ip: "192.168.10.33", bridge: "eth0"

仮想環境の起動

設定ファイルが作成されているので、以下コマンドで仮想環境を起動します。

vagrant up

以下のようなエラーがでてきます。

The private key to connect to the machine via SSH must be owned
by the user running Vagrant. This is a strict requirement from
SSH itself. Please fix the following key to be owned by the user
running Vagrant:

/home/user/vagrant/.vagrant/machines/default/virtualbox/private_key

原因はよくわかりませんでしたが、以下を参考に「Vagrantfile」に追記することで回避することができました。
Vagrant 1.7以降、何かしら仕様が変わったようです。
気が向いたら勉強してみましょうか。
vagrant 1.7以降は’vagrant up’した時にinsecure_keyを差し替える

config.ssh.insert_key = false

一度Vagrantを停止させて再度起動させることで、無事起動しました。
SSHコマンドで仮想環境にログインできます。
あとは好きなように作業を行うだけですね。

vagrant halt
vagrant up
vagrant ssh
モバイルバージョンを終了