2016-08-04 14 views
0

私はサーバー上にイアファイルを展開するpythonスクリプトを持っていますが、Linuxノードをブートストラップするためにシェフを使ってこのスクリプトを実行するにはどうすればいいですか?シェフの料理本にPythonスクリプトを置きます

以下のようなレシピを試しましたが、料理本の "mycookbook \ files \ default \ deploy.py"フォルダ内にある私のpythonスクリプトを特定できませんでした。

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

完全なファイルパスを指定しても、ファイルを認識できませんでした。どのようにシェフの実行リソースを使用して料理ブック内のPythonスクリプトを実行するには?

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

python_execute "/root/deploy.py" 

コマンドラインを微調整する場合にも、通常のexecuteリソースを使用することができます。poise-python料理のpython_executeリソースを使用して

答えて

2

。重要なことは、実際には調書からノードのどこかにファイルをコピーするのに、cookbook_fileを使う必要があるということです。

+0

ありがとう、これは問題の解決に役立ちました。シェフの属性をPythonファイルに渡すことはできますか?シェフのように "cookbook_file node ['py'] ['tmpDir'] do"は属性エントリに基づいて適切な場所に解決されますが、これらの属性にもPythonファイルでアクセスできますか? – springbatcher

+0

いいえ、コマンドライン引数として必要な値を渡す必要があります: 'python_execute" /deploy.py#{node ['whatever']} '' – coderanger

関連する問題