Я использую систему управления конфигурацией, и, как я считаю, это распространено, мое программное обеспечение CM просто копирует файлы конфигурации, чтобы развернуть их на моих серверах Linux, слепо уничтожая все, что там есть. Но по большей части мои файлы конфигурации должны быть простыми изменениями или настройками «базовых» файлов конфигурации, которые предоставляются базовым дистрибутивом Linux.
Всякий раз, когда "базовые" файлы конфигурации меняются - возможно, менеджер пакетов ОС хочет отправить обновленные файлы конфигурации с более безопасными значениями по умолчанию, возможно, мы устанавливаем новую версию Ubuntu на некоторых новых хостах - мы должны пройти через файлы конфигурации, чтобы убедитесь, что они не изменились, или что мы не засоряем все, что хотим сохранить / обновить наши шаблоны, и если это так, «повторно примените» наши изменения поверх новой версии.
В терминах git: это похоже на переназначение ваших собственных изменений на смещающемся восходящем мастере.
просто patch
может увести нас на некоторое расстояние, но он не отслеживает общую родословную, разделяемую между восходящими изменениями и нашими изменениями, поэтому у него нет такой надежной логики перенастройки, AFAICT, а также более шумных предупреждений о смещении номеров строк и т. д.
Существуют ли какие-либо инструменты или программное обеспечение CM, которые управляют файлами конфигурации таким образом?
Марионетка с Авгей можете делать то, что хотите, хотя я сомневаюсь, что не стоит просто управлять всем файлом конфигурации, возможно, используя шаблон.
Я надеюсь, что вы протестируете обновления в лабораторной среде и при необходимости измените шаблонные файлы конфигурации. В любом случае вам нужно будет что-то протестировать, даже при использовании augeas, поскольку все, что он делает, может стать таким же недействительным, как и полностью шаблонный файл конфигурации.