2014-09-12 117 views
0

我想创建一个通用开发Vagrant环境,我可以从我的系统上的任何地方登录到vagrant up。 I know,Vagrant搜索以CWD开头的Vagrantfile,然后在每个父目录中搜索。我也知道设置VAGRANT_CWD环境变量可以让你告诉流浪者开始搜索给定的目录。添加到Vagrant路径的末尾

所以,我可以这样做:export VAGRANT_CWD=~/.dotfiles/vdevbox,其中vdevbox包含Vagrantfile和其他相关的东西为我的开发环境。这使我可以从任何地方到vagrant up,但它优先于我的CWD中的Vagrantfiles,这使得无法使用其他Vagrant环境(显然是失败)。

所以,基本上我需要Bash的PATH=$PATH:~/some/path的流浪者等值。这是支持的,还是有更好的方法来满足这种用例?

编辑解决@ arturhoo的回答

以上链接的同一帮助页提到通过~/.vagrant.d/Vagrantfile合并设置。我认为,这是一个不同于Vagrant搜索的Vagrantfile的目录启动一个env。我认为它严格限制为合并设置和流浪者必须另外通过上述搜索方法找到Vagrantfile。我试了一下,结果似乎支持我的假设。

[~/.vagrant.d]$ ls -rc | tail -n 2 
Vagrantfile 
bootstrap.sh 
[~/test]$ ls 
[~/test]$ vagrant up 
# Error message about missing Vagrantfile 

回答

0

您可以在~/.vagrant.d下为您的用户设置默认Vagrantfile。如果在当前目录中找不到Vagrantfile,它将默认使用那个。

另一种更obstrusive方式在Vagrantfile定义为//Vagrantfile

更多信息关于“加载顺序和合并”在https://docs.vagrantup.com/v2/vagrantfile/特别作出以下声明:

在每个级别上,设置设置会与之前的值合并。这究竟意味着什么取决于设置。对于大多数设置,这意味着较新的设置将覆盖较旧的设置。但是,对于诸如定义网络之类的事情,网络实际上是相互连接的。默认情况下,您应该假定设置将相互覆盖。如果行为不同,将在相关文档部分注明。

+0

我看到了这一点,并尝试过它。我认为这适用于合并设置,但它不同于搜索路径查找一个Vagrantfile到加载过程。长话短说:它在实践中不起作用(或者你看到它的工作?)。我会在我的问题中添加一个注释。 – dfarrell07 2014-09-12 19:54:45