Назад | Перейти на главную страницу

Как настроить централизованное репо для распространения файлов на серверы

Предположим, у меня есть десятки, даже сотни серверов. Каков наилучший метод отправки центральной копии файлов в заданный каталог на все серверы? Например, мы обновляем сценарий bash и помещаем его в центральное хранилище. Затем мы хотим, чтобы репозиторий автоматически отправлял обновленный сценарий bash на все серверы. Предположим также, что репо может подключаться по ssh ко всем серверам через открытый ключ.

Я знаю, что мог бы создать какой-нибудь взломанный сценарий оболочки, чтобы просмотреть список серверов и scp, но должен быть лучший способ справиться с этим. Как насчет rysnc? ПОНРАВИТСЯ графический интерфейс, например, добавить серверы, затем просто загрузить файл, и он получит scp'd на все серверы в группе.

Спасибо.

Если вам нужно тяжеловесное решение, которое будет централизованно управлять конфигурацией сервера (а если вы имеете дело с десятками или сотнями ящиков, вам стоит обратить внимание на подобные вещи), взгляните на Повар или Кукольный. Это может быть излишним для вашей среды, и есть крутая кривая обучения, но я не могу представить, как справиться с таким количеством ящиков каким-либо другим способом.

Если у вас есть только каталог сценариев bash, вы можете смонтировать общий сетевой ресурс этого каталога.

На самом деле, я думаю, нам понадобится больше информации о вашей среде. У вас есть прямой контроль над всеми этими серверами? Вы вместо этого говорите: «Я распространяю какое-то программное обеспечение для группы клиентов и хочу поддерживать это программное обеспечение в актуальном состоянии» (в этом случае, как ваше программное обеспечение упаковано)? В чем конкретно ваша ситуация?

Вам следует изучить систему управления конфигурацией, например Кукольный, Bcfg2, Chef, CFEngine или другие

Например, Puppet охватывает все перечисленные вами варианты использования и предоставляет дополнительные функции, такие как развертывание этапов, аудит / отчетность, сложные рабочие процессы и т. Д.

В дополнение к другим ответам на централизованную настройку (мы используем шеф-повар внутри) ..

Вы также можете использовать репозиторий файлов svn, например Subversion, для его возможностей управления версиями файлов и его интерфейса HTTP.

Например, у нас есть ферма веб-серверов apache с httpd на 5 узлах, и я храню копии httpd.conf и /etc/httpd/conf.d/www.myserver.com.conf в репозитории svn, это позволяет нам легко развертывать изменения в экземплярах, а также откатывать в случае ебли.

Он также представляет собой компонент в вашей базе данных активов и может использоваться для подтверждения того, что все ваши экземпляры работают с одинаковой конфигурацией, если вы развертываете ее автоматически.

Очевидно, что в наше время существует множество альтернатив для репозитория, такого как git, mercurial или интерфейс davfs, к какому-либо файловому серверу, который имеет локальную стратегию управления версиями.