Sie können einfach angeben, shellob Sie inlinein Ihrer VagrantfileDatei Folgendes verwenden möchten:
config.vm.provision "shell", inline: %Q(/usr/bin/env FOO=1 BAR=1 bash /path/to/script.sh)
Oder laden Sie einige zusätzliche Variablen aus der YAML-Datei:
require 'yaml'
dir = File.dirname(File.expand_path(__FILE__))
vconfig = YAML::load_file("#{dir}/config.yml")
config.vm.provision "shell", inline: %Q(/usr/bin/env FOO=#{vconfig['foo']} bash /path/to/script.sh)
Alternativ können Sie einige optionale Argumente über die Befehlszeile implementieren, z.
# Parse optional arguments.
opts = GetoptLong.new(
[ '--foo', GetoptLong::OPTIONAL_ARGUMENT ], # With optional parameter.
[ '--bar', GetoptLong::OPTIONAL_ARGUMENT ], # With optional parameter.files.
)
opts.each do |opt, arg|
case opt
when '--foo'
foo==arg
when '--bar'
bar=arg
end
end
dann benutze: opt['--foo'].to_s .
Siehe auch: Wie übergebe ich Parameter an Vagrant und habe sie im Umfang des Kochbuchs?
envscheint der Parameter nur zu funktionieren, wenn einpathSkript verwendet wird, keininlineSkript.