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

Могу ли я использовать капистрано в этом случае?

Я хочу запускать команды на нескольких серверах одновременно. Я знаю, что mcollective, capistrano, clusterssh и pconsole - это инструменты для быстрого одновременного управления множеством серверов. Пример команды:

du /var/log | sort -n | tail -5

Я изучал MCollective, но он слишком сложен и не предназначен для прямого запуска SSH-команд. Поэтому мне кажется, что pconsole и clusterssh были бы более подходящими для меня.

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

Я забочусь о том, чтобы получить результат после запуска команды SSH, а не просто запустить команду SSH и не услышать ее снова. Это поможет быстро проверить данные на многих серверах одновременно.

Я знаю, что могу использовать Puppet для изменения определенных вещей на серверах, но он не очень хорош для отчетности по статистике, например какие каталоги используют больше всего места на серверах.

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

  • нулевая конфигурация в серверах.
  • тебе нужно только ansible установлен на машине, которая будет запускать команды.
  • он поддерживает sudo.

    -K, --ask-sudo-pass
       Prompt for the password to use with --sudo, if any
    
  • вы можете определить, сколько параллельных задач нужно запускать:

    -f NUM, --forks=NUM
       Level of parallelism.  NUM is specified as an integer, the default is 5.
    
  • многие функции, проверьте веб-сайт проекта, он очень хорошо документирован.

Еще один инструмент командной строки для параллельного запуска задач на разных хостах - это GNU parallel.

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

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