2016-08-04 32 views
0

Ich habe ein Python-Skript, die Ear-Datei auf einem Server bereitstellt, wie führe ich dieses Skript mit Chef zum Bootstrap einen Linux-Knoten?Place Python-Skript in Koch Kochbuch

Ich habe ein Rezept wie unten versucht, aber es konnte mein Python-Skript nicht identifizieren, das im "mycookbook \ files \ default \ deploy.py" -Ordner meines Kochbuchs vorhanden ist.

execute 'executeFile' do 
command "python #{'deploy.py'}" 
end 

Versucht, den vollständigen Dateipfad zu geben, erkannte die Datei nicht. Wie führe ich ein Python-Skript in einem Kochbuch aus?

Antwort

2

Mit Hilfe der poise-python Kochbuch python_execute Ressource:

cookbook_file "/root/deploy.py" do 
    source "deploy.py" 
end 

python_execute "/root/deploy.py" 

Sie auch eine normale execute Ressource verwenden können, wenn Sie die Befehlszeile zwicken. Das wichtige Bit ist, dass Sie cookbook_file verwenden müssen, um die Datei aus dem Kochbuch tatsächlich auf eine beliebige Stelle auf dem Knoten zu kopieren.

+0

Vielen Dank, dies half, das Problem zu lösen. Kann ich Chefattribute an die Python-Datei übergeben? Wie im Koch "cookbook_file node ['py'] ['tmpDir'] do" wird auf der Grundlage des Attributeintrags zur richtigen Position aufgelöst, kann ich diese Attribute auch in der Python-Datei aufrufen? – springbatcher

+0

Nein, Sie müssten als Befehlszeilenargumente alle gewünschten Werte übergeben: 'python_execute" /deploy.py # {node ['whatever']} "' – coderanger