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。
UbuntuのGUIの初期設定に関してはまだよくわかってないのでおいおい。
SSH接続を終了
$ logout
仮想環境を終了
$ vagrant halt
その他基本的なコマンド
$ vagrant suspend //仮想マシンを一時停止 $ vagrant destroy //仮想マシンを破棄
おわり
とりあえずここまで。
初めて使った感想は、CUIだとあまり感動がない。。。
GUIでやりたい人はvirtualboxから直接立ち上げたほうがよさげ。