2012-03-03 5 views
0

Я пишу приложение python для управления кластером Linux-машин, и я ищу эффективный способ отправки команд всем хостам.Python IPC one to many

Общая архитектура приложения:

  • Интерфейс управления
  • Команда диспетчер
  • Вершина

Я начал писать приложения, используя простой питон скрипт на локальных узлах и затем вызывая его из SSH (используя команды оболочки для отправки команд), но я ищу более эффективное и собственное решение.

Было бы здорово, если бы я мог удаленно выполнить код Python, не используя SSH и пропущенные объекты python.

Учтите, что он должен иметь возможность связываться с несколькими сотнями хостов по сети и поддерживать SSL/TLS.

В качестве ссылки рассмотрим архитектуру VmWare vCenter, так как моя цель - создать нечто очень похожее, и какой подход/технология вы бы использовали?

+1

Звучит что-то вроде соли (http://saltstack.org/), я подозреваю, что прочтение их кода может быть полезно :) – malangi

+0

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

+0

@liwp спасибо за редактирование макета, в следующий раз лучше будет форматировать вопросы;) –

ответ

0

Как @malangi, я собирался предложить Соль также. Если вы действительно хотите перевернуть свое собственное решение, а не повторно использовать Соль, вы можете использовать ZeroMQ в качестве базы данных (это то, что делает Солт). ZeroMQ очень быстрый и скрывает от вас все сетевые коммуникации за действительно хорошим и простым, но мощным API сокетов.

Похоже, что ZeroMQ не поддерживает соединения SSL/TLS: см. Это SO question. Но посмотрите на эту страницу на ZeroMQ wiki для альтернатив.

+0

Видимо, соль поддерживает шифрование PKI, поэтому по крайней мере для меня это приемлемо. Что касается общей архитектуры, у соли, похоже, все, что мне нужно, в ближайшие дни попытается развернуть небольшой виртуальный тестовый кластер и начать тестирование. –

+0

@ martino-dino, похоже, вы уже нашли свое решение, однако если вы каким-то образом закончите свой собственный, вы также можете рассмотреть [Versile Python] (https://versile.com/products/vpy/) для связи (полное раскрытие: I am a Versile developer). Он позволяет связывание на уровне объекта, которое может включать прокси-серверы в [native python] (https://versile.com/doc/vpy/current/recipes/native.html) объекты и поддерживает защищенные соединения PKI. – Versile

+0

@Versile Спасибо за ваш ответ, я рассмотрю эту новую структуру, если она подходит для моих нужд и отчитается. –