No.199


【Vagrant】provisionの違い

provisionの動作がいまいち明確でない人へ

 自分はプログラマなのでしょっちゅうvagrantコマンドを実行しているが、デザイナーの人など普段使わない人はprovisionで混乱する事が多いように思う。

 一件分かりづらいけど、表にしてしまえばそう混乱もしない。というわけで、説明用にメモ。


環境構築時

 環境を最初に構築するときはオプション無しで実行する。

vagrant up

 この場合は全てのprovisionが実行される


環境構築後にオプション無しで実行

 環境を構築したあとに環境を立ち上げるときにはオプション無しで実行する。

vagrant up

 この場合はprovisionは実行されない


環境構築後にオプション--provision有りで実行

 環境を構築したあとにオプション--provision付きで環境を立ち上げる。

vagrant up --provision

 この場合は全てのprovisionが実行される


環境構築後にオプション--provision-with有りで実行

 環境を構築したあとにオプション--provision-with付きで環境を立ち上げる。

vagrant up --provision-with プロビジョン名1[,プロビジョン名2,...]

 この場合は指定したprovisionのみ実行される


補足

 意外と知られてないのだがprovision実行は仮想環境が起動したままでも行える。

 つまり、vagrant upしたあとにvagrant up --provision-with xxxxで任意のprovisionを実行できる。便利。