Я создал книгу рецептов и использую manage.chef.io
ее для размещения и развертывания. Я разместил книгу рецептов в частном репозитории GitHub.
Рассмотрим сценарий:
если я внесу некоторые изменения в кулинарную книгу и knife cookbook upload
в нее, но язабыть нажатьего на Github.
Как мне убедиться, что этого не произойдет? Даже по ошибке. Как мне убедиться, что в любой момент у всех будет последний репо, и не может ли knife upload
он быть иным. Так же, как вы не можете, git push
если вы не git pull
редактировали изменения.
Мой коллега тянет из GitHub, но не видит изменений. Таким образом, он вносит свои собственные изменения и knife cookbook upload
это. Но он заменит мои изменения, так как у него старая версия.
Так каков же наилучший способ управления кулинарной книгой среди нескольких DevOps?
решение1
Самый простой подход, как правило, заключается в том, чтобы сделать push на Chef Server под контролем вашей службы CI, например Jenkins. Это принудительно выполняет сериализацию вокруг системы управления исходным кодом, поскольку ни у одного человека нет разрешений на запуск загрузок кулинарных книг. Вы также можете просто убедиться, что вы достаточно общаетесь, чтобы избежать этого, но это гораздо более подвержено ошибкам. Некоторые рабочие процессы Chef вокруг файлов политики не имеют этой проблемы, так как вообще не используют обычные загрузки кулинарных книг.