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

基本上你有两个不同的东西。你需要安装一些系统包和一些python包。

我会寻找社区食谱来安装这些系统包,但它们中的大多数都是微不足道的,所以它们可能不存在。

我认为没有 python 包的资源。( http://wiki.opscode.com/display/chef/Resources )

所以你可能不得不用 bash 来伪造它。

所以这就是你需要做的。

为要安装的每个系统包制作一本说明书

为您关心的(可选的每个)python 事物制作一本食谱(这取决于相应的系统库)

将上述说明书聚合成一个角色

你的系统库食谱看起来很无聊

-- 食谱/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 回答