0
我需要提供一個獨立的vagrantfile,用於檢查(在重新加載或創建時)是否已經安裝了一些軟件,如果沒有,則安裝它。我不確定如何處理或寫下流浪文件中是否有一條簡單的線可以實現這一目標?如果不是,配置管理工具如puppet或chef的其他相對簡單的方法是什麼?一般來說哪種方法是最有效的/簡單Vagrantfile如何檢查最終是否安裝並安裝?
我需要提供一個獨立的vagrantfile,用於檢查(在重新加載或創建時)是否已經安裝了一些軟件,如果沒有,則安裝它。我不確定如何處理或寫下流浪文件中是否有一條簡單的線可以實現這一目標?如果不是,配置管理工具如puppet或chef的其他相對簡單的方法是什麼?一般來說哪種方法是最有效的/簡單Vagrantfile如何檢查最終是否安裝並安裝?
使用shell provisioner(例如在Debian基本盒):
Vagrant.configure("2") do |config|
config.vm.provision 'foo',
type: :shell,
inline: 'which foo &> /dev/null || apt-get install foo'
end
這是因爲冪等在第一時間which
將返回false
因此foo
會安裝,但任何其他時間(只要實例未被破壞)which
將返回true
並且什麼都不會發生。
供應方名稱foo
可以使用與--provision-with
選項:
vagrant provision --provision-with foo
注:命令up
和reload
此選項也可與無業遊民使用。