だれかのメモ帖

テクノロジー全般のメモ

プロビジョニングとBox作成

Vagrant仮想マシンを起動するときに、任意の操作を実行する。

Vagrantfileに以下を追加する。

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "centos32"
  config.vm.provision :shell,:inline => "echo hello world" #この行

end

ダブルクォーテーションでくくったシェルコマンドが実行される。

シェルのファイルを指定するには、

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "centos32"
  config.vm.provision :shell,:path => "provisioning.sh" #この行

end

とする。

オリジナルBoxの作成

VagrantのBox作成コマンドを使って、現在の仮想マシンをの状態からBoxを作成することができる。
スナップショットが丸々複製されるようなものだと理解している。

作り方は非常に簡単だ。
現在の状態をBoxにしたい仮想マシンvagrant initしたディレクトリに移動して以下を実行するだけ。

$ vagrant package
$ vagrant box add [好きなBox名] package.box

以上。
box addしたら、package.boxは不要になるので消去しても良い。