如何使用Chef配置服务器?

时间:2012-06-11 19:33:18

标签: chef

我是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的烹饪书。 我正在阅读文档,但无法将所有内容联系在一起如何解决此问题。

1 个答案:

答案 0 :(得分:2)

所以chef-solo是一个命令行工具,当我理解它时,必须在SSH连接到远程主机时运行。我知道无法远程运行它。远程运行更符合chef-clientchef-server

的目标

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

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

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

所以你可能不得不用bash假装它。

所以这就是你需要做的。

为每个要安装的系统包制作食谱

为你关心的(可选择的每一个)python做一个食谱(取决于相应的系统库

将上述食谱汇总成一个角色

你的系统库烹饪书看起来很无聊

- 食谱/蟒成像/ default.rb

include_recipe "python-imaging::install"

-

食谱/蟒成像/ 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]"
]
}