👏

Vagrantでprovision後に自動でゲストマシンを再起動する

2022/01/30に公開

最近は Docker を使う機会もかなり増えてきましたが、まだ Vagrant の活用も続けている今日この頃です。
Ansible の動作確認時などで、実行完了後に Vagrant のゲストマシンを再起動して正しい状態になっているかも確認したいことはないでしょうか?
Provision 時の再起動についてググると、英語でも日本語でも vagrant-reload Plugin がよく紹介されてます。

しかし、Vagrant 2.2.3(Jan 9, 2019) から Shell Provisioner に reboot オプションが導入されています。
これを用いれば、新たにプラグインを導入する必要もなく、再起動を実現できます。

Vagrantfile

下記の Vagrantfile は Ansible provisioner で構築後に再起動する例です。

# AnsibleでProvisioningする
  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "site.yml"
  end

# 再起動する
  config.vm.provision :shell do |shell|
   shell.privileged = true
   shell.inline = 'echo rebooting'
   shell.reboot = true
 end

Discussion