vagrantとgitignoreのメモ

  • このエントリーをはてなブックマークに追加
  • Pocket

PHPカンファレンスにてVagrantfileもプロジェクトのソースたちと一緒に管理しようねー。

と言うお話を聞いた。

それでは早速実践・・・とは行けなかった。。。
仕事をしてるのは僕だけじゃないそうだ。
ちくしょう。

最近触ったvagrantとgitignoreのあたりの備忘録。

環境

  • Mac OS X 10.11.1
  • VirtualBox 5.0.10
  • Vagrant 1.7.4

vagrant

やったこと

  • 1つのゲストで複数のサービスを開発できるようにする
  • 他のvagrant環境に迷惑をかけないようにする(ネットワーク的な意味で)

1つのゲストで複数のシステムを動かすって、あんまりvagrantの意味がないような・・・

ゲストに複数のバーチャルホスト

ゲスト環境はubuntu + apache + php + mysql。

バーチャルホストはこんな感じ。

これをポートフォワードは使わないでホストからアクセスできるようにする。

Vagrantfileを作る

ちなみに、今回はなんと“boxファイルだけ”をもらった。アホか。

仕方がないのでVagrantfileを書く。

vagrant-hostsupdater

ゲストでバーチャルホストを設定しているので、ホスト側でゲストのIPに対してドメインを設定する必要があるが、これを自動でやってくれるvagrant-hostsupdaterと言うプラグインがあるのでそちらを使う。

これはvagrant upした際に自動でホストのhostsに追加、vagrant haltした際にhostsから削除してくれる優れもの。

他のvagrant環境に迷惑をかけなくてcool.

各自インストールされたし。

プロビジョニング

今回はshellで作成。

httpd.confのEnableSendfileがコメントアウトされていたので、それを外す程度。

が、後々のことを考えると設定ファイルを更新できた方が嬉しいのでそうする。
また、これもgitで管理した方が便利なのでディレクトリ構成はこんな感じ。

各サービスのプロジェクトもここに置いて共有ディレクトリの設定をする形にした。

プロビジョニングの内容としてはconfig/httpd.confを差し替えてapacheを再起動するだけなので大したことない。

Vagrantfile

できたのがこちら。

諸事情によりboxファイルの追加とかは各自でやってもらうことになった。

うーむ。
vagrant up だけでやりたいなー。

gitignore

先のVagrantfileをgitで管理するにあたり、各プロジェクトのソースも追加されるという問題がある。
なのでignoreを駆使して余計なものがリポジトリに入らないようにする。

今回のケースだと、以下の3つ以外を「管理対象外」にできればOK.

  • .gitignore
  • Vagrantfile
  • config/

除外を否定するというなんとも不思議な感覚だけど、”!”で望み通りの設定ができる。

.gitignore

まず、最初の/*で全てを除外する。
そして残したい3つの先頭に”!”をつけて完了。

ちなみに、下の二つはconfig/以下にできちゃった時用に追記。

これでいくら関係のないファイル・ディレクトリが置かれてもvagrant環境だけのリポジトリ管理にできる。

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。

コメントを残す

*