Invalid signature

ここは俺の日記帳

Vagrant で悶絶

せっかくなので Codeigniter の環境を Vagrant で作ってみようと Vagrant 関連の
記事を漁っている。
しかし、Vagrant仮想マシンを立ち上げた後、そのマシン内で yumApatch
インストールして、vi で httpd.conf を編集して・・・といった感じの記事が多い。
環境ってのはインストールしたソフトや設定も含めて環境じゃないの?!
Vagrant ってそういうことするツールじゃないの?! と混乱・悶絶した。

サーバー構成管理ツール

プロビジョニングについて調べていると、「Ansible」や「Chef」など、見慣れない
キーワードが出てきた。
 これらはサーバーにインストールするソフトや設定を管理するツールらしい。
Vagrant と目的が被っている部分があるため、機能が重複したツールが
使えることに疑問。 Vagrant だけでは難しい設定が容易に出来るのか、
それらを使い慣れた人へのサポートなのか。
 少し調べてみたが斜め読みでは難しそう。 公式チュートリアルでは、Vagrant
とそれらツールに詳しくないのであればシェルプロビジョナーを使うことを
勧めているので、ここはひとまず勧めに従うことにする。

OS の変更

UbuntuDebian系)では、Apach の設定は httpd.conf 一つでは済まないらしい。
調べていると結構細かい。 本題は Codeigniter なので余計な時間を省くために
OS を Cent にする。

Cent の選択

他のボックスについて調べていると、ボックスのリストを見つけた。
http://www.vagrantbox.es/
同じ OS でも、ツールなどの付属物がセットになっている物が多々ある。
サーバーの構成管理ツールとのセットが多い印象。 今回はそういったツールを
使う予定が無いので、余計な付属品が無い CentOS 5.6 32 を選んだ。

ホスト側の SSH の設定

PuTTY を一々起動するのがおっくうになってきたので、DOS から操作出来るように
してみる。  エラーメッセージを見直すと「SSH の実行可能ファイルへのパスが通っていない。
Cygwin, git 何かを入れろ」と言っている。 git はインストール済みなので
git のディレクトリを調べると bin の中に ssh.exe が見つかった。 ということで
この binディレクトリのフルパスを環境変数の Path に設定すると、DOS から
仮想マシンに入れた。 普通に ls や vi も使える。

共有が上手く出来ない

Codeigniter 用の作業ディレクトリを作り、そこに Vagrant仮想マシン
追加したが、仮想マシン内で作ったファイルがホストで確認できない。
 起動時のメッセージをよく読むと、共有ディレクトリのマウントに失敗している。
コレについて調べていると Guest Additions の VirtualBox にインストール
されているモノと、仮想マシン上のモノのバージョンの不一致が
発生していることが発覚。
 マウント失敗の修正法としてコレを修正している
ページがあったので、まずこの不一致をに対処することにする。

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

VirtualBox のバージョンアップによる box とのの Guest Addition のバージョンの
ズレを手作業で解決するのは大変らしい。 そしてありがたいことにこの作業を
簡単に行えるプラグインが存在する。 早速インストール。

vagrant plugin install vagrant-vbguest
  

そして更新。

vagrant vbguest
  

 しかし失敗。 取りに行ったファイルが見つからないらしい。

http://download.elff.bravenet.com/5/i386/repodata/repomd.xml: [Errno 14] HTTP Error 404: Not Found
  

 もう一件の方法を試してみると、
http://blog.mizoshiri.com/archives/1390
カーネルモジュールがセットアップされていない」
とのエラーメッセージ。
 下のページで同じエラーメッセージとそれに対する対処が載っていたが、
http://kyoukou-osd.cocolog-nifty.com/blog/2010/01/virtualbox312-1.html
kernel-devel のアンインストール時に vbguest と全く同じエラーメッセージが
出て失敗した。

仕切り直し

泥沼に足を突っ込んでしまったような感じ。
「Cent の環境を Vagrant で構築する」
というのは本題では無いため、解決の目星も無しにコレ以上時間をかけるのは不味い。
 多少手間がかかっても問題なく動作していたデフォルトのボックス
を利用する事を検討する。