在Vagrant客户操作系统上自动设置环境变量?

时间:2015-10-15 00:24:46

标签: vagrant vagrantfile

我猜这很简单,但我一直在寻找:

每当我打开一个Vagrant盒子时,我希望能够在我的客户操作系统上设置环境变量。我不想只在配置上运行,因为每次我的盒子停止时都需要重新配置。

这看起来应该是一件非常容易的事情,也许只是Vagrantfile中的基本内容,但我尝试过的所有内容都失败了。

这可能没有插件(或)吗?

1 个答案:

答案 0 :(得分:0)

有两种可能性:

  1. 如果您不想运行任何配置,则需要在来宾操作系统中进行一次,然后将VM重新打包为新的盒子,这样当您从这个新盒子中启动新VM时,在您打包为新框

  2. 之前,他们将始终自动定义所有设置
  3. 运行配置,但是,它的想法并不是那么糟糕。例如

    之类的东西
    $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
    
  4. 这会在.bashrc文件中设置一些变量(如果您愿意,可以在.profile设置)

    run: "always"确保每次执行或重新加载时都会运行此配置(变量到位后可能不需要)

    privileged: "false"将确保它与您的流浪用户一起运行,因此它将在vagrant .bashrc文件中更新,如果您未指定此选项,请确保引用文件的完整路径{{1否则它将为root用户

    完成
相关问题