У меня несколько серверов в WEB-кластере (одинаковая конфигурация для всех, несмотря на IP)
Как вносить изменения в конфиги на многопользовательских серверах?
Я создаю новую конфигурацию, затем создаю конфигурацию для каждого сервера (с указанием правильного IP-адреса), а затем:
Каким вам видится такой метод? Каким должен быть "профессиональный способ :)?" (Я не говорю, что мой способ не работает ... он работает и экономит мое время, которое не используется для входа на каждый веб-сервер.)
С Уважением,
Для этого вы можете использовать любой из современных инструментов автоматизации изменений (Puppet, Chef, cfengine, bcfg2 и т. Д.). Любой из них может развертывать файлы и перезапускать службы при изменении файлов, которыми они управляют.
За последние несколько лет я добился большого успеха с Puppet в нескольких средах.
Как только вы начнете использовать этот инструмент для всего, он получит дополнительное преимущество - документирование вашего процесса и инфраструктуры.
Поддержите его с помощью инструмента управления версиями, такого как git или svn, и теперь у вас есть ... инфраструктура с поддержкой версий.
Я в целом согласен с ответом bdha - используйте инструмент управления конфигурацией для управления своими изменениями. Еще один момент, который я хочу отметить, заключается в том, что вы должны стремиться использовать инструмент управления пакетами вашей системы в максимально возможной степени для всего, что не является файлом конфигурации. Гораздо проще управлять системой, в которой установлен набор пакетов, чем системой с кучей ручного редактирования файлов (или системой с кучей автоматического редактирования файлов с помощью марионетки).
Если у вас есть файлы конфигурации, которые никогда не меняются, они также могут быть включены в системные пакеты. Узнайте, как создавать пакеты с помощью инструмента создания пакетов вашей системы и как размещать их в централизованном репозитории, чтобы затем можно было использовать такие инструменты, как ням управлять и устанавливать их.
Также внимательно рассмотрите свою систему push-уведомлений. Многие люди для этого используют puppet или cfengine, но, опять же, есть более специализированные инструменты, которые могут лучше масштабироваться по мере увеличения вашей среды. Примеры инструментов этих типов включают Capistrano и Пого.
На самом деле, если у вас большое количество серверов, Cfengine определенно вам подходит. Он запускается каждые 5 минут (а не каждый час!). Я снова и снова слышал от других, что Puppet не очень хорошо масштабируется. Вы сталкиваетесь с выбором между управлением большим количеством машин и точным пониманием их состояния. К сожалению, это связано с его архитектурой, поэтому обойти его сложно. Я особо не играл с Chef, поэтому я не знаком с его полным потенциалом.
Если у вас большое количество серверов, вам обязательно стоит обратить внимание на puppet или chef, это лучшее решение, которое позаботится обо всех ваших требованиях и даже перезагрузит конфигурацию сервера, как только будет подтвержден новый.
Если вы обнаружите, что это немного излишне, вы могли бы просто создать скрипты с некоторыми перекрестными ключами ssh из центрального местоположения, чтобы протолкнуть конфигурацию, на вашем месте я бы использовал mercurial или bazaar в этом центральном репо, чтобы отслеживать изменения и иметь возможность отката легко, если дела пойдут плохо.