2016-08-01 19 views
3

Ich versuche, eine Vagrafile, die in einer laufenden Pythonflasche App führen wird. Ich habe versucht, dies als letzten Befehl, dies zu erreichen - config.vm.provision :shell, :path => "python app.py" Aber es führte mit dem folgenden Fehler -Führen Sie Python-Skript auf Vagabund bis

* Weg for shell provisioner does not exist on the host system: /Users/*****/code/app-vagrant/python app.py

Ich verstehe, dass das Skript diesen Befehl versucht, von dem Host zu laufen Maschine, wie mache ich Vagrant das Skript auf der Vagabund Maschine gestartet laufen?

Antwort

5

Sie haben 2 Möglichkeiten, ein Skript auszuführen unter Verwendung der vagrant shell provisioner Sie müssen entweder die inline oder path Argument übergeben:

Inline (string) - Gibt Inline einen Shell-Befehl auf dem entfernten Rechner auszuführen.

Pfad (Zeichenfolge) - Pfad zu einem Shell-Skript zum Hochladen und Ausführen. Es kann ein Skript relativ zum Projekt Vagrantfile oder ein Remote-Skript (wie ein Geiste) sein.

so, wenn Sie :path => "python app.py" das System passieren versucht, ein Skript python app.py auf dem Host-Namen zu finden.

ersetzen inline Argument und es wird erreichen, was Sie

config.vm.provision :shell, :inline => "python app.py" 

Anmerkung wollen: provisioner als root Benutzers laufen standardmäßig, wenn Sie es als vagrant Benutzer ändern möchten, und auszuführen:

config.vm.provision :shell, :inline => "python app.py", :privileged => false 
1

Wenn Sie die App beim Start des Geräts starten möchten, können Sie Folgendes tun:

  1. Ihre python app code directory auf die Vagrantfile das Verzeichnis

  2. Config die Vagrantfile so bewegen:

    config.vm.provision "shell", inline: <<-SHELL 
        python /vagrant/<your python app code directory>/app.py 
    SHELL