0

我的 Vagrantfile 中有以下行:

config.vm.provision :shell, path: "provisioning/myscript.sh"

我想根据主机中设置的环境变量(可能不存在)切换运行该脚本。如果该值存在并且等于true我希望跳过脚本,否则它应该运行例如

if [ ENV[SKIP_MY_SCRIPT] != 'true' ]
  config.vm.provision :shell, path: "provisioning/myscript.sh"
end

还是有更好的方法(例如以某种方式将 env 传递到脚本中)?

4

1 回答 1

0

由于 Vagrantfile 主要是一个 ruby​​ 脚本,因此在文件中包含条件语句也不错。

要回答具体问题如何将主机环境变量传递给配置脚本(可以帮助其他用例),您可以传递参数,例如

  username = `whoami`.chomp
  config.vm.provision "shell", privileged: false, path: "provisioning/config-git.sh", args: "#{username}"

在你的脚本中,你读为

#!/usr/bin/env bash 
username=$1
于 2016-01-28T09:22:00.557 回答