我是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的烹饪书。 我正在阅读文档,但无法将所有内容联系在一起如何解决此问题。
答案 0 :(得分:2)
所以chef-solo
是一个命令行工具,当我理解它时,必须在SSH连接到远程主机时运行。我知道无法远程运行它。远程运行更符合chef-client
和chef-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]"
]
}