如何在启动流浪汉机器时检查前提条件?

时间:2016-06-17 17:28:34

标签: ruby vagrant vagrantfile

我有一台多机Vagrantfile,我希望在用户运行vagrant up machineB时快速检查,如果失败则退出并显示错误消息。

我想到的具体测试是curl一些网址并验证200响应,但我认为细节不重要。

我们的想法是为用户节省启动计算机,同步某些文件夹和运行配置脚本所需的时间,只是为了发现所需的资源不可用。

到目前为止,我最好的想法是将此检查放在配置脚本的开头,但我想提前做。

我知道我可以在Vagrantfile的开头查看,有点像它是如何完成的here,但是然后检查将在每个vagrant命令上运行,我希望它能运行特别是在尝试启动machineB时。

1 个答案:

答案 0 :(得分:1)

  1. 您可以在machineB的特定块中运行条件,这样只有在为machineB调用命令时它才能运行

  2. 您可以从命令行检查ARGV[0]参数,以确保它是up

  3. 这看起来像什么

    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