
Учет оборудования с OCS Inventory NG и GLPI |
![]() |
![]() |
![]() |
Автор: Administrator |
09.05.10 19:21 |
Учет оборудования с OCS Inventory NG и GLPI
Сегодня в организации любого размера довольно много компьютерной техники и прочего оборудования. Учет которого, а также прочих связанных затрат, часто входит в обязанности администратора. Применение специализированных систем может значительно упростить эту задачу. В статье рассмотрим решения OCS Inventory NG и GLPI, которые являются хорошей альтернативой проприетарным продуктам. Возможности OCS Inventory NG и GLPIСистема OCS Inventory NG (OCSNG, Open Computers and Software Inventory New Generation) предназначена для инвентаризации компьютеров в локальной сети, комплектующих и программного обеспечения. Также с ее помощью можно удаленно разворачивать программы на рабочих местах и получать информацию о сетевой конфигурации. GLPI (Gestion Libre de Parc Informatique) кроме задач по учету компьютеров и в ходящих в их состав комплектующих, позволяет инвентаризировать прочее оборудование включая расходные материалы (например картриджи), а также организовать службу технической поддержки автоматизируя обработку обращений пользователей. Теперь пользователь вместо того, чтобы бежать или звонить админу, заполняет зайдя по адресу ресурса заявку. Обращения обрабатываются с учетом их важности или в порядке очередности. Администратор выигрывает в двойне – все обращения документируются, и можно спокойно отчитаться перед начальством о проделаной работе и затраченном времени, пользователи по этой же причине перестанут обращаться по мелочам. Не говоря уже о том, что звонки обычно отвлекают от выполнения текущей работы. Также с его помощью можно сформировать базу знаний, которая будет состоять из заметок, статей и ЧаВО, вести учет поставщиков, договоров. Доступно большое количество отчетов (по договорам, финансовая, за год) и статистик (по заявкам, оборудованию, элементам).
Серверная часть OCSNG может быть установлена на компьютер работающий под управлением Windows 2000 Professional/Server, XP Professional Edition и 2003, а также Linux, FreeBSD, OpenBSD, NetBSD, Solaris, IBM AIX и MacOS X. Агент доступен для клиенских и серверных версий Windows от 95 до Server 2008 R2, а также перечисленных Linux (2.4/2.6, x86, x86_64/AMD64, Sparc64, ARM, PowerPC ), MacOS X (10.3 – 10,5), FreeBSD/OpenBSD/NetBSD (x86/Sparc), Solaris 8, 9, 10 (x86/Sparc), IBM AIX (5.1 – 5.3) и HP-UX. Установка OCS Inventory в UbuntuВ середине апреля, после более чем года разработки, вышла новая версия 1.02 OCSNG, о которой и пойдет речь далее. Пакет с OCSNG имеется в репозитариях многих дистрибутивов. Для примера в качестве сервера и клиента выберем Ubuntu 8.04 LTS. Проверяем, что есть в репозитарии Ubuntu. $ sudo apt-cache search ocsinventory ocsinventory-reports - Hardware and software inventory tool (Administration Console) ocsinventory-server - Hardware and software inventory tool (Communication Server) ocsinventory-agent - Hardware and software inventory tool (client) Хотя это не самая актуальная версия на данный момент: $ sudo apt-cache show ocsinventory-server | grep -i version Version: 1.01-3 $ sudo apt-cache show ocsinventory-agent | grep -i version Version: 1:0.0.8-1 Поэтому будем устанавливать, используя исходные тексты. В зависимостях пакета “ocsinventory-server” полученных при помощи “sudo apt-cache depends ocsinventory-server”, указан Apache2 и некоторые модули Perl, утилита для изменения файлов настроек ucf и dbconfig-common. Пакет MySQL указан в качестве необязательных зависимостей, поэтому его устанавливаем отдельно. $ sudo apt-get install mysql-server Команда: $ sudo apt-get build-dep ocsinventory-server В данном случае бесполезна, поэтому устанавливаем все что необходимо вручную: $ sudo apt-get install libapache2-mod-perl2 libdbi-perl libapache-dbi-perl libdbd-mysql-perl libsoap-lite-perl libxml-simple-perl libnet-ip-perl libcompress-zlib-perl php5-gd Скачиваем с сайта проекта OCSNG архив OCSNG_UNIX_SERVER-1.02.tar.gz и устанавливаем: $ tar xzfv OCSNG_UNIX_SERVER-1.02.tar.gz $ cd ./OCSNG_UNIX_SERVER-1.02/ $ sudo ./setup.sh По ходу установки следует ответить на ряд стандартных вопросов: расположение сервера баз данных, исполняемого и конфигурационного файла веб-сервера, пользователь, от имени которого запускается веб-сервер и так далее. В большинстве случаев скрипт сам находит все необходимое и достаточно просто подтвердить параметр. Единственное с чем он не разобрался это с пользователем и группой от имени, которых запускается Apache. Поэтому вместо предложенного Сhecking for XML::Entities PERL module... *** Warning: PERL module XML::Entities is not installed ! В репозитарии пакета обеспечивающего функции XML::Entities нет, поэтому его следует установить самостоятельно из CPAN. $ sudo cpan -i XML::Entities И повторяем установку. По окончании скрипт предложит инсталлировать консоль администрирования. $ cat ocsinventory-reports.conf | grep -i alias # Alias used to put Administration Server static page (typically PHP) outside Alias /ocsreports /usr/share/ocsinventory-reports/ocsreports # Alias to put Deployement package files outside Apache document root directory Alias /download /var/lib/ocsinventory-reports/download Поэтому при необходимости управления доступом все изменения следует производить в упомянутых конфигурационных файлах, иначе назначенные на на корень права не будут наследоваться. $ cat /etc/logrotate.d/ocsinventory-server # Rotate OCS Inventory NG Communication server logs daily # Save 7 days old logs in compressed mode /var/log/ocsinventory-server/*.log { daily rotate 7 compress missingok } По окончании следует перезапустить веб-сервер. $ sudo /etc/init.d/apache2 force-reload Некоторые пакеты, распространяемые при помощи OCSNG, могут иметь размер больше 8 Мб, поэтому чтобы не было проблем с их загрузкой следует установить большее значение переменных post_max_size и upload_max_filesize в файле /etc/php5/apache2/php.ini например в 10 Мб (по умолчанию – 8 и 2 Мб). Этих же установки следует изменить в ocsinventory-reports.conf: php_value post_max_size 10m php_value upload_max_filesize 10m Набираем в браузере http://localhost/ocsreports/install.php и в появившемся окне вводим логин и пароль для доступа к MySQL. По умолчанию в процессе установки для доступа к базе ocsweb будет создана учетная запись “ocs” с паролем “ocs”. Если только доступ к базе не ограничен локальной системой, то в целях безопасности пароль следует изменить. $ mysql -uroot -prootsecret mysql> UPDATE mysql.user SET Password = PASSWORD('ocspasswd') WHERE User = 'ocs'; mysql> FLUSH PRIVILEGES; mysql> exit Новое значение пароля слудет прописать в файле /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php: $_SESSION["PSWD_BASE"]="ocspasswd" И в ocsinventory-server.conf: PerlSetVar OCS_DB_PWD ocspasswd ЛокализацияПереходим на страницу http://localhost/ocsreports/, для регистрации используем логин “admin” с паролем “admin”. Щелкнув здесь же по флагу, можно активировать русский язык интерфейса, но сразу после установки это привело к появлению нечитаемых символов. Единственным материалом по локализации интерфейса OCS Inventory является статья Евгения Бражко (http://eugene-online.blogspot.com/2008/04/ocs-inventory.html), но она относится к версии 1.02RC1, вышедшей в марте 2008 года и многие вопросы которые в ней описаны, в текущей версии уже решены. Так анализ HTML кода страницы показал, что она выдается в нужной кодировке: Интерфейс локализуется при помощи языкового файла russian.txt расположенного в /usr/share/ocsinventory-reports/ocsreports/languages. В меню “Configurations” есть отдельный пункт “Language file” позволяющий его редактировать. Но открыв файл russian.txt в текстовом редакторе поддерживающем СР1251 обнаруживаем только набор нечитаемых символов. Вывод команды file: $ file russian.txt russian.txt: UTF-8 Unicode English text Задает еще больше вопросов. При этом: $ file english.txt english.txt: ASCII English text А первая строка файла, явно указывает на нужную кодировку. $ head -n 1 russian.txt 0 windows-1251 Из этого делаем вывод – что-то не то с самим файлом, поэтому берем аналогичный с RC1 или другого источника, и подменяем его, не забыв установить нужные права доступа. $ sudo chown root:www-data russian.txt Файл локализации OCSNG требует замены После этого все надписи выводятся на русском. define("UTF8_DEGREE", 1 ); // 0 For non utf8 database, 1 for utf8 Далее в файле machine.php, который находится в этом же каталоге правим функцию print_softwares. После установки она будет иметь такой вид: echo "$td3".htmlentities(textDecode($item->PUBLISHER))." $td3".htmlentities(textDecode($item->NAME))." $td3".textDecode($item->VERSION)." $td3".(htmlentities(textDecode($item->COMMENTS))?htmlentities(textDecode($item->COMMENTS)):"N/A")." "; Меняем на: echo "$td3".textDecode($item->PUBLISHER)." $td3".textDecode($item->NAME)." $td3".textDecode($item->VERSION)." $td3".(htmlentities(textDecode($item->COMMENTS))?textDecode($item->COMMENTS):"N/A")." "; После этого список программ установленных на конкретном компьютере будет выводится корректно. Страница в PDF создаваемая при помощи кнопки «Напечатать эту страницу», которая расположена в самом низу, также выглядела корректно. Хотя в общем списке ПО по прежнему будет не читаемый текст. Установка агентаАгент для Windows написан на C++, его можно установить вручную, при помощи logon скрипта или правил GPO. Агент для Linux написан на Perl и С. Для его установки потребуется наличие некоторых модулей Perl (XML и Zlib) и dmidecode (обеспечивает сбор данных из BIOS об оборудовании в соответствии со стандартами SMBIOS/DMI). В Linux агент устанавливается вручную. Сначала рассмотрим этот вариант. $ sudo apt-get install libcompress-zlib-perl libnet-ip-perl libnet-ssleay-perl libwww-perl libxml-simple-perl po-debconf ucf dmidecode pciutils Далее скачиваем и ставим агента: $ tar xzvf OCSNG_UNIX_AGENT-1.02.tar.gz $ cd Ocsinventory-Agent-1.0.1 $ perl Makefile.PL $ make $ sudo make install После ввода последней команды поступит запрос на настройку агента. Do you want to configure the agent Please enter 'y' or 'n'?> [y] Отмечаем “y” и при помощи цифровых клавиш отвечаем на вопросы, где должен располагаться конфигурационный файл: Where do you want to write the configuration file? 0 -> /etc/ocsinventory 1 -> /usr/local/etc/ocsinventory 2 -> /etc/ocsinventory-agent Далее указываем адрес или имя сервера, создаем тэг (с его помощью можно собрать системы в целевую группу, например, по принципу размещения) для агента, активируем задачу для cron, каталог для хранения файлов и так далее. По окончании выдается запрос на отсылку собранных данных о компьютере на сервер: Do you want to send an inventory of this machine? Please enter 'y' or 'n'?> [y] [info] Accountinfo file doesn't exist. I create an empty one. -> Success! В итоге в /var/lib/ocsinventory-agent будет создан подкаталог с файлами содержащими текущую конфигурацию компьютера. Например, в ocsinv.adm содержится тег и название системы под которым она будет видна в консоли управления. $ cat /var/lib/ocsinventory-agent/http\:__localhost_ocsinventory/ocsinv.adm <adm> <accountinfo> <keyname>TAG</keyname> <keyvalue>Ubuntu</keyvalue> </accountinfo> </adm> Практически сразу после установки агента сведения о новой системе появятся в консоли управления во вкладке “Все компьютеры”. $ ocsinventory-agent -l /tmp –debug --server http://localhost/ocsinventory По умолчанию во вкладке “Все компьютеры” выводятся 7 характеристик клиентских машин, но при помощи раскрывающегося списка “Add column” можно добавить еще до 23 поля. Хотя в некоторых случаях замечены ошибки в определении параметров. Так на системе с такими характеристиками: $ dmesg | grep -i processor [ 97.725563] powernow-k8: Found 1 AMD Athlon(tm) 64 X2 Dual Core Processor 3600+ processors (2 cpu cores) (version 2.20.00) [ 0.000000] Detected 2010.408 MHz processor. В консоли OCS Inventory было выведено – 1000 Мгц, но при необходимости данные можно скоректировать вручную. По разным причинам в базу компьютер может быть занесен несколько раз, для удаления дубликатов существует одноименная вкладка в которой одинаковые системы можно отобрать по нескольким характеристикам (имя, МАС-адрес, серийный номер). Miscellaneous= /SERVER:192.168.0.10 /PNUM:80 /DEBUG При изменении оборудования или ПО, агента вызвать принудительно, набрав в командной строке: > "C:\Program Files\OCS Inventory Agent\OCSInventory.exe" /SERVER:ocsng_server /PNUM:80 /NOW Также агента (файл ocsagent.exe являющийся zip архивом) можно импортировать в базу OCSNG, выбрав в вкладке Агент и указав на месторасположения файла. В этом случае он будет доступен с любого компьютера сети. После установки агентов данные автоматически появляются в консоли управления OCSNG Кроме функций сетевой инвентаризации OCSNG имеет возможность развертывания пакетов и запуска команд записанных в файле (например bat/vbs) на клиентских компьютерах (крое Vista), информация о которых находится в инвентаризационной системе. При необходимости установки одного приложения на большое количество систем такая функциональность очень выручает.
Параметры в User notifications позволяют вывести соответствующее предупреждение пользователю, разрешить ему отмену выполнения задачи. Созданный пакет копируется в каталог /var/lib/ocsinventory-reports/download/timestamp $ ls /var/lib/ocsinventory-reports/download/ 1241705351 1241722723 $ ls 1241722723 1241722723-1 info Файл info содержит настройки пакета, а 1241722723-1 является собственно программой. Package activated, it can now be deployed. Теперь выбираем компьютер, на которых хотим установить пакет, переходим в меню “Customization”, в самом низу выбираем ссылку “add package”, указываем на пакет и нажимаем в поле “Affect”. Подтверждаем свой выбор. В Customization появится информация о состоянии задачи, а в таблице в Activate будет выводиться статистика. После всех правок информация об установленном ПО на кириллице выводится корректно Установка GLPIУстановка GLPI достаточно проста. В репозитариях дистрибутивов нужный пакет есть, но его версия обычно сильно отстает. $ sudo apt-cache search glpi glpi - IT and Asset management software $ sudo apt-cache show glpi | grep -i version Version: 0.68.3.2-1 Актуальной на момент написания статьи является версия 0.71.5 вышедшая в январе 2009 года. Кроме этого на странице загрузки доступен предрелиз 0.72-RC2 и срез CVS архива. Для установки просто распаковываем скачанный архив в корневой каталог веб-сервера: $ sudo tar xzvf glpi-0.71.5.tar.gz -C /var/www $ cd /var/www/glpi Устанавливаем для некоторых каталогов владельца и группу-владельца. $ sudo chown www-data:www-data config files files/* inc Далее набираем в браузере http://localhost/glpi выбираем язык (в списке есть русский), принимаем условия GPL, и следуем указаниям мастера установки. Самый главный этап “Проверка окружения на совместимость с GLPI”, где следует внимательно прочитать и выполнить все рекомендации. $ grep -i memory_limit /etc/php5/apache2/php.ini memory_limit = 128M Выполняем все требования, проверяем повторно и если все нормально нажимаем Continue. При установке GLPI следует выполнить все рекомендации программы Теперь собственно установка — вводим данные для доступа к MySQL, название базы данных и все. $ sudo crontab -u www-data -e */5 * * * * /usr/bin/php5 /var/www/glpi/front/cron.php &>/dev/null По умолчанию в GLPI создается четыре учетных записи с разными правами и возможностями (через дробь указан пароль):
GLPI поддерживает импорт учетных данных из AD или другой LDAP. $LANG["setup"][18]="Имя пользователя"; Далее переходим в “Установки (Setup) – Общие (General setup)” и устанавливаем “Активировать режим OCSNG (Activate OCSNG mode)” в “Да”. После этого появится новая вкладка “Режим OCSNG” (OCSNG Mode). Если OCSNG и MySQL установлены на локальной машине, то данные для подключения к OCSNG будут найдены автоматически. Иначе необходимо будет заполнить информацию о сервере OCSNG вручную. Окно активации режима OCSNG По умолчанию синхронизируется только часть параметров, чтобы в базу данных GLPI были перенесены и компоненты компьютеров, следует разрешить их синхронизацию, установив флажок напротив нужного в положение “Глобальный импорт”. $ sudo perl -p -i -e 's/utf8_decode/utf8_decode_cyr/g' export.function.php inc/export.function.php: И добавляем в export.function.php описание самой функции utf8_decode_cyr. function utf8_decode_cyr($value){ return iconv("UTF-8","Windows-1251",$value); } Теперь шрифт. По умолчанию для экспорта используется шрифт Helvetica, его бы я и рекомендовал оставить. Если заменить шрифт другим, его имя придется править не только в двух местах файла export.function.php. $ cat export.function.php | grep -i selectFont $pdf->selectFont(GLPI_ROOT."/lib/ezpdf/fonts/Helvetica.afm"); Но и в 2 файлах находящихся в lib/ezpdf. Теперь шрифт. Для конвертирования TTF шрифта в Postscript type 1 потребуется утилита ttf2pt1. $ sudo apt-get install ttf2pt1 Запускаем. $ ttf2pt1 -l cyrillic -A Helvetica.ttf Helvetica Теперь копируем файлы вместо старых, не забыв подправить права. $ sudo cp -v Helvetica* /var/www/glpi/lib/ezpdf/fonts/ `Helvetica.afm' -> `/var/www/glpi/lib/ezpdf/fonts/Helvetica.afm' `Helvetica.t1a' -> `/var/www/glpi/lib/ezpdf/fonts/Helvetica.t1a' `Helvetica.ttf' -> `/var/www/glpi/lib/ezpdf/fonts/Helvetica.ttf' Исправленный вариант шрифтов. Файл PDF сгенерированный в OCSNG с информацией о системе Установка плагинов для GLPI производится простой распаковкой в подкаталог glpi/plugins, после чего плагин будет доступен для настройки в меню “Установки – Плагины”. С сайта проекта можно скачать приблизительно 50 самых разнообразных плагинов. Интерфейсы как OCSNG, так и GLPI достаточно просты для освоения, достаточно потратить полчаса и вы будете хорошо ориентироваться. К сожалению, до конца вопрос локализации так и не решен. Так для Windows в OCSNG неправильно отображаются кириллические наименования установленных программ и компонентов оборудования. Обсуждение всех вопросов по локализации можно найти на форумах проекта OCSNG и OPENNET, некоторым они помогают у некоторых не получается все решить.
оригинал: http://www.tux.in.ua/articles/1500 дополнение: http://www.synack.ru/articles/x_06_2010_synack_stavim_na_uchet_zhelezo_i_soft |
Последнее обновление 16.10.10 14:08 |
