我有一台多机Vagrantfile,我希望在用户运行vagrant up machineB
时快速检查,如果失败则退出并显示错误消息。
我想到的具体测试是curl
一些网址并验证200响应,但我认为细节不重要。
我们的想法是为用户节省启动计算机,同步某些文件夹和运行配置脚本所需的时间,只是为了发现所需的资源不可用。
到目前为止,我最好的想法是将此检查放在配置脚本的开头,但我想提前做。
我知道我可以在Vagrantfile的开头查看,有点像它是如何完成的here,但是然后检查将在每个vagrant命令上运行,我希望它能运行特别是在尝试启动machineB
时。
答案 0 :(得分:1)
您可以在machineB的特定块中运行条件,这样只有在为machineB调用命令时它才能运行
您可以从命令行检查ARGV[0]
参数,以确保它是up
这看起来像什么
Vagrant.configure("2") do |config|
config.vm.box = xxx
config.ssh.username = xxx
config.vm.define "machineA" do |db|
db.vm.hostname = xxx
p system ("curl http://www.google.fr")
and your condition here
end
config.vm.define "machineB", primary: true do |app|
app.vm.hostname = xxx
if "up".eql? ARGV[0]
p system ("curl http://www.google.fr")
and your condition here
end
end
不确定您最终想要使用curl
,但您可以使用net/http lib