2016-07-23 13 views
2

1) Hallo Ich möchte ein Skript machen, ein Skript auszuführen Vagabund aus anderen Verzeichnis zu starten, und wenn ich es melden Sie sich an i paar Befehle in vagrant starten wollen, ist es möglich?Run Rest von Batch-Befehle nach vagrant beginnt

script.bat

call ng build 
call node copy.js 
cd \b\ 
vagrant up 
vagrant ssh 
cd/
sudo /etc/init.d/httpd start 
sudo /etc/init.d/postgresql start 
java -jar /opt/app/app-0.0.1-SNAPSHOT.jar 

Denn es jetzt stoppt, nachdem ich Vagabund mit ssh Vagrant anmelden. Zusätzlich: 2) Auch kennst du einen Befehl, den ich benutzen könnte, um in meinem Verzeichnis zu bleiben, nachdem ich vom Landstreicher verlassen habe. Ich habe dieses Skript ursprünglich aus dem Verzeichnis C:/a ausgeführt und möchte diese Befehle im Ordner C:/b ausführen und nach dem Beenden in C:/a bleiben. Ich versuchte Pushd und Popd aber ohne Wirkung.

3) auch tun, ist es möglich, vagrant bis zu nicht laufen, wenn ich von vagabundierenden Ausfahrt tun, aber es liegt noch?

+0

Verwenden Sie Backslashes für Pfade in Windows! – aschipfl

Antwort

2

Sie können entweder

  1. vagrant shell provisioning tun, die immer ausgeführt werden kann, so etwas wie Vagrantfile in Ihrer hinzufügen

    config.vm.provision "shell", privileged: false, run: "always", inline: <<-SHELL 
        sudo /etc/init.d/httpd start 
        sudo /etc/init.d/postgresql start 
        java -jar /opt/app/app-0.0.1-SNAPSHOT.jar 
        SHELL 
    

so wird, dass diese Befehle jedes Mal laufen Sie laufen vagrant up

  1. laufen die Befehle von vagrant ssh aus der script.bat Datei, so etwas wie

    call ng build 
    call node copy.js 
    cd \b\ 
    vagrant up 
    vagrant ssh -c "sudo /etc/init.d/httpd start" 
    vagrant ssh -c "sudo /etc/init.d/postgresql start" 
    vagrant ssh -c "java -jar /opt/app/app-0.0.1-SNAPSHOT.jar" 
    

Zum zweiten Punkt

auch kennen Sie einen Befehl asnwer, die ich in meinem Verzeichnis bleiben nutzen könnte nachdem ich den Landstreicher verlassen habe. Ich betreibe ursprünglich dieses Skript aus dem Verzeichnis C:/a und ich möchte diese Befehle in C auszuführen:/b Ordner und wollen innerhalb von C bleiben:/a nach dem Verlassen

Vagabund wird in das aktuelle Verzeichnis zurückzukehren, es war Laufen.

Nehmen wir an, Sie laufen von c:/a Ihr Skript, innerhalb Ihres Skripts laufen Sie nach c:/b, wenn Sie von vagrant ausgehen, wird es von c:/b zurückkehren. Wenn Sie zu c verlassen und zurückkehren wollen:/a, stellen Sie sicher, dass eine cd c:/a vor der Ausführung vagrant Befehl

3) auch zu initiieren tun, ist es möglich, Vagabund nicht zu laufen, wenn ich verlassen vagrant tun, aber es ist noch auf?

Es ist nicht klar - vagrant up bedeutet, dass Sie eine VM starten und es läuft - danach können Sie ssh in der VM zu erhalten, aber Sie die VM verlassen an dieser Stelle, die VM noch und läuft, bis Sie laufen Landstreicher Halt.

Sie könnten eine gewisse Verwirrung darüber haben, wie der Vagrant läuft und wie er in Ihrem Skript abläuft. Stellen Sie sicher, dass Sie sich mit der Art vertraut machen, in der der Vagrant läuft, und dann, nachdem Sie ihn skripten können.

+0

Danke für deine befriedigende Antwort und die Zeit, die du nimmst, um mehr zu schreiben, als nur zu ... wie ein anderer zu gehen, werde beide Wege gleich ausprobieren und als richtige Antwort markieren. – Galaxiset

0

Verwendung pushd und popd Speichert das aktuelle Verzeichnis für die Verwendung durch den POPD Befehl, dann Änderungen in das angegebene Verzeichnis.

PUSHD [Pfad | ..]

Pfad Gibt das Verzeichnis an, aus dem das aktuelle Verzeichnis erstellt werden soll.

Wenn die Befehlserweiterungen aktiviert sind, akzeptiert der PUSHD-Befehl Netzwerkpfade zusätzlich zum normalen Laufwerksbuchstaben und -pfad. Wenn ein Netzwerkpfad angegeben wird, erstellt PUSHD einen temporären Laufwerksbuchstaben, der auf die angegebene Netzwerkressource zeigt, und dann ändern Sie das aktuelle Laufwerk und Verzeichnis, mit dem neu definierten Laufwerksbuchstaben . Temporäre Laufwerksbuchstaben werden von Z: on down zugewiesen, wobei der erste nicht verwendete Laufwerksbuchstabe verwendet wird.

+0

Das ist nicht die Frage. – Galaxiset