У меня есть много сценариев, которые я использую для управления многосерверной инфраструктурой. Некоторые из этих сценариев требуют доступа с правами root, некоторые требуют доступа к базам данных, и большинство из них основаны на perl. Я хотел бы преобразовать все эти скрипты в очень простые веб-сервисы, которые могут выполняться из разных приложений. Эти веб-службы будут принимать регулярные входные данные запроса и будут выводить json в результате выполнения. Я думаю, что мне следует установить простой диспетчер Perl, назвать его action
, который будет выполнять регистрацию, проверку учетных данных и выполнение этих простых сценариев. Что-то вроде:
http://host/action/update-dns?server=www.google.com&ip=192.168.1.1
Это вызовет Perl-драйвер action
, который, в свою очередь, вызовет сценарий update-dns
с соответствующими параметрами (возможно, каким-то образом очищенным) и вернет соответствующий ответ json. Я хотел бы, чтобы эта инфраструктура имела следующие атрибуты:
- Все скрипты находятся в одном месте. Если новый сценарий пропущен, он автоматически становится вызываемым.
- Все сценарии должны иметь некоторую форму манифеста, которая описывает, кто может вызывать его (принадлежащий к какой-то группе ldap), какие параметры он принимает, каков ответ и т. Д. Чтобы это само объяснилось.
- Все сценарии регистрируются с точки зрения того, кто что сделал и каков был ответ.
- Было бы замечательно, если бы в командной строке был способ сделать что-то вроде
# action update-dns --server=www.google.com --up=192.168.1.1
Нужно ли начинать это с нуля, или уже есть что-то, на что я могу снова положиться?