在 Vagrant 中设置从主机到访客的 ENV 变量

Rom*_*cea 5 vagrant vagrantfile

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

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

Sgo*_*kes 1

你改变`vagrant up\xc2\xb4的方法将不起作用。执行此操作的正确方法是在配置期间。根据您使用的配置程序,有不同的方法。

\n\n

以下是如何在配置期间在来宾上回显主机 PATH env 的示例:

\n\n
config.vm.provision "shell", inline: "echo " + ENV[\'PATH\']\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n\n
    \n
  1. 通过 Vagrantfile 将所需的所有 ENV 变量传递到某些 Chef 属性中
  2. \n
  3. 创建一个模板,迭代提供的值并编写导出语句
  4. \n
  5. 使用 Chef 将此模板放入/etc/profile.d/适合需要的名称下
  6. \n
\n

  • 这个答案不是特别有用。最好提供一个实际设置环境变量的示例,而不是仅仅回显它。 (11认同)