takafumi blog

日々の勉強メモ

【Vagrant】 プロビジョニングで環境を自動構築

環境  Vagrant 1.8.1 VirtualBox 5.0.12

プロビジョニングの実行タイミング

はじめてvagrant upを行ったときに、実行される処理。
2回目以降は以下のようなメッセージが表示されている。

==> default: flag to force provisioning. Provisioners marked to run always will still run.

明示的に、プロビジョニングを実行する場合は
vagrant up --provision
vagrant reload --provision
とする。


プロビジョニングの書き方

1. Vagrantfileにインラインで書く

以下のように書く。

Vagrant.configure("2") do |config|
  config.vm.provision "shell", inline: <<-SHELL
    echo 'HELLO!'
    date
    yum insatall -y mysql-server
  SHELL
end

以下のようにも書ける。

script = <<SCRIPT
echo 'HELLO!'
date
yum insatall -y mysql-server
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.provision :shell, :inline => script
end
2. 別ファイルに書く
Vagrant.configure("2") do |config|
  config.vm.provision "shell", path: "provision.sh"
end

pathの部分はホスト側(Windows)のパスになる。
ただし実行するファイル(provision.sh)内のパスは、ゲスト側(CentOS)のパスになる事に注意。

chefやansibleも同様に書ける。


と言う事で作ってみた。

takafumi-s · GitHub

最小限の構成だけど、完全に自動化しようとすると結構大変。
これで今後は、デスクトップPCとノートPCの環境が統一できるかな?