Chef infra 找不到食谱
我尝试用chef solo安装python 让我做Chef infra 找不到食谱,chef-infra,chef-solo,Chef Infra,Chef Solo,我尝试用chef solo安装python 让我做 chef-solo -c solo.rb -j chef.json solo.rb: file_cache_path "/tmp/chef-solo" cookbook_path "/home/lamerman/.berkshelf/cookbooks" chef.json: { "run_list": [ "recipe[python]" ] } ls-l/home/lamerman/.berkself/cookbooks
chef-solo -c solo.rb -j chef.json
solo.rb:
file_cache_path "/tmp/chef-solo"
cookbook_path "/home/lamerman/.berkshelf/cookbooks"
chef.json:
{
"run_list": [ "recipe[python]" ]
}
ls-l/home/lamerman/.berkself/cookbooks
...
drwxrwxr-x 8 lamerman lamerman 4096 Sep 15 13:16 python-1.4.6
...
为什么我会受伤
ERROR: Cookbook python not found. If you're loading python from another cookbook,
make sure you configure the dependency in your metadata
看起来一切都是对的。Berkshelf和Chef本身使用的目录结构与Berkshelf不同。主要区别在于Berkself可以安装多个版本的烹饪书,而chef不能。在chef's world中,cookbook名称必须是目录名,不得添加任何内容 因此,您不能只将solo.rb指向Berkshellf目录。相反,您必须指示Berkshelf从缓存中创建适合chef的目录结构。这类似于从当前状态创建快照 因此,通常,您可以在chef存储库(即包含
Berksfile
的目录)中运行此操作,以创建适合chef的cookbooks
目录:
berks install --path /path/to/your/chef/repo/cookbooks
然后,在solo.rb
中,您可以告诉chef使用此快照目录
file_cache_path "/tmp/chef-solo"
cookbook_path "/path/to/your/chef/repo/cookbooks"
请注意,
cookbooks
目录中的目录名没有附加版本。chef要求这样做。“如果您是从另一本食谱加载python,请确保在元数据中配置了依赖项”,您这样做了吗?@garnertb,我不会从另一本食谱加载python。我只是尝试用chef solo安装python。我应该在哪里配置这些依赖项?python包是用Berkshellf下载的。非常感谢。注意:install命令似乎已被弃用,应改用“vendor”