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