Как стать автором
Обновить

Centrix — управление всем и вся

Преамбула


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


Введение в проект


Итак, проект называется Cenrrix. Как он может помочь админу и для чего он вообще создается? Админ-эникейщик ежедневно вполняет массу однообразных действий: настройка учеток для почты, установка и настройка IM-клиента, и т.д. и.п. Такие однообразные действия, естествено, надоедают и очень быстро начинают раздражать. Почему бы не переложить эту работу на плечи наших электронных слуг?
Centrix — система централизованного хранения и управления профилями машин и пользователей.
Вкратце о работе системы. Centrix представляет из себя сервер управления и агент, устанавливаемый на управляемых клиентских машинах. Агент стартует при запуске клиентской машины (либо при входе конкретного пользователя) и подключается к серверу. Затем происходит идентификация агента и сервера друг другу (сертификатами или каким-то другим способом). После этого сервер отправляет агенту набор конфигураций, приписанный этой машине и/или этому пользователю. Наборк конфигураций представляет из себя ряд пар параметр — значение. Получив конфигурацию, агент определяет, каким плагином эта конфигурация обрабатывается и запускает нужный плагин, скармливая ему полученную конфиграцию. Сам плагин уже «знает», как на основании полученных параметров настраивать то или иное ПО.
Таким образом, сама система абстрагируется от операционной системы и от ПО, которое требуется админить, перекладывая эту задачу на свои плагины. То есть, реально создать реализации под различные операционки и плагины для самого разообразного ПО. Трудности видятся в том, что далеко не все ПО предоставляет программные интерфейсы для настройки. В Unix и подобных системах задача проще, т.к. конфигурирование происходит либо через конфиг-файлы, либо посредством консольных команд. В Windows сложнее, но во многом поможет реестр. В любом случае, эта проблема полностью перекладывается на разработчиков плагинов.

С точки зрения админа


Для админа работа с ситемой будет выглядеть просто. Админ запускает консоль управления, специальный инструмент для системы и вводит команды. Команды включают в себя управление конфигурациями, профилями, группами и пользователями. каждая конфигурация включает в себя параметры для определенного ПО, нпаример Outlook Express. Профиль может состоять из одной или более конфигураций. По логике можно понять. что пользователи могут включатсь в одну или более групп. И каждому пользователю или группе можно привязать как отдельные конфигурации, так и профили.
Что нам это дает? Например, есть группа пользователей, которым по работе требуется электронная почта. Мы, как админ, заводим группу MailUsers, создаем для нее конфигурацию с настройками для Outlook Express, где прописываем серверы, порты, протоколы параметры аутентификации — все, кроме имени,, логина и пароля. Теперь, чтобы дать пользователю доступ к почте, мы включаем его в созданную группу (на этом этапе пользователь в свой кумулятивный профиль получает все параметры из профиля группы, в которую входит) и создаем в его собственном профиле конфигурацию для Outlook Express, где указываем только недостающие личные параметры — имя, адрес, логин, пароль. Все. Теперь, если вдруг сменится какойто глобальный параметр у почтового сервера (например решили включить SSL), админу не придется бегать по всему офису и ставить всем галочку. Достаточно будет в консоли управления поправить профиль группы MailUsers, а все остальное сделает Centrix.

Иерархия системы


Поскольку сеть предприятия может быть очень большой и разветвтленной а большое количество сегментов, имеет смысл сделать шаги для разгрузки межсетевых каналов связи и просто для повышения надежности системы. Для этого в системе предусмотрена иерархическая структура серверов. Во главе сети Centrix стоит центральный сервер, реализующй центральное хранилище конфигураций (режим сервера Master).
Любой сегмент сети может иметь свой собственный сервер Centrix, работающий в режме Relay и кеширующий данные о конфигурациях. Такм образом разгружается канал связи между этим сегментом и главной сетью конторы. Все изменения, вносимые админом и касающиеся машин в локальном сегменте, автоматически реплицируются на локальный релей.
Администратор системы может подключиться к любому скеерверу сети и поизводить необходимые действия — нет необзодимости подключаться к центральному серверу. В случае. если связь с центральным серверо не работает, а админ в это время производит какието действия, они станут актуальными в данном сегменте и будут реплицированы на центральынй сервер после восстановления связи. В этом месте может возникунть конфликт, если другой админ за время отсутствия связи правил те же конфигураци. В таком случае актуальными будут считаться те изменения. которые были сделаны позже.

Дополнительный функционал


Основной задачей системы задумывалось удаленное управление настройками ПО на парке машин. Но в качестве логичного расширения были добавлены еще две задачи:
  • Мониторинг событий на управлляемых машинах. — особый набор плагинов, которые запускаются сразу при старте агента и генерируют сообщения о событиях. Эти сообщения передаются агенту, который в свою очередь передает их в сеть системы, откуда они попадают на центральный сервер. На сервере эти сообщения попадают в обработчик событий, которым управляют описанные админом правила. Т.е. можно либо сгенерировать команду для системы, положить данные в базу для статистики и т.п.
  • Удаленный шелл — админ может выбрать в консоли несколько машин по какомуто шаблону и отправить им всем команду. Но команду не на конфигурирование чегото,. а просто какоето разовое управляющее действие с возможным обратным ответом (например выплонитьп ерезагрузку на определенных машинах)

Эти функции так же выполняются внешними плагинами и могут быть абсолютно любыми.

Состояние проекта на текущий момент


Проект находится в стадии сбора идей и продумывания реализации. По мере продумывания, кое-что уже реализуем. Буду рад, если кто-то со стороны тож заинтересуется нашими разработками :)
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.