2回目から自動で走らないというか、
デフォルトでは初回のみ走るというか。
Vagrant 1.3.1 にした
しばらく Vagrant のバージョン 1.2.7 を使ってたんだけど
1.3.1 が出てたので手元の環境もアップデートしてみました。
すると vagrant up や vagrant reload したときの挙動が違う。
なぜかプロビジョニングが走りません。
Chef やらシェルスクリプトやら Puppet やらを使って
環境を設定してくれるやつね。
仕様が変わってた
これはどうしたことかと思って Changelog を見たら
プロビジョニングに関する仕様が変わってました。
vagrant/CHANGELOG.md at master · mitchellh/vagrant
1.3.0 (September 5, 2013)
vagrant upwill now only run provisioning by default the first time it is run. Subsequentreloadorupwill need to explicitly specify the--provisionflag to provision.
1.3.0 からは、初回の up のときのみ
デフォルトでプロビジョニングが走るようになったとのこと。
これまでは毎回走ってました。
確かに、いったん設定ができてしまえば
Vagrant を起動させる度にプロビジョニングを行う必要はないので
この方が理にかなってるような気がします。
これまでは、必要なければ --no-provision で飛ばせてたんだけど
今後は逆に、2回目以降は必要なときだけオプションで指示する格好。
こんな具合ですね。
vagrant up --provisionvagrant reload --provision
ファイルが増えてる
初回のみ自動実行という処理のために、
.vagrant ディレクトリ内のファイルが増えてます。
1.2.7 まで
% tree .vagrant
.vagrant
└── machines
└── default
└── virtualbox
└── id
3 directories, 1 file
1.3.0から
% tree .vagrant
.vagrant
└── machines
└── default
└── virtualbox
├── action_provision
├── action_set_name
└── id
3 directories, 3 files
Git なんかで管理するとき
ふつうは .vagrant ディレクトリごと ignore してると思うから
気にする必要ないと思うんだけど、
もし何か理由があって id ファイルだけを対象にしてるような場合
ここに新しいファイルが入っちゃうので注意。
というわけで
挙動が違うのは不具合ではないので
焦って 1.2.7 に戻す必要はないと思います。
- Vagrant 未インストールの Mac に 1.3.1 を入れる
- 何か変だと思って 1.2.7 に戻す
- 変じゃなかったことに気づいて 1.3.1 に入れ直す
今日3回インストールしちゃったよ。