前回の、vagrantfileの分析で、

config.vm.synced_folderのところについて、後で、気が付いたことがありました。

config.vm.synced_folder '..', '/mnt/fuelphp', mount_options: ['dmode=777', 'fmode=666']

これで完結してるように思えてきました。

‘..’

とは絶対パスで書けば、

C:\donichi\fuelphp-1.7.3\

を表しますから、これを’/mnt/fulephp’にマウントするという意味に見えるので、もう出来てるじゃないですか。

となるとですよ、「.vagrant」ディレクトリの奥のほうにあったファイルはなんのためにあるんだろう?

ま、この辺は一度自分で作ってみると分かってきそうですね。

試しにこのconfig.vm.synced_folderもコメントアウトして立ち上げ見ます。

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
  config.vm.box = 'bento/centos-6.7-i386'
  config.vm.box_url = 'https://atlas.hashicorp.com/bento/boxes/centos-6.7-i386/versions/2.2.2/providers/virtualbox.box'
  config.vm.network 'forwarded_port', guest: 80, host: 8000, host_ip: '127.0.0.1'
#  config.vm.synced_folder '.', '/vagrant', disabled: true
#  config.vm.synced_folder '..', '/mnt/fuelphp', mount_options: ['dmode=777', 'fmode=666']
  config.vm.provision :shell, path: 'bootstrap.sh'
end

これでvagrant upします。今回も出力ログを見たいので、コマンドプロンプトから。

下の方に出てますよね!Mounting shared folders…

あ、でも、/mnt/fuelphpへのマウントの情報が出ていません!PuTTYでどうなってるか見てみましょう。

ん。やはり、マウントされてませんね。Vagrantfileの、コメントアウトした一行が効いてる感じがしますわね。

では、逆にVagrantfileのほうのコメントアウトをはずして、「.vagrant」フォルダのsynced_foldersをリネームして、再度立ち上げてみます。

一度vagrant haltして、もう一度vagrant upします。

あ、コメントアウトはずすのも忘れずに。

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
  config.vm.box = 'bento/centos-6.7-i386'
  config.vm.box_url = 'https://atlas.hashicorp.com/bento/boxes/centos-6.7-i386/versions/2.2.2/providers/virtualbox.box'
  config.vm.network 'forwarded_port', guest: 80, host: 8000, host_ip: '127.0.0.1'
#  config.vm.synced_folder '.', '/vagrant', disabled: true
  config.vm.synced_folder '..', '/mnt/fuelphp', mount_options: ['dmode=777', 'fmode=666']
  config.vm.provision :shell, path: 'bootstrap.sh'
end

Mounting shared folders…

の下に/mnt/fuelphpへのマウントのログが出てきました。

PuTTYで確認。

しまったげな(-_-;;シンボリックリンクと間違えてました。これ見たってマウントされてるか分からん(汗)

なんとなく、それっぽい記述があるので、マウントされているとしよう(いいかげん)。

と思ったら!

あなた、たいへんなことが起きていたあるよ!

もう一度、「.vagrant」フォルダの中を覗いてのけ反った!

synced_foldersファイルが出来てる!そうかぁ、そういうことだったのかぁ。やはり vagrant upで使用されるのはVagrantfileの中に書かれている設定なんですね。で、起動時に「.vagrant」フォルダの中身は自動生成されてるみたいです。

やはり基本は、Vagrantfileで、その中でbootstrap.shをキックしてそうなので、この二つが最も重要であると。

実は本書では、他にもいくつかconfファイルが置いてあり、なんとbootstrap.shのなかで、そのconfファイルをhttpdへコピーしたり、sedコマンドでconfファイルの中身を置き換えたり、なかなかにUNIXライクな作業がなされております。そこらへんも追いかけるとかなり勉強になるはず。

つまり!

この一冊を追いかけるだけでもかなりの技術知識を持てる、ということです。あとは本人が追いかけるか否かにかかります。

いつやるの?今でしょう!

ちなみに何故、bootstrap.shというネーミングなんですかね?たぶんこの名前でなければいけないことはないはずです。shellの書き方がされていれば。

私が、bootstrapと聞くと、例のbootstrapを思い浮かべてしまいます。FuelPHPはbootstrapと仲がいいですしね。

http://getbootstrap.com/

本書のvagrantで使われているbootstrap.shはこれらとは関係なさそうです。vagrantの挙動についてはかなり解明できましたが、最後に残った巨大な謎は、「何故、bootstrap.shというファイル名なのか?」でした(笑)

作者さん、教えてください、気になって気になって夜も眠れません、8時間しか(^o^)