繁体   English   中英

在Vagrant中将ENV变量从主机设置为guest虚拟机

[英]Setting ENV vars from host to guest in Vagrant

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

我尝试了TEST="foo" vagrant up但是TEST在我的env vars上没有任何地方。 有任何想法吗?

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

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

@Sgoettschkes:感谢指针朝着正确的方向发展

你改变“流浪汉”的方式是行不通的。 这样做的正确方法是在配置期间。 根据您使用的配置程序,有不同的方法。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM