На чем писать web приложение обвертку над консолью (bash)?
Суть вопроса: необходимо создать интерфейс который позволит выполнять консольные команды на одном и/или нескольких серверах. В теории будет существовать центральный менеджмент сервер который отправляет команды по ssh или как то иначе команды на сервера в облаке. Те в свою очередь должны возвращать результат работы этих команда. В общем все как положено, с обработкой ошибок и мониторингом хода выполнения в реальном времени (stdout, stderr).
1. На чем писать разницы нет - используйте то, что знаете.
2. Зачем свои костыли? Есть же уже готовые orchestration и cm решения.
3. Какой смысл в веб-интерфейсе для выполнения команд по ssh? Может для этого лучше и использовать ssh?
1 - Вопрос не в том на чем писать, а в том на чем такое удобнее реализовать. Если это проще сделать например на java, то нет смысла делать это на php. Хотя если честно я смотрю в сторону node.js.
2 - Большинство готовых решение даже костылем не назовешь, это скорее как деревянная нога пирата )). Если имели опыт с качественным и без проблем расширяемым продуктом (еще и бесплатным), буду рад совету. По факту нужна хорошая альтернатива OpenQRM.
3 - Веб интерфейс - это система мониторинга и менеджмента. Одна кнопка в нем, выполняет множества действий и команд (на нескольких узлах). Делать это руками через терминал? Тогда как минимум надо точно так же писать обвертки, потом обучать людей с этим пользоваться. В общем нет, 2015 год на пороге.
1. Так биндинги к облакам и либа для ссх есть почти для всех языков.
2. В openQRM так-то много разномастных фич написано:) Надо бы пощупать.
Посмотрите на theforeman.org/. А по поводу orchestration - да хоть rundeck, mcollective или ansible - всё удобнее чем самому реализовывать.
3. Получается вы вопрос немного некорректно поставили :) Одно дело - просто выполнять команды на одном/нескольких серверах, другое - монструозная система все в одном + еще и для плохо обучаемых клиентов :)
Я думаю вам лучше сначала хм выделить то, что именно вы хотите от будущей системы.
Это управление облаками, управление машинами, провижионинг/деплой, мониторинг, управление конфигурацией, оркестрейшен...?
Если речь идет только о выполнении команд - лучше возьмите любую понравившуюся orchestration-тулзу (mcollective, например) и напишите над ней обертку для интеграции в ваш интерфейс.
brutal_lobster: В идеале да, все и сразу ) Правда не для клиентов, а для персонала. Но я пока прикидываю как бы я смог реализовать базовый функционал своими силами. Так сказать каркас.
Sergey Cherepanov: В идеале - нужно опираться на текущие потребности (с прикидкой на будущее, угу). Всё и сразу - очень очень много. И не столько с технической стороны, сколько с организационной. Дорогого стоит перестроить кучу процессов на конкретную систему.