Arkasha18
@Arkasha18
SysAdmin

Сontinuous integration как правильно организовать?

Есть некий скрипт автодеплоя CI .
он ходит по серверам при выпуске релиза и делает git pull
проблема в том что некоторые файлы должны отличатся в зависимости от сервера. например есть в репозитории файл
nginx.conf
но на сервере
на сервер 1 он nginx.conf немного измененный
на сервере 2 он еще немного измененный
и т.п.
я не могу просо игнорировать этот файл при деплое, потому что иногда в этот файл например добавляется новая директива или что то меняется и нужно что бы изменение применилось на всех серверах, но и остались уникальные значения для каждого сервера.

через incluide не предлагать потому что есть файлы и конфиги которые не поддерживают includes , например файл кронов

Вопрос как реализовывается у других подобные системы ?
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 2
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Как вариант - делаются отдельные ветки в git, которые от мастера отличаются изменениями в части данных файлов, а CI/CD следит за изменения в этих ветках и выливает на соответствующие сервера.
Эту ветку деплоим на этот сервер, а эту - на другой...
Ответ написан
Комментировать
@vitaly_il1
DevOps Consulting
есть файлы и конфиги которые не поддерживают includes , например файл кронов

AFAIK, все конфиги поддерживают или include, или "drop-in" директории - /etc/*.d например.

Это самый простой путь. Если этого нехватает - то использовать templates и\или configuration management.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы