我猜这很简单,但我一直在寻找:
每当我打开一个Vagrant盒子时,我希望能够在我的客户操作系统上设置环境变量。我不想只在配置上运行,因为每次我的盒子停止时都需要重新配置。
这看起来应该是一件非常容易的事情,也许只是Vagrantfile中的基本内容,但我尝试过的所有内容都失败了。
这可能没有插件(或)吗?
答案 0 :(得分:0)
有两种可能性:
如果您不想运行任何配置,则需要在来宾操作系统中进行一次,然后将VM重新打包为新的盒子,这样当您从这个新盒子中启动新VM时,在您打包为新框
运行配置,但是,它的想法并不是那么糟糕。例如
之类的东西$script = <<SCRIPT
echo "alias lt='ls -lt'" >> .bashrc
echo "export NEW_ENV_VAR=...." >> .bashrc
SCRIPT
Vagrant.configure(2) do |config|
blablabla
config.vm.provision "shell", inline: $script, privileged: "false", run: "always"
end
这会在.bashrc
文件中设置一些变量(如果您愿意,可以在.profile
设置)
run: "always"
确保每次执行或重新加载时都会运行此配置(变量到位后可能不需要)
privileged: "false"
将确保它与您的流浪用户一起运行,因此它将在vagrant .bashrc文件中更新,如果您未指定此选项,请确保引用文件的完整路径{{1否则它将为root用户