3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrant + libvirt の環境構築手順

Posted at

KVMのVMをVagrantで起動する環境の構築手順です。
KVMはVirtual Boxに比べて、VM起動までの時間が圧倒的に早いです。
なので、VMを作ったり消したりを頻繁にやる人にはオススメです。

ここではKVMの環境を作るために、libvirtを使った手順を説明します。

※注意事項
KVMとVirtual Boxは同じ環境で共存できません。
すでにVirtual BoxでVMを立てている人は全て削除するか、
別の環境を用意してください。

1. 環境

  • Ubuntu 18.04 LTS
  • Vagrant 2.1.5

2. 必要なソフトウェアのダウンロードとインストール

aptでインストールすると、古いバージョンのVagrantが入ってしまい、なにかと詰まるので手動で新しいバージョンを入れていきます。

$ wget https://releases.hashicorp.com/vagrant/2.1.5/vagrant_2.1.5_x86_64.deb
$ sudo dpkg --install vagrant_2.1.5_x86_64.deb
$ sudo apt update
$ sudo apt build-dep vagrant ruby-libvirt
$ sudo apt install qemu libvirt-bin ebtables dnsmasq
$ sudo apt install libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev

3. Vagrantのプラグインをインストール

$ vagrant plugin install vagrant-libvirt
# 終わったら、一旦ログアウトして、再ログインする

libvirtを入れるとユーザが追加されるので、ログインし直して設定を反映させます。

4. VMを起動してみる

ディレクトリを作って、VMを起動します。
うまく起動できない場合は、トラブルシューティングも見てみてください。

$ mkdir vagrant-test
$ cd vagrant-test
$ vagrant init generic/ubuntu1604
$ vagrant up --provider libvirt

起動できているか確認します。
"running"になっていれば成功です。

$ vagrant status
Current machine states:

default                   running (libvirt)

The Libvirt domain is running. To stop this machine, you can run
`vagrant halt`. To destroy the machine, you can run `vagrant destroy`.

初回の起動はboxのダウンロードが入るので、遅いです。
一度、VMを作り直してみると、起動完了までの早さが実感できるかと思います。

# VMを消してから、再度起動
$ vagrant destroy
$ vagrant up --provider libvirt

トラブルシューティング

起動時に以下のようなエラーが出る場合は、libvirtdのユーザ追加がうまくいっていない可能性があります。

Error while connecting to libvirt: Error making a connection to libvirt URI qemu:///system?no_verify=1&keyfile=/home/vagrant/.ssh/id_rsa:
Call to virConnectOpen failed: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied

対処方法

libvirtdのグループにユーザを追加してあげれば直ります。

$ sudo adduser $USER libvirtd
Adding user `hoge' to group `libvirtd' ...
Adding user hoge to group libvirtd
Done.

# 一旦、VMを消してから、再度起動
$ vagrant destroy
$ vagrant up --provider libvirt
3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?