# Vagrant (日本語)

関連記事

- VirtualBox
- Libvirt
- KVM

Vagrant は仮想化された開発環境を管理・設定するためのツールです。

Vagrant には'プロバイダー'という概念があり、仮想化エンジンとその API を示します。一番人気があってサポートの手厚いプロバイダーは Virtualbox です。他に `libvirt`, `kvm`, `lxc`, `vmware` などのプラグインが存在します。

基本的に Vagrant は `Vagrantfile` を使って仮想化するマシンを定義します。単一の Vagrantfile で複数のマシンを定義することができます。

Wikipedia:Vagrant も参照してください。

## Vagrant のインストール

公式リポジトリから vagrant をインストールしてください。

## プラグイン

パワフルなプラグインをサポートするために Vagrant はミドルウェアアーキテクチャを採用しています。

vagrant-vbguest など、人気の Vagrant プラグインは AUR から入手することができます。他のプラグインは Vagrant に組み込まれているプラグインマネージャでインストール可能です:

    $ vagrant plugin install vagrant-vbguest

### vagrant-kvm

このプラグインは仮想化プロバイダーとして KVM をサポートします。

Vagrant は必要なものが全て揃った多彩な環境を `/opt` にインストールしますがこれは Arch のシステムの ruby と複雑に干渉します。vagrant 1.4.3 現在、次の実行で vagrant-kvm をインストールすることができます:

    $ CONFIGURE_ARGS="with-libvirt-include=/usr/include/libvirt with-libvirt-lib=/usr/lib" vagrant plugin install vagrant-kvm

### vagrant-lxc

まず公式リポジトリから lxc をインストールして、それから:

    $ vagrant plugin install vagrant-lxc

次に、このコメントのようにして lxc と systemd ユニットファイルを設定してください。以下のような `Vagrantfile` でこのプラグインを使うことができます:

    VAGRANTFILE_API_VERSION = "2"

    Vagrant.configure("2") do |config|

        config.vm.define "main" do |config|
            config.vm.box = 'http://bit.ly/vagrant-lxc-wheezy64-2013-10-23'

            config.vm.provider :lxc do |lxc|
                lxc.customize 'cgroup.memory.limit_in_bytes', '512M'
            end

            config.vm.provision :shell do |shell|
                shell.path = 'provision.sh'
            end
        end
    end

シェルスクリプトの `provision.sh` ファイルは `Vagrantfile` と同じ場所に配置する必要があります。適切な設定を行なって下さい。例えば、上記の box にパッケージされている puppet を削除するには:

    rm /etc/apt/sources.list.d/puppetlabs.list
    apt-get purge -y puppet facter hiera puppet-common puppetlabs-release ruby-rgen

## Vagrant の Base Box

以下は色々な vagrant base box の入手場所の一覧で、目的は様々です: 開発, テスト, 本番環境。

- よくメンテされている最新の Vagrant 用 Arch Linux x86_64 base box

- vagrantbox.es
  vagrant base box のリスト。Gareth Rushgrove @garethr によって開始され Nginx を使って Heroku でホストされています。こちらのストーリーを見て下さい: Vagrantbox.es Story。

- Opscode bento
  日本語で bento が何を意味するかは知っていますよね？ここでは、弁当箱ではなく cookbook や private chef (Chef Server と Client) をテストするのに使える極めて便利な base box を指します。含まれているディストリビューション: Ubuntu Server, Debian, CentOS, Fedora, FreeBSD。

- Puppet Labs Vagrant Boxes
  すぐに使える vagrant box 集。Puppet Labs の人々によって作成。

- Vagrant Ubuntu Cloud Images
  2013年1月から存在します。何らかの理由で Canonical は公式には喧伝していません、おそらくまだベータなのでしょう。バニラなイメージなので、Chef や Puppet がないとあまり役には立ちません。

Category:

- Virtualization (日本語)