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