MacにVagrantでCentOS+FuelPHPの環境を作成する（その4（おまけ）. ローカルのFuelPHPを使う）

CentOS側でFuelPHPをダウンロード（インストール）すると編集するのが面倒なので、ローカルに用意したFuelPHPを使う
ディレクトリ構成等は[その3](http://qiita.com/negibouze/items/5975b57c61f4cd39f072)で作成したものをベースにする

## 実施環境

* OS: OS X Yosemite (10.10.5)
* Vagrant: 1.7.4
* Virtualbox: 5.0.10 r104061
* Ansible: 1.9.4

## 今回のゴール
ローカルのFuelPHPに加えた変更がVagrant側に反映される

## 今回の成果物
こちらに置いてあります

[negibouze/vagrant-fuelphp_part4](https://github.com/negibouze/vagrant-fuelphp_part4)

## 1. ローカルにFuelPHPを用意する
今回は公式サイトからダウンロードしたzipをVagrantfileと同じ階層に展開
また、ディレクトリ名を「fuelphp-1.7.3」から「fuelphp」に変更

## 2. Vagrantfileを編集する
#### step1. ローカルのFuelPHPを同期させる

下記2行を追加

```
host.vm.synced_folder ".", "/vagrant"
host.vm.synced_folder "./fuelphp", "/srv/example/fuelphp", mount_options: ['dmode=777','fmode=666']

```

編集前

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

  config.vm.box = "puppetlabs/centos-6.6-64-nocm"
  config.vm.box_url = "https://vagrantcloud.com/puppetlabs/boxes/centos-6.6-64-nocm/versions/1.0.2/providers/virtualbox.box"

  config.vm.define :"web1" do |host|
    host.vm.hostname = "web1"
    host.vm.network :private_network, ip: "192.168.100.11", netmask: "255.255.255.0"
  end

  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "provisioning/site.yml"
    ansible.inventory_path = "provisioning/hosts"
    ansible.limit = 'all'
  end
end
```

編集後

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

  config.vm.box = "puppetlabs/centos-6.6-64-nocm"
  config.vm.box_url = "https://vagrantcloud.com/puppetlabs/boxes/centos-6.6-64-nocm/versions/1.0.2/providers/virtualbox.box"

  config.vm.define :"web1" do |host|
    host.vm.hostname = "web1"
    host.vm.network :private_network, ip: "192.168.100.11", netmask: "255.255.255.0"
    host.vm.synced_folder ".", "/vagrant"
    host.vm.synced_folder "./fuelphp", "/srv/example/fuelphp", mount_options: ['dmode=777','fmode=666']
  end

  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "provisioning/site.yml"
    ansible.inventory_path = "provisioning/hosts"
    ansible.limit = 'all'
  end
end
```

## 3. AnsibleのPlaybookを編集する
#### step1. webtier/tasks/fuelphp.ymlの編集

* FuelPHPのダウンロード、および解凍は不要なので削除
* example/fuelphpの存在有無によるチェックは使えないので削除

編集前

```
---
# install FuelPHP
- stat: path=/usr/local/src/fuelphp-1.7.3.zip
  register: fuelphp_zip
- name: download fuelphp1.7.3
  get_url: url=http://fuelphp.com/files/download/34 dest=/usr/local/src/fuelphp-1.7.3.zip
  when: not fuelphp_zip.stat.exists
- stat: path=/srv/example/fuelphp
  register: fuelphp
- name: create target directory
  command: mkdir -p /srv/example
- name: unzip fuelphp
  command: unzip -o /usr/local/src/fuelphp-1.7.3.zip -d /srv/example
  when: not fuelphp.stat.exists
- name: rename unzip directory
  command: mv fuelphp-1.7.3 fuelphp
  args:
    chdir: /srv/example/
  when: not fuelphp.stat.exists
- name: install oil
  shell: get.fuelphp.com/oil | sh
  when: not fuelphp.stat.exists
- name: refine install
  command: php oil refine install
  args:
    chdir: /srv/example/fuelphp
  notify: restart httpd
  when: not fuelphp.stat.exists
```

編集後

```
---
# install FuelPHP
- name: create target directory
  command: mkdir -p /srv/example
- name: install oil
  shell: get.fuelphp.com/oil | sh
- name: refine install
  command: php oil refine install
  args:
    chdir: /srv/example/fuelphp
  notify: restart httpd
```

## 4. 動作確認
#### step1. 仮想マシンを作成する
```
$ vagrant up
```
#### step2. 動作確認（編集前）
ブラウザで「192.168.100.11」を開いて下記画面が表示されればOK  
![welcome.png](https://qiita-image-store.s3.amazonaws.com/0/37319/e1d7eb2e-2ebf-4060-38f3-116fcb106a8e.png)

#### step3. ローカルのFuelPHPを編集する

試しにfuelphp/fuel/app/views/welcome/index.phpを適当に編集

編集前

```
<div class="jumbotron">
  <h1>Welcome!</h1>
  <p>You have successfully installed the FuelPHP Framework.</p>
  <p><a class="btn btn-primary btn-lg" href="http://docs.fuelphp.com">Read the Docs</a></p>
</div>
```

編集後

```
<div class="jumbotron">
  <h1>ようこそ!</h1>
  <p>あなたはFuelPHPフレームワークのインストールに成功しました。</p>
  <p><a class="btn btn-primary btn-lg" href="http://docs.fuelphp.com">ドキュメントを読む</a></p>
</div>
```

#### step4. 動作確認（編集後）
ブラウザを更新して下記画面が表示されればOK
![welcome2.png](https://qiita-image-store.s3.amazonaws.com/0/37319/6b21d25a-a6e5-b712-96bf-625cb2c7f08a.png)