Is it possible to return a value from a provision script back to vagrant?
response = config.vm.provision( "shell", path: "script.sh" )
if response = 'ok'
do_something
end
I couldn't see anything in the vagrant docs describing how this could be done.
As far as I am aware I don't think it is possible to return a value like that.
You can however easily get around this by having your provisioning script write a file in the /vagrant
directory of the guest machine.
You can then use Ruby to process this file which will be in the same folder as your Vagrantfile
.
I was able to get it from the VMs by doing this way:
On Windows:
config.trigger.after :provision do |trigger|
trigger.name = "create token"
trigger.run = {"inline": "vagrant ssh --no-tty -c 'hostname' master01 > test.txt"}
end
On Mac:
config.trigger.after :provision do |trigger|
trigger.name = "create token"
trigger.run = {"inline": "/bin/bash -c 'vagrant ssh --no-tty -c "hostname" master01 > test.txt'"}
end
This will dump the output of the command from the VM to the given file in CWD on the host.
Notes:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With