У меня есть сценарий bash, который мне нужно запустить на нескольких (личных) машинах, используя таймеры systemd. Хотя эти сценарии во многом схожи, в этих сценариях есть некоторые функции, которые мне нужно включить на некоторых машинах, но не на других.
Прямо сейчас я использую ветки git для управления скриптами и таймерами. Это кажется удобным и работает нормально, но мне интересно, рекомендуется ли это.
Хотя это маловероятно, я все же вижу потенциальный источник проблем (ошибка, вызванная человеком): проверка неправильной ветки на машине.
Мои вопросы:
Достаточно ли этого, чтобы не использовать git?
Есть ли другие потенциальные проблемы, которые я мог не учитывать?
Рекомендуется ли этот метод для управления скриптами и таймерами на нескольких машинах? Или мне лучше (а) переписать сценарии, чтобы сделать их более переносимыми и настраиваемыми, (б) иметь только файлы, специфичные для машины, без веток git, (в) что-то еще?
Я поддерживаю node-config
библиотека и пережили некоторые неудачи конфигурации, прежде чем нашли успешную модель.
Я рекомендую хранить всю конфигурацию в одной ветке.
Подумайте о каком-то обновлении, которое вы хотите сделать, которое можно было бы выполнить с помощью функции поиска и замены в ваших файлах. Если все файлы находятся в одном каталоге, это несложно. Если изменение влияет на работу в других ветвях, вам нужно проверить каждую ветку, чтобы внести изменения в каждую ветку.
В node-config
, мы используем переменную среды для установки «среды», например «производство» или «разработка», а другую - для установки «экземпляра». Он также позволяет выполнять настройку на основе имени хоста текущего компьютера.
Результатом является единая кодовая база с единой централизованной конфигурацией. Код настроен так, чтобы вести себя по-разному в зависимости от переменных среды и имени хоста - сам код точно такой же для сред и хостов.
В вашем случае у вас может быть ваш источник фреймворка bash один или несколько файлов на основе имени хоста. Таким образом, ваш код может быть одинаковым везде, но при этом вести себя должным образом на разных хостах.
Вы даже можете сбежать все ваши действия таймера на каждом хосте, просто пусть они ничего не делают на некоторых хостах.