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 up
will now only run provisioning by default the first time it is run. Subsequentreload
orup
will need to explicitly specify the--provision
flag to provision.
1.3.0 からは、初回の up のときのみ
デフォルトでプロビジョニングが走るようになったとのこと。
これまでは毎回走ってました。
確かに、いったん設定ができてしまえば
Vagrant を起動させる度にプロビジョニングを行う必要はないので
この方が理にかなってるような気がします。
これまでは、必要なければ --no-provision
で飛ばせてたんだけど
今後は逆に、2回目以降は必要なときだけオプションで指示する格好。
こんな具合ですね。
vagrant up --provision
vagrant 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回インストールしちゃったよ。