vagrant up時にVagrantのプラグインを自動でインストールするようなVagrantfileの記述があったので備忘録代わり。
一行目いじればreloadとかも条件を適宜追加可能。
試した環境
MacOS 10.12.6 (Sierra)
Vagrant 1.9.7
使ったサンプル
記述の仕方
以下みたいな感じ。
if ARGV[0] == 'up'
plugins_dependencies = %w( vagrant-vbguest vagrant-docker-compose ) # <- ここに必要なプラグインを列挙する
plugin_status = false
plugins_dependencies.each do |plugin_name|
unless Vagrant.has_plugin? plugin_name
puts "#{plugin_name} is required."
system("vagrant plugin install #{plugin_name}")
plugin_status = true
end
end
#Restart Vagrant if any new plugin installed
if plugin_status === true
exec "vagrant #{ARGV.join' '}"
else
puts "All Plugin Dependencies already installed"
end
end
拾い元
Demand a Vagrant plugin within the Vagrantfile?
https://stackoverflow.com/questions/19492738/demand-a-vagrant-plugin-within-the-vagrantfile