Рекомендуемый язык программирования для управления сервером linux и интеграции веб-интерфейса

Я заинтересован в создании собственного веб-интерфейса для облегчения некоторых задач управления, с которыми я сталкиваюсь при администрировании многих серверов; Подумайте о каноническом Пейзаж. Это означает такие вещи, как одновременное применение обновлений пакетов на разных серверах, возможно, установка собственного.deb (я использую ubuntu/debian.) Просмотр журналов сервера, выполнение пользовательских сценариев, просмотр информации о состоянии всех моих серверов. Я надеюсь, что смогу повторно использовать существующие инструменты командной строки вместо того, чтобы переписывать одни и те же операции на другом языке.

Я действительно хочу разработать что-то, что позволило бы мне продолжить управление на уровне ssh, но предлагает мощь веб-интерфейса для простого применения тех же самых изменений инфраструктуры. Они не должны быть взаимоисключающими.

Какие рекомендуемые языки программирования использовать для разработки такого рода и привязки его к веб-интерфейсу? Почему вы рекомендуете язык (и)?

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

Не стесняйтесь рекомендовать любые существующие проекты, которые уже интегрируют управление многими системами в единый веб-интерфейс, кроме Landscape (не бесплатно), Ebox (центр управления ebox не бесплатный) и webmin (мне это не нравится, кажется неуклюжим и делает плохо интегрируется с "способом Debian" для поддержки сервера, imo. Кроме того, управляет только одна система.)

Спасибо за любые идеи!

Обновить:

Я не хочу заново изобретать колесо управления системами, я просто хочу "склеить" множество существующих и превосходных инструментов вместе, где это возможно и уместно; Вот почему мне интересно, какие языки могут хорошо взаимодействовать с уже существующими инструментами командной строки, в то же время делая их управляемыми с помощью веб-интерфейса.

4 ответа

Python (безусловно) - лучший универсальный язык для такого рода вещей. Он кроссплатформенный и в настоящее время используется для всего, от 3D-игр до веб-приложений. Потратив время на обучение, вы получите очень портативный навык. Python также имеет очень чистый синтаксис и легко усваивает основы.

Ответ Kneejerk - поддержать идеи 3dinfluence о том, что то, что вы хотите, уже изобретено.

Если вы действительно хотите разрабатывать, а не создавать еще один веб-интерфейс управления, почему бы не внести свой вклад в Webmin и написать лучший интерфейс? Или плагин "Debian", который работает так, как вы хотите?

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

Я бы повторил то, что другие люди говорят здесь. Используйте существующие инструменты, а затем напишите немного клея между ними, если хотите. Я использую Zabbix (раньше был Zenoss) для мониторинга, Bcfg2 с Subversion для управления конфигурацией и Trac для создания билетов и документации.

Я часто "связываю все это" в Trac, потому что у него отличный API для расширения интерфейса. Я написал плагины, которые позволяют легко создавать перекрестные ссылки (поэтому, если я упомяну сервер в билете Trac, он автоматически ссылается, например, на страницу статуса Zenoss).

Я использую Python для всего моего связующего кода, потому что Zenoss, Bcfg2 и Trac - это все Python, а Zabbix имеет Python API.

Надеюсь, это поможет!

Хорошо, с чего начать.

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

Preseeding - это способ предварительной настройки новой установки в Debian / Ubuntu. Вы также можете использовать кикстарт, но предпросмотр - это способ сделать это в Debian. Вы можете настроить это так, чтобы у вас был легко развертываемый образ базовой системы.

Марионетка для настройки и управления изменениями. Это позволяет вам централизованно контролировать, какие пакеты установлены и как они настроены для всех ваших серверов в зависимости от ролей сервера.

Nagios, Icinga, Munin и т. Д. Для мониторинга вашего хоста, сервисов и инфраструктуры. Я также рекомендую Cacti для мониторинга использования.

Настройте центральный сервер системного журнала, затем используйте Epylog или SEC для корреляции событий и оповещения. Также взгляните на осьминога для мониторинга журнала.

Другие вопросы по тегам