Cod*_*ain 7 vagrant vagrantfile
我在Vagrant文件中设置了以下规定.
config.vm.provision :shell, :path => "provision/bootstrap.sh"
config.vm.provision :shell, :path => "provision/step-1.sh"
config.vm.provision :shell, :path => "provision/step-2.sh"
config.vm.provision :shell, :path => "provision/dev-setup.sh"
Run Code Online (Sandbox Code Playgroud)
provision/bootstrap.sh需要始终运行,但我需要有条件地运行其余的条款.对于Eg.如果是dev模式,运行provision/dev-setup.sh
是否有一些内置的Vagrant配置设置来实现这一目标?(比如传递命令行args vagrant provision)?
我不喜欢靠ENV变量,像这样如果可能的话.
我认为环境变量是处理此问题的最常用方法,并且没有办法通过vagrant upor vagrant provision命令传递任何内容.以下是您可以探索的几个替代想法:
在Dev vs. Prod环境中有其他不同的东西.Vagrantfile只是一个Ruby脚本,因此任何可以检测到的东西都可以用来控制配置脚本序列.例如,文件,本地网络,主机名等的存在/不存在.
定义单独的Vagrant节点,这些节点实际上是相同的,但根据配置而不同.例如,使用如下文件,您可以执行vagrant up prod或vagrant up dev,根据您的环境:
Vagrant.configure("2") do |config|
config.vm.provision :shell, :path => "provision/bootstrap.sh"
config.vm.provision :shell, :path => "provision/step-1.sh"
config.vm.provision :shell, :path => "provision/step-2.sh"
config.vm.define "prod" do |prod|
...
end
config.vm.define "dev" do |dev|
...
config.vm.provision :shell, :path => "provision/dev-setup.sh"
end
end
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
4887 次 |
| 最近记录: |