Есть некий
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
В принципе рабочее решение. Для пользователей конечно не красиво, все через консоль. Но я как админ останусь доволен,что юзер не будет лезть в базу или код на продакшне.