Я заинтересован в создании собственного веб-интерфейса для облегчения некоторых задач управления, с которыми я сталкиваюсь при администрировании множества серверов; подумайте о каноническом ландшафте. Это означает выполнение таких действий, как одновременное применение обновлений пакетов на серверах, возможно, установка пользовательского .deb (я использую ubuntu / debian). Просмотр журналов сервера, выполнение пользовательских сценариев, просмотр информации о состоянии для всех моих серверов. Я надеюсь, что смогу повторно использовать существующие инструменты командной строки вместо того, чтобы самому переписывать одни и те же операции на другом языке.
Я действительно хочу разработать что-то, что позволит мне продолжать управлять на уровне ssh, но предлагает мощь веб-интерфейса для легкого применения тех же изменений в инфраструктуре. Они не должны быть взаимоисключающими.
Какие языки программирования рекомендуется использовать для разработки такого рода и привязки их к веб-интерфейсу? Почему вы рекомендуете язык (и), который вы предпочитаете?
Я не опытный программист, но рассматриваю это как возможность избавиться от некоторых из моих собственных проблем, а также стать лучшим программистом. Меня не волнует, что один язык сложнее другого, но меня больше интересует выбор лучших инструментов для работы с самого начала.
Не стесняйтесь рекомендовать любые существующие проекты, которые уже интегрируют управление многими системами в единый сплоченный веб-интерфейс, за исключением ландшафта (не бесплатно), Ebox (центр управления ebox не бесплатный) и webmin (мне это не нравится, кажется неуклюжий и плохо интегрируется с "debian способом" обслуживания сервера, имо. Кроме того, управляет только одной системой.)
Спасибо за любые идеи!
Обновление:
Я не собираюсь изобретать колесо системного управления, я просто хочу «склеить» множество уже существующих и отличных инструментов, где это возможно и целесообразно; вот почему мне интересно, какие языки могут хорошо взаимодействовать с уже существующими инструментами командной строки, делая их управляемыми с помощью веб-интерфейса.
Python (безусловно) является лучшим всесторонним языком для этого типа материала. Это является межплатформенным и используется для всего от 3D игр до веб-приложений в наше время. Инвестирование времени, изучая это даст Вам очень портативный навык. Python также имеет очень чистый синтаксис и легкий взять основы.
Ответ коленного рефлекса должен поддерживать 3dinfluence's идеи, что вещь, которую Вы хотите, была уже изобретена.
Если Вы действительно хотите разработать, вместо того, чтобы создать еще один веб-Интерфейс управления, почему бы не способствовать Webmin и записать лучший интерфейс? Или плагин "Debian", который работает способ, которым Вы хотите?
Я никогда не предлагал бы, чтобы кто-то не способствовал среде с открытым исходным кодом, но энергия, которую Вы предлагаете, могла быть настолько более полезна для существующего проекта, который нуждается в помощи.
Я повторил бы то, что другие люди говорят здесь. Используйте существующие инструменты и затем запишите немного связующего звена между ними, если Вы хотите. Я использую Zabbix (раньше был Zenoss) для контроля, Bcfg2 с Подверсией для управления конфигурацией и Trac для покупки билетов и документации.
Я часто "связываю все это" в Trac, потому что это имеет превосходный API для расширения интерфейса. Я записал плагины, которые позволяют легкие перекрестные ссылки (поэтому, если я упоминаю сервер в билете Trac, они автоматически связываются со страницей состояния Zenoss, например).
Я использую Python для всего моего кода связующего звена, потому что Zenoss, Bcfg2 и Trac является весь Python, и Zabbix имеет API Python.
Надежда, которая помогает!
Хорошо, где запустить здесь.
Вы пытаетесь поместить набор вещей в единственный монолитный интерфейс. Ничто неправильно с этим, но нет многих проектов, которые решают все эти проблемы вполне хорошо самостоятельно, которые можно хотеть изучить прежде, чем записать что-то собственной разработки.
Предварительный отбор является путем к пред, настраивают новую установку на Debian/Ubuntu. Можно также использовать, запускают, но предварительным отбором является Debian способ сделать это. Можно настроить это так, чтобы у Вас был легко развертываемый основной образ системы.
Марионетка для управления конфигурацией и управления изменениями. Это позволяет Вам централизованно управлять тем, какие пакеты установлены и как они настроены через все Ваше различное на основе ролей сервера.
Nagios, Icinga, Munin, и т.д. для контроля Вашего хоста, сервисов и инфраструктуры. Я также рекомендую Кактусы для контроля использования.
Настройте центральный сервер системного журнала, затем используют Epylog или SEC для корреляции событий и предупреждения. Также взгляните на octopussy для контроля журнала.