2

私はChefを初めて使用し、サーバーの構成に初めて使用しようとしています。Chef Solo を使用して、リモート サーバーで次のコマンドを実行したいと考えています。

   sudo apt-get install python-pip    
   sudo apt-get install gcc    
   sudo pip install scrapy    
   sudo apt-get install python-dev    
   sudo apt-get install libxml2-dev libxslt-dev    
   sudo pip install scrapy    
   sudo pip install storm    
   sudo apt-get install MySQLdb    
   sudo apt-get install python-imaging

次に、Python コードをサーバーの ~/project ディレクトリにコピーします。誰でもどうすればいいのか教えてください。Python、apt、build-essentials のクックブックをダウンロードしました。ドキュメントを読んでいますが、これを行う方法についてすべてを結び付けることができません。

4

1 に答える 1

2

私が理解しているようchef-soloに、リモートホストにSSHで接続するときに実行する必要があるコマンドラインツールです。リモートで実行する方法がわかりません。リモートで実行することはchef-clientchef-server

基本的に、2 つの異なるものがあります。いくつかのシステム パッケージといくつかの python パッケージをインストールする必要があります。

これらのシステム パッケージをインストールするためのコミュニティ レシピを探しますが、それらのほとんどは単純なものであるため、存在しない可能性があります。

Python パッケージのリソースはないと思います。( http://wiki.opscode.com/display/chef/Resources )

したがって、おそらく bash で偽造する必要があります。

だからここにあなたがする必要があるものがあります。

インストールする各システム パッケージのクックブックを作成する

(オプションでそれぞれ) 関心のある Python のクックブックを作成します (適切なシステム ライブラリに依存します)。

上記のクックブックをロールに集約する

あなたのシステムライブラリクックブックはかなり退屈に見えるでしょう

-- cookbooks/python-imaging/default.rb

include_recipe "python-imaging::install"

--

クックブック/python-imaging/install.rb

case node["platform"]
when "ubuntu", "debian"
package "python-imaging"
else
raise "Unsupported platform #{node["platform"]}"
end

--

次に、次のような役割を作成します

{
"run_list": [
"recipe[python-imaging]",
"recipe[another-cookbook]"
]
}
于 2012-07-05T01:18:48.700 に答える