【问题标题】:Set environmental variable on Vagrant guest OS automatically?自动在 Vagrant 来宾操作系统上设置环境变量?
【发布时间】:2016-01-13 06:44:33
【问题描述】:

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

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

这似乎应该是一件非常容易的事情,也许只是 Vagrantfile 中的一些基本内容,但我尝试过的一切都失败了。

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

【问题讨论】:

    标签: vagrant vagrantfile


    【解决方案1】:

    有两种可能:

    1. 如果您不想运行任何配置,则需要在来宾操作系统中创建一次,然后将 VM 重新打包为新盒子,这样当您从这个新盒子启动新 VM 时在您打包为新盒子之前,将始终自动定义所有设置

    2. 运行配置,不过,这不是一个坏主意。例如像

      $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 用户一起运行,因此它将在 vagrant .bashrc 文件中更新,如果您未指定此选项,请确保引用文件的完整路径 .home/vagrant/.bashrc 否则它将为root用户完成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多