湯LOG

主に自分用のメモ

VagrantでLinux仮想環境構築

概要

vagrantを使って、仮想環境(virtualboxなど)上への仮想Linuxマシンの立ち上げ

はじめに

vagrant

仮想化支援ツール仮想マシンの構築と環境設定がまとめて実行できるらしい。ChefやPuppetなどの構成管理ツールが必要ないということですかね。
動的にアプリケーションやミドルウェアをセットアップするプロビジョニング機能が備わっているらしい。
(ベイグラントって読むらしい。バグラントって読んでたはずかちい)

virtualbox

仮想化ソフト。

vagrantはあくまで仮想化を支援するツールであって、結局のところvirtualboxのようなプロバイダが必要。
(ちなみにVMwareやパブリック・クラウドとの連携も可能)
自分の作業環境を別の場所で再現したり、チームや社内で設定環境を共有したりする際にvagrantが役立つみたいですね。


今回は仮想Linux上でDeepLearningのフレームワークであるCaffeを動かすために、仮想化から。
ホストOS:Mac OSX Yosemite 10.10.3
ゲストOS:Ubuntu 14.04

セットアップ

以下からダウンロード・インストール

Vagrantのダウンロードページ
http://lab.raqda.com/vagrant/

Virtualboxダウンロードページ
http://www.oracle.com/technetwork/jp/server-storage/virtualbox/downloads/index.html


Vagrantには日本語ドキュメントページがあるので、
操作一覧はここを参照すると良いでしょう。

Vagrantの日本語ドキュメントページ
http://lab.raqda.com/vagrant/

操作

インストールが終わったら、実際にvagrantを操作してwebサーバの自動設定やSSH仮想マシン内にログインしてみます。

まず、適当に作業用ディレクトリ(ここではcaffe_ubuntu)を作成し、そこに移動します。

$ mkdir caffe_ubuntu
$ cd caffe_ubuntu
仮想環境のベースとなるboxファイルを準備
$ vagrant box add NAME url
#example
$ vagrant box add ubuntu64 Ubuntu64_14_04 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-i386-vagrant-disk1.box

他にも色々(CentOSもあります)
http://www.vagrantbox.es/

以下のコマンドでboxファイルが確認できます

$ vagrant box list
ubuntu64(virtualbox, 0)

みたいな感じになります。

vagrantfileの作成

このファイルでいろいろな設定を記述しています。(適当)
先ほど準備したboxファイルを基に作成します。

$ vagrant init ubuntu64

これでようやく仮想化の準備が整いました。
ちなみにvagrantfileにはネットワークの設定や共有フォルダの設定、GUIモードの設定などについて記述されています。
以下は、ホストとゲスト間でネットワークのやり取りを可能にし、共有フォルダ"/data"を設定(あらかじめ準備しておく)し、GUIモードで仮想環境を実行する場合の例(だいたいコメントアウトを消すだけ)

    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    config.vm.box="centos64"

    //ネットワークの設定
    config.vm.network :private_network, ip:"192.168.33.10"

    //共有フォルダの設定
    config.vm.synced_folder "data", "/vagrant_data"

    //GUIモードの設定
    config.vm.provider :virtualbox do |vb|
        vb.gui = true
    end
end
仮想マシンを起動
$ vagrant up

これだけ。GUIモードをオンにしているとvirtualboxが起動します。(id/passともに初期設定ではvagrantです)

$ vagrant status

で立ち上がりの確認できます。runningがでたらOK。
UbuntuGUIの初期設定に関してはまだよくわかってないのでおいおい。

SSHでログイン
$ vagrant ssh

成功するとvagrantアカウントでログインしたことになる。
rootにスイッチするには

$ sudo su

を実行。

SSH接続を終了
$ logout
仮想環境を終了
$ vagrant halt
その他基本的なコマンド
$ vagrant suspend     //仮想マシンを一時停止
$ vagrant destroy     //仮想マシンを破棄

おわり

とりあえずここまで。
初めて使った感想は、CUIだとあまり感動がない。。。
GUIでやりたい人はvirtualboxから直接立ち上げたほうがよさげ。