Chef infra 如何解冻食谱

Chef infra 如何解冻食谱,chef-infra,berkshelf,Chef Infra,Berkshelf,我通过berks upload偶然发现了在chef中冻结食谱的能力。能够阻止更改和上传到烹饪书听起来很棒。但是 你如何解冻一本食谱?我找不到任何文档或任何帖子询问这个问题。这听起来可能有悖常理,你为什么要这么做。。。?你发布了你的食谱,你不应该改变历史 但是,如果你在生产上遇到了紧急情况,而这一版本的食谱打破了一切呢。第一个答案可能是,继续前进,解决问题——但这可能需要一段时间。第二个答案可能是,将固定在上一个版本上的版本更改,但如果您有50本烹饪书固定在该版本上,该怎么办?也不实用 能解冻东西

我通过berks upload偶然发现了在chef中冻结食谱的能力。能够阻止更改和上传到烹饪书听起来很棒。但是

你如何解冻一本食谱?我找不到任何文档或任何帖子询问这个问题。这听起来可能有悖常理,你为什么要这么做。。。?你发布了你的食谱,你不应该改变历史

但是,如果你在生产上遇到了紧急情况,而这一版本的食谱打破了一切呢。第一个答案可能是,继续前进,解决问题——但这可能需要一段时间。第二个答案可能是,将固定在上一个版本上的版本更改,但如果您有50本烹饪书固定在该版本上,该怎么办?也不实用


能解冻东西似乎很有用。是的,您可以使用-f选项强制更新。但是,在未来无限期地强制更新每一个变化听起来很刺耳,也不合适。尤其是当有人意外地冻结了一本烹饪书(比如我的情况)

您可以强制上载冻结标志设置为false的新版本。我们并没有具体地揭露这一点,也没有让它变得容易,因为它有点违背了这一点。更好的解决方案是使用SemVer钉扎而不是单一版本,或者使用更新的Policyfile系统。

您可以使用
berks upload--force,特别是在意外冻结cookbook版本时。我不明白你不使用武力的意思

$ berks help upload
Usage:
  berks upload [COOKBOOKS]

Options:
  -b, [--berksfile=PATH]                               # Path to a Berksfile to operate off of.
  -e, [--except=one two three]                         # Exclude cookbooks that are in these groups.
  -o, [--only=one two three]                           # Only cookbooks that are in these groups.
      [--no-freeze], [--no-no-freeze]                  # Do not freeze uploaded cookbook(s).
      [--force]                                        # Upload all cookbooks even if a frozen one exists on the Chef Server.
      [--ssl-verify], [--no-ssl-verify]                # Disable/Enable SSL verification when uploading cookbooks.
  -s, [--skip-syntax-check], [--no-skip-syntax-check]  # Skip Ruby syntax check when uploading cookbooks.
      [--halt-on-frozen], [--no-halt-on-frozen]        # Exit with a non zero exit code if the Chef Server already has the version of the cookbook(s).
  -c, [--config=PATH]                                  # Path to Berkshelf configuration to use.
  -F, [--format=FORMAT]                                # Output format to use.
                                                       # Default: human
  -q, [--quiet], [--no-quiet]                          # Silence all informational output.
  -d, [--debug], [--no-debug]                          # Output debug information

只需删除该食谱的版本并重新加载即可。请尝试以下内容:

knife cookbook delete <cookbook name>
knife cookbook upload <cookbook name>
刀食谱删除
刀食谱上传