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

Puppet: управление (большим количеством) Apache VirtualHosts

Я изучаю управление конфигурациями в целом и использую кукольный для его реализации, в частности. Я уже провел общее исследование (также на SF) и сейчас я рассматриваю Apache VirtualHosts.

Мы принимаем много ЛАМПА веб-сайтов (в настоящее время их количество исчисляется сотнями) в двух системах: Apache2/mod_php один и MySQL один - в основном противоположность другой вопрос уже по SF где он управляет множеством серверов с несколькими виртуальными хостами (если не одним, я не знаю). Я еще не собрал рабочую конфигурацию в марионетке, но это не должно быть проблемой, есть много Примеры и рецепты там.

В дополнение к очевидным файлам конфигурации apache (я думаю, здесь нет проблем) для каждого виртуального хоста потребуется создать несколько каталогов и проверить разрешения (например, корневой каталог для каждого виртуального хоста, содержащий корневой каталог документов, выделенный каталог tmp, выделенный каталог файлов сеанса php, возможно, сертификаты SSL и т. д.) на веб-сервере, а пользователь + одна или несколько баз данных на сервере MySQL.

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

Прошу ли я проблем при переходе на сотни виртуальных хостов со всеми этими проверками, выполняемыми при каждом запуске марионетки, особенно проверки файловой системы (на веб-сервере), и особенно когда в будущем системы будут загружаться больше? (допустим, мы нацелены на диапазон 1000 ~ 2000 веб-сайтов как разумный максимум для каждого сервера).

Есть ли в сети какой-нибудь опыт этого? Я погуглил, но ничего не нашел, в том числе из-за низкого отношение сигнал / шум при поиске "марионетка" и "апач" ...

Я подозреваю, что управление множеством виртуальных хостов apache не будет проблемой, но я не могу сказать наверняка. Приемлемая производительность определяется потребностями вашего бизнеса. Только вы можете решить, достаточно ли это быстро. Вот достойный тред о снижении нагрузки на процессор: https://groups.google.com/forum/?fromgroups#!topic/puppet-users/sxtMvCnKnys[1-25]

Подводя итог дискуссии:

  • Увеличьте задержку между запусками марионеточного агента
  • не планируйте марионетку и используйте только puppet kick или mcollective для запуска запусков
  • запланируйте, чтобы изменения Apache происходили только в определенное время.
  • использовать две разные среды (обслуживание и производство) для управления вещами. Сделайте производство легким и используйте обслуживание для внесения изменений.

Вот пример управления виртуальным хостом apache с веб-сайта PuppetLabs: http://docs.puppetlabs.com/learning/definedtypes.html#an-example-apache-vhosts

Установка и удаление конфигурации не должно быть проблемой. Самая большая проблема - это удаление файлов данных для веб-приложений / сайтов. Для этого я бы рекомендовал общее хранилище, например NFS / AFS. Если вы не используете общее хранилище, убедитесь, что данные, созданные пользователем, остались нетронутыми, зарезервированы или перенесены на новый сервер.

Я подозреваю, что вы находитесь в ситуации с массовым хостингом, например, с веб-хостингом, поэтому я рекомендую не кодировать имена отдельных сайтов в манифесте марионетки. Для этого рекомендую использовать Hiera < http://puppetlabs.com/blog/first-look-installing-and-using-hiera/ . Hiera позволяет использовать отдельный способ хранения списка сопоставлений виртуального хоста с реальными серверами. Вы можете использовать плоские файлы или базу данных с Hiera. К сожалению, я недостаточно знаю Hiera, чтобы помочь вам настроить многоуровневую структуру данных Hiera, которая может вам понадобиться, но я могу по крайней мере указать вам в общем направлении Hiera.