Python IPC едно към много

Пиша приложение на Python за управление на клъстер от Linux машини и търся ефективен начин за изпращане на команди до всички хостове.

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

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

Започнах да пиша приложението, използвайки прост скрипт на Python на локални възли и след това го извиквам от SSH (по този начин използвах команди на обвивката за изпращане на команди), но търся по-ефективно и родно решение.

Би било страхотно, ако мога да изпълня дистанционно код на Python, без да използвам SSH и да предавам (мариновани) обекти на Python наоколо.

Помислете, че трябва да може да комуникира с няколкостотин хоста по мрежата и да поддържа SSL/TLS.

Като референция помислете за архитектурата на VmWare vCenter, тъй като моята цел е да създам нещо много подобно, така че какъв вид подход/технология бихте използвали?


person Martino Dino    schedule 03.03.2012    source източник
comment
Звучи нещо като сол (saltstack.org), подозирам, че прочитането на техния код може да е полезно :)   -  person malangi    schedule 03.03.2012
comment
Уау, бързо разглеждам документите им, това изглежда е решението, ще проверя и адаптирам извадка, за да проверя дали това е правилният подход, благодаря, че посочи   -  person Martino Dino    schedule 03.03.2012
comment
@liwp благодаря за редакцията на оформлението, следващия път ще форматирам въпросите по-добре;)   -  person Martino Dino    schedule 03.03.2012


Отговори (1)


Подобно на @malangi, щях да предложа и Солт. Ако наистина искате да създадете свое собствено решение, вместо да използвате повторно Salt, можете да използвате ZeroMQ като комуникационен бекенд ( това прави Солт). ZeroMQ е супер бърз и скрива всички мрежови комуникации от вас зад наистина хубав и прост, но мощен API за сокет.

Изглежда, че ZeroMQ все още не прави SSL/TLS връзки: вижте този SO въпрос. Но погледнете тази страница в ZeroMQ wiki за алтернативи.

person liwp    schedule 03.03.2012
comment
Явно солта поддържа PKI криптиране, така че поне за мен е приемливо. Що се отнася до общата архитектура, солта изглежда има всичко, от което се нуждая, през следващите дни ще се опитам да разположа малък виртуален тестов клъстер и да започна тестването. - person Martino Dino; 03.03.2012
comment
@martino-dino изглежда, че вече си намерил решението си, но ако по някакъв начин се окаже, че използваш своето, може да помислиш и за Versile Python за комуникация (пълно разкриване: аз съм разработчик на Versile). Той позволява комуникация на ниво обект, която може да включва проксита към обекти на собствен Python , и поддържа PKI защитени връзки. - person Versile; 03.03.2012
comment
@Versile Благодаря за отговора ви, ще разгледам тази нова рамка, ако е подходяща за моите нужди, и ще докладвам. - person Martino Dino; 09.03.2012