我有点落入厨师手中,现在我有几个节点正在运行,并想清理我如何管理我的烹饪书和依赖项。
从历史上看,我经常会在厨师超市找到一本符合我需要的食谱,并用刀子来安装这本食谱。 knife cookbook site install foo
。将食谱放入我的食谱目录chef-repo/cookbooks/foo
。
当我无法找到我想要的内容时,我会在同一目录chef-repo/cookbooks/mycompany-bar
现在我有一个很好的社区烹饪书和自定义烹饪书的小集合,我发现很难管理依赖项并希望迁移到berkshelf。
我的问题是:
我的很多角色只是使用我安装的社区食谱,而不是任何类型的包装食谱,包括"包括"它们。
即:
run_list "recipe[hostname]", "recipe[user::data_bag]", "recipe[chef-client::delete_validation]", "recipe[chef-client]", etc....
我不确定如何安装和使用任何社区食谱与berkshelf w / out首先创建我自己的食谱,然后依赖社区食谱。这是我应该做的正确方法吗?
我是否需要为这些现有的烹饪书写一堆包装?即:拥有我自己的mycompany-hostname
食谱,这取决于社区hostname
食谱?
答案 0 :(得分:0)
您可以直接在Berksfile
metadata # this will get anything in your metadata.rb (and recursive dependenceis)
cookbook 'cookbookname', '1.3.5' #OR
cookbook 'cookbookname' # OR
cookbook 'cookbookname' '>= 1.5.2'
当您执行berks install
和berks upload
答案 1 :(得分:0)
Berkshelf是管理cookbook和依赖项的最佳方式。
您可以在同一个berksfile中提及您的包装器cookbook及其依赖项。 “Beksfile”中的Cookbook源代码可以来自“Chef Supermarket”,GIT源代码和系统本地路径。
考虑食谱“mysql_wrapper”是您开发的食谱,它使用“mysql”社区食谱。 还要考虑包装器位于系统本地路径中。
以下是上述场景的示例berksfile内容。
source "https://supermarket.chef.io"
cookbook 'mysql'
cookbook 'mysql_wrapper', path: '/system/local/path/to/wrapper-cookbooks/mysql_wrapper'
工作原理?
当你运行“berks install”或“berks upload”时,Berkshelf会解析berksfile中提到的食谱。
依赖社区食谱将从“超市”下载,因为我们在第一行引用了它。 虽然包装器菜谱将由本地路径引用。
设置管理cookbook,角色和data_bags的项目
管理Chef服务器
如果您要上传内容,请按以下步骤操作