inexio(アイネクシオ)

私たちはネットワークから新しいアイデアを創出します

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

      2015/07/08

開発環境を整えるってのは重要ですよね。
MAMP とかXAMMP で十分ってこともありますが、自分以外の端末だと動かなかったり、Apache設定ファイルにVirtualHostがたくさん並んだりと、問題もあったりします。
Vagrantを利用することで、自分以外と同じ環境が用意できたり、本番と同じ環境が用意できたり、プロジェクト毎に独立した環境が用意できたりと、いろいろ嬉しいことがあります。
今さら感満載ですが、Ubuntu 15.04にVagrantとVirtualboxをインストールする方法をまとめておきます。

環境

  • Ubuntu 15.04
  • Vagrant 1.7.2

Virtualboxのインストール

「/etc/apt/sources.list」に

<br />
sudo vi /etc/apt/sources.list</p>
<p>#最後に以下を追加<br />
deb http://download.virtualbox.org/virtualbox/debian raring contrib</p>
<p>sudo wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -<br />
sudo apt-get update<br />
sudo apt-get install virtualbox<br />

Vagrantのインストール

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

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

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ファイル}

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

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

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

<br />
vagrant box list<br />
ubuntu14.04 (virtualbox, 0)<br />

仮想環境の準備

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

<br />
mkdir /home/user/vagrant<br />
cd /home/user/vagrant<br />

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

<br />
vagrant init ubuntu14.0.4<br />

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

<br />
vi Vagrantfile</p>
<p>config.vm.network &quot;public_network&quot;, ip: &quot;192.168.10.33&quot;<br />

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

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

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

<br />
vi Vagrantfile</p>
<p>config.vm.network &quot;public_network&quot;, ip: &quot;192.168.10.33&quot;, bridge: &quot;eth0&quot;<br />

仮想環境の起動

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

<br />
vagrant up<br />

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

<br />
The private key to connect to the machine via SSH must be owned<br />
by the user running Vagrant. This is a strict requirement from<br />
SSH itself. Please fix the following key to be owned by the user<br />
running Vagrant:</p>
<p>/home/user/vagrant/.vagrant/machines/default/virtualbox/private_key<br />

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

<br />
config.ssh.insert_key = false<br />

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

 - Ubuntu, ソフトウェア, 開発環境 , ,