FastNetMon

Tuesday, 5 March 2013

Системы для управления множеством серверов

В умных книжках и блога это зовется "orchestration", но мне термин крайне не нравится :)

Таких систем довольно много - MCollective, Func (очень странный проект внутри проекта Fedora, много питона и мало понятной документации), Fabric (подразумевает использование мини-программ на Питоне, по этой причине не подходит), Capistrano (работает поверх ssh, по этой причине не подходит совершенно), а также куча parallel-ssh программ.

Буду рад, если кто еще подкинет подобное ПО!

8 comments :

  1. Хмм. Ну так у вас же есть куча статей по puppet разве это не то? Есть еще chef оба на руби.

    ReplyDelete
  2. Это не совсем то, нужна именно орхестрация, а не управление конфигурациями :) Проще говоря - запуск программы xxx на тысячах машин.

    ReplyDelete
  3. есть rundeck, но он тоже работает через ssh. тот же jenkins можно использовать для запуска чего-либо, можно подключать ноды, но одновременно на куче нод запускать ничего не хочет.

    ReplyDelete
  4. SaltStack - то что нужно. Moreover, он API-centric и его можно вкрутить в любые очереди / расписания. Писан на Python, использует ZeroMQ.

    ReplyDelete
  5. Предлагаю посмотреть на saltstack.org Он, как и puppet, может работать как система управления конфигурациями (модуль зовется Salt states), но в то же время сочетает в себе инструментарий для множественного запуска комманд на куче серверов в разных вариантах типа "только на веб-серверах", "не больше 5 за раз", "остановиться при первой же ошибке" и т.п. За последнее время оброс множеством функционала и сопутствующим ПО: Salt Cloud для облачных решений, поддержка в Vagrant (salty-vagrant).

    ReplyDelete
  6. Ansible.cc, тоже поверх ssh. Zabbix Agent, в принципе, тоже позволяет запускать удаленно программы.

    Мы выбрали saltstack для opennodecloud.com и пишем поверх этого консольки (cisco ios'like). Это неплохой проект, но еще весьма сырой. Он очень похож по архитектуре на функ, который использовали вначале, но потом переехали, т.к. он кривой и больше не развивается :/

    ReplyDelete
  7. CFEngine. Прописываешь сценарий на одном, потом сценарий выполняется на других машинах.

    ReplyDelete
  8. для rpm-based можно использовать spacewalk.
    если ставить задачу просто как запустить ххх на yyy машин - то мегаоверкилл, но если совмещать приятное с полезным (конфиги, апдейты, провизионинг) - весьма удобно.
    подписанным хостам можно дать "remote-command" (исполнение любого скрипта, хоть баш, хоть питон, хоть что-либо еще, установленное в системе). там в основе механизма раздачи заданий - jabber.

    ReplyDelete

Note: only a member of this blog may post a comment.