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

标签 vagrant vagrantfile

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

我尝试使用 TEST="foo"vagrant up 但 TEST 在 guest 操作系统上的环境变量中不存在。有什么想法吗?

最佳答案

你改变“vagrant up”的方法是行不通的。执行此操作的正确方法是在配置期间。根据您使用的配置程序,有不同的方法。

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

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

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

由于我最习惯做饭,所以我会这样做:

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

关于vagrant - 在 Vagrant 中设置从主机到访客的 ENV 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22578983/

相关文章:

vagrant - 输出 : mount. nfs:不支持请求的 NFS 版本或传输协议(protocol)

laravel - Homestead 无法远程访问第二个站点

ubuntu - 使用现有的 Azure 安装作为 Vagrant 的框

php - Vagrant 虚拟主机/共享文件夹无法访问

symfony - Sylius + Vagrant + Behat 不工作

linux - 没有同步的 Vagrant 共享文件夹

ssh - vagrant ssh 没有按预期工作,它不符合我的自定义设置

postgresql - 允许任何用户以完全权限连接到 postgres 吗?

vagrant - 为什么我无法使用 Putty 登录我的 centos/7 盒子?

在静音/安静模式下 Vagrant