(2013-10-30追記) lxc 1.0 の開発が進み,Plamo の lxc パッケージも 0.9.0 から 1.0 開発版になったのに伴い,vagrant-lxc は動かなくなっていましたが,vagrant-lxc のバージョンアップでまた動くようになっています.とりあえず手元では vagrant-lxc 0.6.4 上で http://bit.ly/vagrant-lxc-precise64-2013-10-23 の box を使ってコンテナが起動することを確認しています.
ちょっとしたテストで vagrant を使うのなら,わざわざ (コストの高いハイパーバイザー型の) 仮想マシンを使うこともなくコンテナですよねー,というわけで,vagrant-lxc を使ってみました.
Plamo の lxc パッケージはなるべく Ubuntu に合わせるように作ってありますので (パクっているともいう :p),Ubuntu の特定バージョンでしか動かないとか言われている vagrant-lxc も楽々でした.
ただし,lxc-destroy コマンドのバグのため,"vagrant destroy" がうまく動きません.対策したパッケージを lxc-0.8.0-(i586|x86_64)-P8.tgz として置いてありますので,それをお使いください.
さて,特に起動までは難しくありません.
- vagrant 実行ユーザで sudo が実行できるように設定.
- まずはプラグインのインストール
$ vagrant plugin install vagrant-lxc
Installing the 'vagrant-lxc' plugin. This can take a few minutes...
Installed the plugin 'vagrant-lxc (0.5.0)'! - box を取得
$ vagrant box add precise64 http://bit.ly/vagrant-lxc-precise64-2013-07-12
Downloading or copying the box...
Extracting box...te: 3533k/s, Estimated time remaining: 0:00:01)
Successfully added box 'precise64' with provider 'lxc'! - Vagrantfile の作成
vi Vagrantfile
$ cat Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "precise64"
end - up して ssh
$ vagrant up --provider=lxc
Bringing machine 'default' up with 'lxc' provider...
[default] Importing base box 'precise64'...
[default] Setting up mount entries for shared folders...
[default] -- /vagrant
[default] Starting container...
[default] Waiting for container to start. This should not take long.
[default] Container started and ready for use!
karma@enterprise:~/work/vagrant/lxc$ vagrant ssh
Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 3.10.9-plamo64-karma x86_64)
* Documentation: https://help.ubuntu.com/
vagrant@precise:~$
$ exit
logout
Connection to 10.0.100.213 closed.
コンテナは,Ubuntu と同様に Plamo の lxc パッケージで作成可能なブリッジ lxcbr0 に接続されます.
環境によるのかもしれませんが,lxc-attach が積極的に使われています.もしかしたら使えるかどうかのチェックがあって,使えない場合は使わないのかもしれませんが,そこまで調べてません.Plamo 5.1 環境で最新のカーネルにしていれば,この辺りは使えるでしょうから問題ないと思います (手元は Plamo 標準カーネルじゃないので問題ある時はご報告を ^^;).