Во-первых, я новичок во всей этой истории с Linux ... Так что будьте осторожны.
Настройка:
У меня есть пара серверов Ubuntu ... Пара DNS-серверов с Bind и пара серверов с Nginx и HAProxy для балансировки нагрузки запросов к некоторым внутренним серверам.
Теперь серверы привязки в значительной степени поддерживают друг друга в актуальном состоянии, выполняя передачи зон, хотя в привязке есть некоторые настройки, которыми я хотел бы поделиться между ними. Однако серверы балансировки нагрузки полностью независимы, что очень плохо. Это плохо, потому что тогда мне придется изменять конфигурации на обоих серверах независимо, когда я хочу внести изменения в конфигурацию. Это, конечно, открывает серверы для ошибок, когда я случайно настраиваю два сервера по-разному, что в какой-то момент неизбежно превратится в «трудные для отладки» ошибки и баги.
Вопрос
Итак, мой вопрос ... Как мне синхронизировать изменения конфигурации между серверами, а также автоматически перезапускать службы при изменении их конфигурации?
Вы можете посмотреть на Кукольный или CFengine. Оба предлагают способы сохранить конфигурации в синхронизации и выполнять команды после синхронизации.
Однако они действуют в соответствии с разными принципами, я не могу сказать, какая из них лучше всего подойдет вам, вам придется ее прочитать и протестировать, что лучше всего подходит для вашей среды и стиля работы.
Теоретически вы можете просто rsync (биты) конфигурации туда и обратно по мере необходимости, но это становится действительно беспорядочным, очень быстро. Вместо этого вы должны использовать настоящую систему управления конфигурацией, такую как Puppet или Chef, чтобы поддерживать конфигурацию за вас (и перезапускать что-то при изменении конфигурации).
Вскоре мы выпускаем нашу службу управления конфигурацией, которая является еще одним способом решения вашей проблемы, поскольку она централизует конфигурацию в одном месте и устраняет необходимость в синхронизации. Если вы хотите, вы можете подписаться на бета-версию здесь http://woot.configchief.com/