LINUX.ORG.RU

CLI-приложения в веб-браузере?..

 


0

3

Здравствуйте.

Не уверен, что точно правильно сформилирую вопрос. Понятно, что при наличии безграничного времени (этого не хватает) и навыков программирования (это в принципе есть) можно написать всё что угодно с нуля. И, по правде говоря, в разных компаниях я натыкался на разные поделки, делающие то, что я опишу с разной эффективностью… Хотя чаще всего для этого используют старый добрый jenkins, который всё-таки не совсем для этого предназначен и штука специфичная.

Есть ли какой-то продукт вроде полуготового конструктора CMS с возможностями расширения, который позволяет запускать произвольные консольные приложения (написанные в принципе на чём угодно), выдающие какой-то выхлоп в stdout/stderr, принимающие параметры из командной строки или из переменных окружения и сохраняющие какой-то результат, допустим, с ошибкой или без завершилось? Платный, бесплатный, закрытый, открытый… я бы все поглядел бегло.

Что-то вроде jenkins/travis, но не столь специализированный, но при этом расширяемый. Чтобы, допустим, программисты могли создавать новые «задачи», которые представляют с собой какой-то сценарий, выполняющийся от нескольких минут до нескольких дней… что добавляло бы новую сущность в неком списке на главной странице. И чтобы история запусков хранилась где-то, разумеется. И отслеживать текущий выхлоп stdout/stderr.

Чтобы это всё выполнялось в кластерном окружении, так вообще шикарно было бы. Допустим, большая подзадача могла бы маленькие создавать и запускать на других узлах… и дожидаться завершения.

Линукс тут при том, что работать на нём всё должно, разумеется.

Из заголовка кажется, что нужен обычный web shell, а по описанию вообще мало чего понятно.

Но плюсану анонимуса, каким-то боком Node-RED подойдёт.

vvn_black ★★★★★ ()
Ответ на: комментарий от BattleCoder

Ну, xterm.js на самом деле довольно «подробная» реализация, скорее всего обеспечит потребности с запасом.

Для работы потребуется «плагин» attach (для подключения вебсокета) и скорее всего fit, чтоб размер терминального окна подкручивать. С автофитом могут быть некоторые косяки.

И ещё...
Не под маковскими браузерами ^W использовать внутри CLI не получится (если оно надо), «продвинутые пользователи» могут ненароком пришибать или перезагружать (^R) окно.
Тебе надо будет влепить кусочек жабоскрипта с listener-ом на «beforeunload» (максимум что можно сделать: показывать диалог «действительно хотите выйти?») и перехватывать ^R с preventDefault.

frob ★★★★★ ()
Ответ на: комментарий от anonymous

Всем известно что у любого редхатовского продукта всегда есть соответствующий открытый проект

https://github.com/ansible/awx

Но документацию и скриншоты по словам Ansible Tower найти проще

alpha ★★★★★ ()