Vagrantを便利に使っているのですが、VirtualBoxだけではなくてKVMでも利用したいと思ったらvagrant-kvmを見つけたので、セットアップ方法のメモ。
基本は以下のvagrant-kvmのページのREADME通りにやればよいのですが、よく読まずにやったら少しはまったので。
#環境
- ホストOS
- Ubuntu 14.04
- KVM
- virsh 1.2.2
- Vagrant 1.6.5
#前提条件
- 上記環境
- ホスト上でKVMのセットアップは完了している
#参考にしたサイト
#構築方法
##Vagrantのセットアップ
ホストOS上にVagrantをセットアップします。
Vagrantのサイトからダウンロードします。
https://www.vagrantup.com/downloads.html
今回はUbuntu14.04なので、LINUXのdebパッケージを落とします。
$ wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.6.5_x86_64.deb
$ sudo dpkg -i vagrant_1.6.5_x86_64.deb
Selecting previously unselected package vagrant.
(Reading database ... 60945 files and directories currently installed.)
Preparing to unpack vagrant_1.6.5_x86_64.deb ...
Unpacking vagrant (1:1.6.5) ...
Setting up vagrant (1:1.6.5) ...
$ vagrant version
Installed Version: 1.6.5
Latest Version: 1.6.5
You're running an up-to-date version of Vagrant!
##vagrant-kvmのセットアップ
INSTALL.mdに書いてあるように、vagrant-kvmはruby-libvirtを利用しているので、以下のパッケージを入れて上げる必要があります。
さらに、Ubuntuのバージョンの幾つかはAppArmorのカーネルにバグがあるので、vagrant up
の時にpermission errorが発生してしまうそうです。
AppArmorはアプリごとにルールが設定できるセキュリティツールですが、今回はlibvirtに関してそれを無効にするように、とマニュアルに書いてありました。
私の環境下ではaa-complain
コマンドがなかったので不要かとは思ったのですが、一応入れた上で無効にしておきました(マニュアルでは無効とありますが、実際はcomplainは学習モードのようです)。
$ sudo apt-get install build-essential ruby2.0-dev libvirt-dev libxslt1-dev libxml2-dev
$ sudo apt-get install apparmor-profiles apparmor-utils
$ sudo aa-complain /usr/lib/libvirt/virt-aa-helper
あとはvagrant-kvmをvagrantコマンドからインストールすれば良いです。
$ vagrant plugin install vagrant-kvm
(中略)
Installed the plugin 'vagrant-kvm (0.1.9)'!
Installedと出ていれば成功しています。
##vagrant-mutateのセットアップ
基本的にVirtualBoxのイメージでboxが配布されているので、そのままではkvmで起動できません。
そこで、vagrant-mutateを使うと楽に変換できます。
$ vagrant plugin install vagrant-mutate
あとはmutateコマンドでboxをkvm用に変換することが出来ます。
$ vagrant mutate [Box名] kvm
次回は実際にvagrant-kvmを使ってVMを起動してみたいと思います。