2017-09-26 241 views
0

我需要提供一個獨立的vagrantfile,用於檢查(在重新加載或創建時)是否已經安裝了一些軟件,如果沒有,則安裝它。我不確定如何處理或寫下流浪文件中是否有一條簡單的線可以實現這一目標?如果不是,配置管理工具如puppet或chef的其他相對簡單的方法是什麼?一般來說哪種方法是最有效的/簡單Vagrantfile如何檢查最終是否安裝並安裝?

回答

0

使用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 

注:命令upreload此選項也可與無業遊民使用。