Как нескольким разработчикам DevOps управлять кулинарной книгой одного шеф-повара?

Как нескольким разработчикам DevOps управлять кулинарной книгой одного шеф-повара?

Я создал книгу рецептов и использую 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 вокруг файлов политики не имеют этой проблемы, так как вообще не используют обычные загрузки кулинарных книг.

Связанный контент