Назад | Перейти на главную страницу

Как использовать Git в нескольких похожих системах

У меня есть система, которую мне нужно продублировать в нескольких системах и внести незначительные изменения, такие как change less / css переменные и файлы конфигурации.

Есть ли лучший способ решения подобных проблем?

В настоящее время я делаю:

git clone repo
cp ../default/config.js config.js
... for several files

или я должен создавать разные ветки одного репо

или я должен создать репо для изменений?

В настоящее время это выполнимо, но будет раздражать, если я получу более 5 подобных систем.

Рассмотрите возможность объединения git и puppet для модели развертывания. Пока git может работать напрямую, это больно (ИМХО).

Шаблоны в марионетке очень хорошо работают с файлами конфигурации, которые зависят от системы. Опция файлов шаблонов хорошо работает для статического развернутого контента.

В этом случае есть как минимум две часто используемые модели. Git можно использовать для развертывания большей части вашего контента из одного репозитория, а вторая конфигурация - только репозиторий git файлов конфигурации марионетки, используемый для каждого содержимого сервера.

Также можно хранить файлы содержимого и конфигурации в одном репозитории, но для нормальной работы могут потребоваться некоторые изменения рабочего процесса.

РЕДАКТИРОВАТЬ:

Я больше всего знаком с Puppet, но насколько я понимаю, Chef и cfengine предоставляют схожие функции.

При совместном использовании файлов git и puppet одной чрезвычайно полезной функцией является сопоставление ветвей git с отдельными средами. Это упрощает переход от контроля качества к продукту даже для ваших файлов конфигурации.

У меня аналогичная ситуация, и я бы использовал разные ветки, так как было бы проще, если бы вам не нужно было ничего менять в своем коде в будущем. Но это не мой случай и, вероятно, не ваш.

Я рекомендую вам использовать сценарий для настройки вашей конфигурации и продолжать использовать ту же ветку в репозитории.