VagrantをAnsibleでプロビジョニングする


前回、疎通確認をした時は結構面倒だったがVagrantはプロビジョニングツールとしてAnsibleをサポートしているのでただプロビジョニングするだけならもっと簡単にできる。

Vagrantfileに下記追記を行い、指定しているPlaybookを用意するだけで準備は完了。

  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "playbook.yml"
  end 

この状態でvagrant upを行うとPlaybookにも基づいてプロビジョニングされる。

なお、2回目以降は自動でプロビジョニングが実行されることはなく下記メッセージが表示される。

==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

もうプロビジョニングは済んでる。もしやりたかったら明示的に叩いてねということだ。

$ vagrant up --provision 

前回の記事でインベントリファイルが必要ということを書いたがなんとVagrant側が自動的に準備してくれている。

  • .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory

下記パスにあるファイルを見ればどういう設定をしてくれてるかわかる。