Как разморозить поваренную книгу

Я обнаружил возможность замораживать поваренную книгу у шеф-повара случайно через загрузку Berks. Это здорово звучит, чтобы предотвратить изменения и загрузку в кулинарную книгу. Но...

Как разморозить кулинарную книгу? Я не смог найти ни документации, ни постов, спрашивающих об этом. Может показаться нелогичным, почему, почему вы хотите это сделать...? Вы выпустили свою кулинарную книгу, вы не должны вносить изменения в историю.

Но что, если у вас возникла чрезвычайная ситуация на производстве, и поваренная книга этой версии сломала все. Первый ответ может быть, двигаться вперед и решить проблему - но это может занять некоторое время. Второй ответ: изменить версию, прикрепленную к предыдущей, но что если у вас есть 50 кулинарных книг, прикрепленных к этой версии? Тоже не практично.

Кажется довольно полезным, чтобы иметь возможность разморозить что-то. Да, вы можете использовать опцию -f для принудительного обновления. Но необходимость принудительно обновлять каждое изменение в будущем до бесконечности звучит не совсем корректно. Особенно, когда кто-то случайно заморозил кулинарную книгу (например, в моем случае).

4 ответа

Решение

Вы можете принудительно загрузить новую версию с установленным в false флагом замораживания. Мы специально не разоблачаем это и не делаем его легким, потому что это как бы противоречит сути. Лучшее решение - либо использовать закрепление SemVer, а не отдельные версии, или использовать более новую систему Policyfile.

Ты можешь использовать berks upload --force особенно когда вы случайно заморозили версию поваренной книги. Я не понимаю вашу точку зрения, чтобы не использовать опцию силы.

$ 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>

Чтобы разморозить замороженную кулинарную книгу, все, что вам нужно сделать, это изменить версию кулинарной книги, записанную в файле medatada.rb, который, вероятно, находится внутри каталога вашей кулинарной книги. Например, предположим, что каталог вашей кулинарной книги называется «my_cookbook»:

  1. отредактируйте «your_cookbook/metadata.rb»
  2. найдите строку, в которой написано что-то вроде: «версия '0.2.0'»
  3. обновите версию до большего номера, например «0.3.0»
  4. сохранить изменения
  5. попробуйте загрузить свою кулинарную книгу еще раз, например: «Поваренная книга ножа загрузить my_cookbook»

Причина в том, что вы можете заморозить загружаемую кулинарную книгу, чтобы предотвратить будущую перезапись существующей хорошо работающей кулинарной книги на вашем сервере Chef Infra. В этом случае номер версии в файле Metadata.db в вашей локальной книге рецептов необходимо обновлять каждый раз, когда вы вносите изменения в книгу рецептов, которая была заморожена, перед следующей загрузкой этой книги рецептов на сервер Chef Infra. Итак, если вам нужно загрузить замороженную кулинарную книгу без использования опции «--force», не забудьте всегда увеличить номер версии в файле метаданных.rb вашей кулинарной книги. В противном случае либо принудительно загрузите, либо удалите кулинарную книгу с сервера Chef Infra и загрузите ее еще раз, не замораживая.

Дополнительную информацию можно найти в этой книге/главе/разделе: https://subscription.packtpub.com/book/networking-&amp;amp;-servers/9781785287947/1/ch01lvl1sec24/freezing-cookbooks .

Другие вопросы по тегам