相关疑难解决方法(0)

将环境变量传递给vagrant shell provisioner

vagrant up如果您使用Ruby配置器,则在调用时看起来像传递环境变量很简单:

VAR=123 vagrant up
Run Code Online (Sandbox Code Playgroud)

在Vagrantfile中:

ENV['VAR']
Run Code Online (Sandbox Code Playgroud)

如何使用:shell配置程序执行此操作?简单地这样做似乎不起作用:

$VAR
Run Code Online (Sandbox Code Playgroud)

environment-variables vagrant

70
推荐指数
7
解决办法
6万
查看次数

在本地覆盖Vagrant配置设置(每个开发人员)

我想一般回答这个问题,但为了说明一下,这是一个用例:

我正在使用Vagrant进行简单的LMAP项目.我使用独立的Puppet进行配置.现在,可能有一些开发人员坐在代理后面,他们需要对VM进行一些额外的配置.我有事情在Puppet方面工作:我可以将代理IP(如果有的话)作为事实传递给Ppetpet中的Vagrantfile木偶,如果它已经设置,Puppet会做出相应的反应.

我唯一的问题是:开发人员如何为他们的开发环境指定/覆盖此设置而无需更改Vagrantfile(在版本控制下并且必须保持dev-environment-neutral)?

如果人们可以覆盖一个名为例如Vagrantfile.local我将排除通过的文件中的一些Vagrant设置,那将是非常棒的.gitignore.

由于Vagrantfile只是Ruby,我尝试了以下内容:

# Also load per-dev custom vagrant config
custom_vagrantfile = 'Vagrantfile.local'
load custom_vagrantfile if File.exist?(custom_vagrantfile)
Run Code Online (Sandbox Code Playgroud)

文件包含基本上是可行的,但它看起来像在包含的文件中,我不再在同一个Vagrant上下文中...

Vagrant::Config.run do |config|
  config.vm.provision :puppet do |puppet|
    puppet.facter = { "proxy" => "proxy.host:80" }
  end
end
Run Code Online (Sandbox Code Playgroud)

...还"重置"我在主要部分制作的所有其他木偶配置值Vagrantfile,这让我觉得我在这里朝着错误的方向前进.我应该注意到我在Ruby的总菜鸟;)

任何人都可以给我一个提示,甚至是一个有效的解决方案,可以在这里完成per-dev定制吗?

ruby vagrant

55
推荐指数
6
解决办法
2万
查看次数

标签 统计

vagrant ×2

environment-variables ×1

ruby ×1