2016-01-26 3 views
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 в скрипт)?

ответ

0

Поскольку Vagrantfile является главным образом рубиновым скриптом, нет ничего плохого в том, чтобы иметь условный оператор в файле.

Для ответа на конкретный вопрос Как передать переменную среды хоста для инициализации сценария (может помочь в других случаях использования) вы можете передать аргументы как

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

и в сценарии, вы читаете, как

#!/usr/bin/env bash 
username=$1 

 Смежные вопросы

  • Нет связанных вопросов^_^