Search code examples
vagrantenvironment-variables

Pass environment variables to vagrant shell provisioner


It looks like passing environment variables when calling vagrant up is simple if you're using a Ruby provisioner:

VAR=123 vagrant up

In the Vagrantfile:

ENV['VAR']

How do I do this with the :shell provisioner? Simply doing this does not seem to work:

$VAR

Solution

  • It's not ideal, but I got this to work for now:

    config.vm.provision "shell" do |s|
        s.inline = "VAR1 is $1 and VAR2 is $2"
        s.args   = "#{ENV['VAR1']} #{ENV['VAR2']}"
    end