Chef infra 处理食谱

Chef infra 处理食谱,chef-infra,berkshelf,Chef Infra,Berkshelf,我正在使用berkshelf处理我的烹饪书依赖项。要在我的服务器上上载我的食谱: berks upload --force 这是最好的选择吗 我正在尝试删除/删除此my cookbook表单服务器。我找不到任何berks-remove/delete-cookbook命令。我正在尝试使用刀删除食谱。我收到了下一条信息: 错误:当当前目录位于存储库路径之外时,尝试使用相对路径“berk”。 错误:当前工作目录为“D:/projects/living/vagrant/production/berk/

我正在使用berkshelf处理我的烹饪书依赖项。要在我的服务器上上载我的食谱:

berks upload --force
  • 这是最好的选择吗
  • 我正在尝试删除/删除此my cookbook表单服务器。我找不到任何
    berks-remove/delete-cookbook
    命令。我正在尝试使用
    刀删除食谱
    。我收到了下一条信息:
  • 错误:当当前目录位于存储库路径之外时,尝试使用相对路径“berk”。 错误:当前工作目录为“D:/projects/living/vagrant/production/berk/berk”


    我该如何处理呢?

    使用强制模式可以有效地禁用冻结上传的保护,这是不推荐的,否则我们就不会将其设置为默认模式。冻结的烹饪书意味着将来不会上传到同一版本号,从而确保上传的烹饪书的内容不会从您的下方更改。在TestKitchen之前的糟糕日子里,在测试cookbooks时,必须上传到开发或登台Chef服务器是非常常见的,因此为了简单起见,我们不希望每次都需要版本升级。冻结模式用于“真实”上传,这通常是伯克斯正在做的


    正如StephenKing指出的那样,
    刀烹饪书删除
    是删除烹饪书的正确方法,但你不应该经常这样做。您提到的错误是因为您的刀子配置很古怪。

    要管理我的烹饪书版本,我正在使用用bash编写的构建工具,它包装了
    刀子
    伯克斯
    命令,以便引导和配置节点。该工具的一部分是自动更新cookbook版本并将其上载到chef服务器

    v=`grep version cookbooks/$1/metadata.rb`
    v=${v#*version}
    v=${v#*\'}
    v=${v%*\'}
    echo $v
    VERSION="${v%.*}.$((${v##*.}+1))"
    echo $VERSION
    sed "s/$v/$VERSION/g" cookbooks/$1/metadata.rb > output.txt
    mv output.txt cookbooks/$1/metadata.rb
    

    然后您通过./version\u updater.sh my\u cookbook,您将拥有递增的版本。

    使用
    --force
    的命令是否是最好的选择DUse
    knife cookbook delete
    从厨师服务器删除一本食谱。谢谢@coderanger。为什么我需要使用
    berkself
    上传烹饪书,而我需要使用
    knife
    删除它?我已经能够从服务器上删除我的烹饪书了。尽管如此,我还是想删除它的所有依赖项。。。有什么想法吗?因为berks不是一个通用的API工具,而且递归删除还不够常见,没有专门的工具。