将设置脚本中的值返回给vagrant

将设置脚本中的值返回给vagrant,vagrant,Vagrant,是否可以将一个值从供应脚本返回给vagrant response = config.vm.provision( "shell", path: "script.sh" ) if response = 'ok' do_something end 我在《流浪汉》中看不到任何描述如何实现这一点的内容。据我所知,我认为不可能返回这样的值 但是,您可以通过让您的配置脚本在来宾计算机的/vagrant目录中编写一个文件来轻松解决这个问题 然后,您可以使用Ruby处理该文件,该文件将与您的Vagran

是否可以将一个值从供应脚本返回给vagrant

response = config.vm.provision( "shell", path: "script.sh" )

if response = 'ok'
   do_something
end

我在《流浪汉》中看不到任何描述如何实现这一点的内容。

据我所知,我认为不可能返回这样的值

但是,您可以通过让您的配置脚本在来宾计算机的
/vagrant
目录中编写一个文件来轻松解决这个问题


然后,您可以使用Ruby处理该文件,该文件将与您的
Vagrant文件位于同一文件夹中

我可以通过以下方式从VMs获取该文件:

在Windows上:

config.trigger.after :provision do |trigger|
    trigger.name = "create token"
    trigger.run = {"inline": "vagrant ssh --no-tty -c 'hostname' master01 > test.txt"}
end
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
在Mac上:

config.trigger.after :provision do |trigger|
    trigger.name = "create token"
    trigger.run = {"inline": "vagrant ssh --no-tty -c 'hostname' master01 > test.txt"}
end
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
这将把命令的输出从VM转储到主机上CWD中的给定文件

注:

  • 关于bash重定向-为什么需要“/bin/bash-c”?(这里是Mac的例子)-
  • 我用的是流浪汉2.2.6