RPMパッケージを利用したCentOSのVagrant環境構築
Vagrantとは
Vagrant は仮想マシン(VM)をコマンドラインで操作するツールです。
PuppetやChefによるサーバ環境構築ツールと組み合わせる事で、
とても簡単にVM環境の構築が出来るようになります。
Vagrantについての詳細については Vagrant - naoyaのはてなダイアリー が参考になります。
提供パッケージ
公式にrpm等のパッケージ提供が行われています。
http://downloads.vagrantup.com/
MacOSX
- Vagrant.dmg
Windows
- Vagrant.msi
RedHat/CentOS
- vagrant_i686.rpm
- vagrant_x86_64.rpm
Debian
- vagrant_i686.deb
- vagrant_x86_64.deb
Arch Linux
- vagrant_i686.pkg.tar.xz
- vagrant_x86_64.pkg.tar.xz
インストール方法
CentOS-6.4(64bit) に Vagrant-1.1.0 をインストールするならば、以下のコマンドが利用できます。
yum localinstall http://files.vagrantup.com/packages/194948999371e9aee391d13845a0bdeb27e51ac0/vagrant_x86_64.rpm
Vagrantに内蔵されているgemの場所
以下のように利用することで、gem install/update等が出来ます。
- PATHの通っていない所にありますので、以下のようにフルパスでアクセスする
/opt/vagrant/embedded/bin/gem install ***
- .bashrcに以下の行を書いて、vagrant-gemとしてコマンド補完できるようにする
alias vagrant-gem='/opt/vagrant/embedded/bin/gem'
パッケージ利用が嬉しい理由
VagrantパッケージにRubyバイナリを内蔵するという実装は大変嬉しいです。
内蔵するメリットは、対象となるマシンのRubyバージョンが何であっても、古くても構わず動くということにあります。
2013年3月現在、Rubyは1.9.3が一般的です。ところがCentOS-6.4ではRuby-1.8.7がパッケージインストール出来る最新版です。
そこでRailsアプリを動かす場合には、自前でRubyをソースからコンパイルしてインストールする手法が利用されます。rvmを使う方もいるでしょう。
しかしそれが常にVagrantが推奨するRubyバージョンとは限りませんし、仮に一緒だとしても、
Vagrantとプロダクトラインの要求するバージョンに差異が発生しうるため、可能な限り分離すべきです。
これまでgemでしか入れられないと思っていたため、Vagrantはあくまで開発環境向けに利用するものという位置づけでした。
この問題が解消されるパッケージがありますので、本番環境向けの利用も始めてみようと考えています。
なお、同様のアプローチとして、td-agentもRubyバイナリを内蔵したパッケージを提供しております。
この手法、広がっていきそうですね。
パッケージファイル構成(rpm版)
一体どこにインストールされるのか気になりますよね。具体的なファイル一覧を書き出しました。
どうやら、/opt/vagrant/以下に入るようですね。