2017-09-26 245 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此选项也可与无业游民使用。