Как разморозить поваренную книгу
Я обнаружил возможность замораживать поваренную книгу у шеф-повара случайно через загрузку 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»:
- отредактируйте «your_cookbook/metadata.rb»
- найдите строку, в которой написано что-то вроде: «версия '0.2.0'»
- обновите версию до большего номера, например «0.3.0»
- сохранить изменения
- попробуйте загрузить свою кулинарную книгу еще раз, например: «Поваренная книга ножа загрузить my_cookbook»
Причина в том, что вы можете заморозить загружаемую кулинарную книгу, чтобы предотвратить будущую перезапись существующей хорошо работающей кулинарной книги на вашем сервере Chef Infra. В этом случае номер версии в файле Metadata.db в вашей локальной книге рецептов необходимо обновлять каждый раз, когда вы вносите изменения в книгу рецептов, которая была заморожена, перед следующей загрузкой этой книги рецептов на сервер Chef Infra. Итак, если вам нужно загрузить замороженную кулинарную книгу без использования опции «--force», не забудьте всегда увеличить номер версии в файле метаданных.rb вашей кулинарной книги. В противном случае либо принудительно загрузите, либо удалите кулинарную книгу с сервера Chef Infra и загрузите ее еще раз, не замораживая.
Дополнительную информацию можно найти в этой книге/главе/разделе: https://subscription.packtpub.com/book/networking-&amp;-servers/9781785287947/1/ch01lvl1sec24/freezing-cookbooks .