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

image

В связи с выходом нового серверного дистрибутива Mandriva Enterprise Server 5.1 на OpenNet появилась новость, в которой упоминается платформа Pulse 2, включающая такие функции, как поддержание инвентаризационной базы данных компьютеров, установка и обновление приложений на группе машин, диагностика служб, удаленное управление. Поскольку наша компания сейчас занимается решением указанных задач, то, разумеется, мы решили “пощупать” ее своими руками.

Первое, что бросилось в глаза: корни данной платформы растут из давно и хорошо известного проекта OCS Inventory, который, как и сама Mandriva, родом из Франции. Так, например, в качестве клиентского агента для Linux используется в чистом виде Perl-скрипт от OCS. Windows-агент, похоже, также сделан на основе OCS (жаль, что исходники его не выложены на всеобщее обозрение).

Итак, инновация компании Mandriva кроется в серверной части. Здесь действительно многое сделано по-новому. В качестве web-слоя используется стандартный для Mandriva фреймворк MMC (Mandriva Management Console). Perl-скрипты из OCS, служившие для сбора данных от агентов, заменены на Python’овский сервер инвентаризации. Для управления удаленной установкой пакетов на обслуживаемые компьютеры добавлены компоненты Package Server и планировщик (Scheduler). Для обслуживания удаленных сетей присутствует компонент Proxy, позволяющий экономить сетевой трафик при доставке установочных пакетов.

Для пробного запуска мы взяли образ виртуальной машины VmWare, доступный на сайте Pulse2, и провели пробные инвентаризации Linux, WindowsXP, Vista-систем. Во всех случаях система показала себя работоспособной. Объем передаваемых по сети данных за одну инвентаризацию оказался невелик (от 3Кб для Vista до 40 Кб в Mandriva Linux – это за счет длинного списка всех установленных RPM). Но вот производительность сервера оставила ряд вопросов. На нашем тестовом AMD Athlon 1,2 ГГц с выделенными для виртуальной машины 256 Мб памяти сервер оказался способен обрабатывать каждую следующую инвентаризацию не чаще 1 раза в 50 секунд (при увеличении частоты поступления данных использование памяти сервером возрастает и, рано или поздно, сервер аварийно завершается). Конечно, компьютер явно слабоват, но (на то он и стресс-тест), учитывая, что в БД инвентаризации присутствовало всего 3-4 компьютера, затраты ресурсов могли быть и меньше. Кстати говоря, в Mandriva утверждают, что система может быть использована для инвентаризации 100 000+ компьютеров. Остается только догадываться, какова должна быть мощность центрального сервера в этом случае.

Итак, получив в целом положительный результат на готовом VmWare-образе, пробуем установить на свой сервер. Готовые пакеты присутствуют для систем Mandriva Corporate Server 4, Mandriva Enterprise Server 5, Redhat Enterprise Server 5, Debian Etch и Lenny. Вот как выглядит процесс установки в Debian Lenny:

Добавляем источник в конфиг /etc/apt/sources.list:
# Pulse 2
deb http://pulse2.mandriva.org/pub/pulse2/server/debian lenny stable

Теперь мы можем установить pulse2-inventory-server штатными средствами Debian:

aptitude install pulse2-inventory-server

Для успешной работы сервера инвентаризации необходим mysql:

aptitude install mysql-server

Сервер инвентаризации по умолчанию работает с базой inventory. Ее мы и создадим:

mysqladmin -u root -p create inventory

Создаем пользователя для базы данных. По умолчанию pulse2-inventory-server работает под пользователем mmc и пароль к нему mmc:

cat >user_add.sql
INSERT INTO user VALUES('localhost','mmc',PASSWORD('mmc'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
INSERT INTO db VALUES ('%','inventory','mmc','Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql -u root -p mysql mysqladmin -uroot -p reload

Запускаем сервер:

/usr/sbin/pulse2-inventory-server

Незадача получается. База пустая и сервер не хочет работать. Попытка найти какой-то скрипт для формирования базы на сайте Pulse 2 не приводит к успеху. Возвращаемся к виртуальной машине с готовым Pulse 2. Заходим туда и формируем dump базы из виртуальной машины:

mysqldump -u mmc -p inventory >inventory_dump_19042010.sql

И загружаем его в реальную:

mysql -u mmc -p inventory

Снова запускаем сервер инвентаризации, и теперь уже Победа!

К слову, для других Linux-систем (кроме перечисленных выше) возможна установка из исходников. Поскольку сервер написан на Python, а web-фронтенд - на PHP, то компиляция не требуется. Таким способом нам удалось успешно поставить сервер на Mandriva 2009.0. Но это уже тема для нового поста.

Обсуждение этой статьи на habrahabr.ru