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