2016-06-17 4 views
1

Ich habe eine Vagrantfile mit mehreren Maschinen, und ich möchte eine schnelle Überprüfung durchführen, wenn der Benutzer vagrant up machineB ausführt, und mit einer Fehlermeldung beenden, wenn es fehlschlägt.Wie kann man beim Starten einer Landstreichermaschine nach einer Vorbedingung suchen?

Der spezifische Test, den ich im Auge habe, ist zu curl einige URL und überprüfen eine 200 Antwort, aber ich denke nicht, dass die Details wichtig sein sollten.

Die Idee ist es, dem Benutzer die Zeit zu sparen, die es braucht, um die Maschine zu starten, einige Ordner zu synchronisieren und das Provisionsskript auszuführen, nur um festzustellen, dass eine benötigte Ressource nicht verfügbar ist.

Bis jetzt ist die beste Idee, die ich habe, diese Überprüfung am Anfang des Bereitstellungsskriptes zu setzen, aber ich würde es früher tun wollen.

Ich weiß, ich kann nur am Anfang der Vagrantfile überprüfen, etwa wie es gemacht wird here, aber dann wird die Überprüfung auf jedem Vagrant Befehl ausgeführt, und ich möchte es nur ausführen, nur beim Versuch Starten Sie machineB.

Antwort

1
  1. Sie können Ihren Zustand in dem speziellen Block für Ihre RechnerB laufen, so dass es nur dann ausgeführt wird, wenn Sie Befehle für RechnerB rufen

  2. Sie ARGV[0] Argument von der Kommandozeile überprüfen, um sicherzustellen, ist es up

wird dies etwas

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 
aussehen

nicht sicher, was genau Sie wollen mit der curl enden, aber Sie könnten einfach die net/http lib

verwenden
Verwandte Themen