Есть ли стандартные веб-интерфейсы, которые возможно кастомизировать под свои нужды, например для bash скрипта?

Есть некий bash скрипт, точнее сказать целый проект написанный на bash (+не много php)
Основной его функционал заключается в сборке и последующем деплое различных проектов.

Данный скрипт запускается от пользователя на сервере, у которого есть доступ (ssh) на сервера, в которых крутятся проекты. Доступ нужен для деплоя.

Хочется, чтобы деплоить могли разные люди, но при этом давать доступ к пользователю на сервере, от которого идет деплой, не очень секурно, естественно. В таком случае у этих людей будет полный доступ к проектам на продакшне.

Самое лучшее что мне пришло в голову, это сделать некий веб-интерфейс к этому проекту на bash.
Идея в том что у пользователей будет доступ только к конкретным действиям.
Например User1 имеет право делать Деплой в проект Project1.
Он нажимает кнопочку "Деплой", затем идет проверка его прав на это действие, затем запуск bash скриптов с нужными параметрами.
Дейсвия не ограничиваются деплоем и сборкой. Есть еще много всего. Но это сути не меняет.

Сам являюсь системным администратором, хорошие знания bash, perl, базовые php, базовые знания ruby(puppet). Но на них я пишу только системные скрипты. У меня совсем нет опыта веб-разработки, верстки, и дизайнер из меня никудышный. Вот я и хочу взять что-то готовое и кастомизировать это под свои нужды.

1) Есть ли какие-либо решения, которые помогут реализовать данный веб-интерфейс?
2) Возможно есть какие-то похожие реализованные вещи, в которых я бы мог "подсмотреть" как люди делают или как правильно нужно это делать. Буду рад ссылкам.
3) Буду счастлив советам как можно реализовать задачу по другому.

UPD1.
Тут подумал что можно реализовать данную схему через sudo.
Будут пользователи у которых будут права запускать скрипт только с определенными параметрами от имени юзера для деплоя.
То есть например добавим в sudoers такую строку:
User1 ALL = (deploy) NOPASSWD: script -p project1 -a deploy

Если нужно будет разрешить ему деплоить в проект project2 то добавляем еще одну строку:
User1 ALL = (deploy) NOPASSWD: script -p project2 -a deploy


В принципе рабочее решение. Для пользователей конечно не красиво, все через консоль. Но я как админ останусь доволен,что юзер не будет лезть в базу или код на продакшне.
  • Вопрос задан
  • 629 просмотров
Пригласить эксперта
Ответы на вопрос 2
shambler81
@shambler81 Куратор тега Linux
батенька не крутите велосипед.
ping знаете тоже от рута запускаетсяибо имеет доступ до eth0 , а по факту каждый лох узер может его юзать.
Вам хватит вполне себе прав юникс системи
смотрите внимательней.
help.ubuntu.ru/wiki/%D1%81%D1%82%D0%B0%D0%BD%D0%B4...
особенно SUID SGID
Ответ написан
sim3x
@sim3x
3) Буду счастлив советам как можно реализовать задачу по другому.
https://en.wikipedia.org/wiki/Continuous_integration
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы