5

有什么方法可以在启动时设置一些从主机到来宾 Vagrant OS 的 ENV 变量?从我的来宾操作系统中,我需要连接到数据库,并且我想将数据库 URL 从主机传递给来宾以及其他参数。

我尝试过,TEST="foo" vagrant up但在来宾操作系统上的环境变量中没有 TEST。有任何想法吗?

4

2 回答 2

2

你改变'vagrant up'的方式是行不通的。执行此操作的正确方法是在配置期间。根据您使用的供应商,有不同的方法。

这是一个示例,如何在配置期间在您的访客上回显您的主机 PATH 环境:

config.vm.provision "shell", inline: "echo " + ENV['PATH']

如您所见,在您的 Vagrantfile 中,您可以使用该ENV变量来访问主机环境变量。您可以使用它将变量传递给您选择的供应商并根据需要对其进行处理。

因为我最习惯厨师,所以我会这样做:

  1. 通过 Vagrantfile 将所有需要的 ENV 变量传递到一些厨师属性中
  2. 创建一个迭代提供的值并编写导出语句的模板
  3. 使用厨师将此模板放入/etc/profile.d/适合需要的名称下
于 2014-03-23T10:57:22.920 回答
2

@Romeo:在这里查看我的相关答案: https ://stackoverflow.com/a/42250314/6864226

config.vm.provision :shell, path: "scripts/bootstrap.sh", env: {"MYVAR" => ENV['ABC']}

@Sgoettschkes:感谢您指向正确方向的指针

于 2017-02-15T13:18:55.187 回答