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