https://github.com/vagrant-libvirt/vagrant-libvirt
vagrant-libvirt を使ってVagrantでKVMの仮想環境を構築してみました。

環境

  • ホストOS
    Ubuntu 17.10
  • 仮想化
    KVM(libvirt)
  • Vagrant 1.9.1
  • Vagrant プラグイン
    • vagrant-libvirt (0.0.40)
    • vagrant-mutate (1.2.0)

Vagrant のインストール

  • 標準リポジトリからvagrant をインストール
    $ sudo apt install vagrant

プラグインのインストール

https://github.com/vagrant-libvirt/vagrant-libvirt#installation

  1. ソースコードリポジトリを有効にしておく

    $ sudo software-properties-gtk

    [ソースコード]チェックボックスをチェックしてソースコードリポジトリを有効にした後、リポジトリキャッシュを再読み込みしておく。

  2. 依存パッケージのインストール

    $ 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-libvirt、vagrant-mutateプラグインのインストール

    $ vagrant plugin install vagrant-libvirt
    $ vagrant plugin install vagrant-mutate

仮想環境の構築

https://atlas.hashicorp.com/boxes/search?provider=libvirt

centos/7 の場合

fedora/25-cloud-base の場合

debian/jessie64 の場合

ceph/ubuntu-xenial の場合

bento/ubuntu-16.04 の場合

  • URL
    https://atlas.hashicorp.com/bento/boxes/ubuntu-16.04
  • ボックスの変換
    $ vagrant box add --provider virtualbox bento/ubuntu-16.04
    $ vagrant mutate bento/ubuntu-16.04 libvirt --input-provider virtualbox --force-virtio
  • 環境の作成と起動
    $ mkdir -p ~/vagrant/bento_ubuntu-16.04; cd $_
    $ vagrant init bento/ubuntu-16.04; vagrant up --provider libvirt
    ただしNICが構成されていないので、virt-manager 等から直接入って設定が必要みたい。

ubuntu/xenial64 やubuntu/xenial-server-cloudimg の場合

Ansible のインストール

  • ホストの操作
    $ sudo apt install ansible