пятница, апреля 18, 2008

среда, апреля 16, 2008

Инвентаризация компьютерной и оргтехники. OCS Inventory.

Итак, продолжаем разговор об инвентаризации компьютерной техники.
OCS Inventory – система инвентаризации компьютеров в сети, установленного на них оборудования и программного обеспечения. Так же позволяет удаленно настраивать программное обеспечение рабочих мест. Работает под всеми операционными системами.

Архитектура системы

Система OCS Inventory NG использует программу агента, которая выполняется на инспектеруемом оборудовании и передает информацию на центральный сервер. Управление программами-агентами выполняется так же с центрального центрального сервера. Централый сервер системы позволяет не только собирать информаци об инвинтаризируемом обоурдовании, но и частично управлять инспектируемыми компьютерами.

Связь между сервером и инспектируемым оборудованием происходит через HTTP/HTTPS протоколы. Вся передаваемая информация сжимается для уменьшения сетевого трафика.

Инсталляция программы-агента может быть произведена несколькими способами:
  • С помощью logon скрипта или правил GPO в Windows сетях.
  • В Linux программу-агента необходимо установить самостоятельно.
Центральный сервер управления содержит 4 главных компонента:
  • Сервер базы данных, для хранения информации о инвинтаризируемом оборудовании.
  • Коммуникационный сервер, осуществяющий связь с сервером базы данных и программами-агентами на инвентаризируемом оборудовании.
  • Сервер развертывания, для создания пекетов установки программ-агентов.
  • Консоль управления, которая позволяет производить просмотр информации об инвентаризируемом оборудовании через Интернет браузер.
Распространяется система по лицензии GPL v2 и является Open Source проектом.
Источник: www.oscc.ru

Скачать систему:
Следующие пакеты отсутствуют в Gutsy, но уже есть в Hardy. Несмотря на это их можно скачать и установить в Ubuntu 7.10.

Предварительно следует установить следующие пакеты:
$ sudo apt-get install libapache-dbi-perl libdbi-perl libdbd-mysql-perl libsoap-lite-perl libxml-simple-perl libnet-ip-perl libcompress-zlib-perl php5-gd
и модуль XML::Entities, которого в репозитории нет
$ sudo cpan -i XML::Entities

$ wget http://archive.ubuntu.com/ubuntu/pool/universe/o/ocsinventory-server/ocsinventory-reports_1.01-3_all.deb
$ wget http://archive.ubuntu.com/ubuntu/pool/universe/o/ocsinventory-server/ocsinventory-server_1.01-3_all.deb
$ sudo dpkg -i ocsinventory-server_1.01-3_all.deb
$ sudo dpkg -i ocsinventory-reports_1.01-3_all.deb
Как видите, в репозитории находится стабильная версия системы годичной давности. Я же буду рассматривать установку и настройку последней на текущий момент версии 1.02 RC1. При этом установка дополнительных пакетов и модуля XML::Entities не отменяется - они нужны.

Скачиваем файл OCSNG_LINUX_SERVER_1.02_RC1.tar.gz и распаковываем его. Проблемы начинаются уже на этапе работы инсталятора. Поэтому, перед тем как запустить setup.sh, открываем его и вносим следующие изменения:

строка 1114
- chown -R root:$APACHE_GROUP $ADM_SERVER_STATIC_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1
+ chown -R root:$APACHE_GROUP $ADM_SERVER_VAR_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1
строка 1123
- chmod -R go-w $ADM_SERVER_STATIC_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1
+ chmod -R go-w $ADM_SERVER_VAR_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1
строка 1132
- chmod g+w $ADM_SERVER_STATIC_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1
+ chmod g+w $ADM_SERVER_VAR_DIR/$ADM_SERVER_VAR_IPD_DIR >> $SETUP_LOG 2>&1

Далее, необходимо для таблиц files и tags принудительно прописать в sql скрипте создания базы (OCSNG_UNIX_SERVER_1.02_RC1/ocsreports/files/ocsbase.sql) кодировку latin1 (строка 143 и 468):
) ENGINE=MYISAM DEFAULT CHARSET=latin1;

Теперь можно запускать setup.sh.
На все вопросы просто жмём клавишу ввода вплоть до окончания установки.

После успешной установки перезапускаем веб-сервер:
$ sudo /etc/init.d/apache2 restart
Теперь запускаем браузер и в адресной строке набираем http://имя_сервера/ocsreports/install.php и вводим данные для создания базы данных:
   MySql login: root
MySql password: пароль root'а для MySQL
MySql HostName: localhost
Создание базы ocsweb с таблицами должно пройти без проблем.
Затем создаём любым удобным способом пользователя ocs и даем ему права на базу ocsweb.

Меняем в файле /usr/share/ocsinventory-server/ocsreports/dbconfig.inc.php пароль для доступа к базе.

В браузере набираем http://имя_сервера/ocsreports и попадаем на страницу авторизации. При необходимости выбираем русский язык (флажки в правом верхнем углу). Пользователь: admin, пароль: admin.

На этом установку можно считать оконченной.

Теперь решаем проблемы с отображением русских символов.

В файле /usr/share/ocsinventory-server/ocsreports/preferences.php в строке 21:
- define("UTF8_DEGREE", 0 );  // 0 For non utf8 database, 1 for utf8
+ define("UTF8_DEGREE", 1 ); // 0 For non utf8 database, 1 for utf8

В файлах /usr/share/ocsinventory-server/ocsreports/group_show.php, header.php и machine.php меняем charset=ISO-8859-1 на charset=windows-1251 (строки 116, 49 и 90 соответственно).

При просмотре через www неправильно отображаются русские названия программ. Открываем для редактирования
/usr/share/ocsinventory-server/ocsreports/machine.php и правим function print_softwares($systemid) начиная со строки 606:

до
echo "$td3".htmlentities(textDecode($item->PUBLISHER))."</td>
$td3".htmlentities(textDecode($item->NAME))." </td>
$td3".textDecode($item->VERSION)." </td>
$td3".(htmlentities(textDecode($item->COMMENTS))?htmlentities(textDecode($item->COMMENTS)):"N/A")." </td>";
после
echo "$td3".textDecode($item->PUBLISHER)."</td>
$td3".textDecode($item->NAME)." </td>
$td3".textDecode($item->VERSION)." </td>
$td3".(htmlentities(textDecode($item->COMMENTS))?textDecode($item->COMMENTS):"N/A")." </td>";

Для отображения на главной странице имен пользователей на русском языке в файле preferences.php следует внести изменения в строку 763:
- echo $item[$chmp]."</span></a></font></td>\n";
+ echo textDecode($item[$chmp])."</span></a></font></td>\n";

С серверной частью вроде бы всё. Переходим к клиентской.

Установка агента в Ubuntu:
$ sudo apt-get install ocsinventory-agent
Запуск:
$ sudo ocsinv
В системе (в агенте сбора информации для Windows) имеется проблема с кодировкой (малые русские буквы, начиная с 'х'(0xF4 или 244). Т. е. буквы 'хцчшщъыьэюя' преобразовываются в символ английского языка 'x' (0x78 или 120). Проблема решается заменой файлов после установки агента файлами из архива http://ocsinventory.narod.ru/agentWinOcs.rar (спасибо Ивану Перевалову за сборку!).


Для тех, кого вышеприведенные операции c кодом приводят в ужас или навевают тоску (что вероятнее :-), выкладываю тарбол со всеми описанными исправлениями. Вам остаётся только распаковать его и установить – OCSNG_UNIX_SERVER_1.02_RC1_RU.tar.gz.


При подготовке материала использовались некоторые решения с форума http://www.opennet.ru/openforum/vsluhforumID3/14092.html. Большое спасибо их авторам!

В следующий раз рассмотрим процесс интеграции GLPI и OCS Inventory.

понедельник, апреля 14, 2008

Инвентаризация компьютерной и оргтехники

На днях совершенно случайно наткнулся на интересную программу.
GLPI - Система инвентаризации компьютерной и оргтехники.
Проект предназначен для работы с базой данных IT и телекоммуникационного оборудования, установленного на предприятии. Также имеется возможность ведения учета расходных материалов и организации службы технической поддержки по расписанию и по заявкам пользователей. GLPI русифицирована, создана на PHP и использует СУБД MySQL, лицензия GPL.

При использовании совместно с продуктом OCS-Inventory возможно создание максимально автоматизированной системы инвентаризации. OCS-Inventory основан на распределяемых модулях, устанавливаемых на инвентаризируемые машины, которые отсылают подробную информацию о системе и подключенных устройствах в выделенную базу данных.
Источник: OpenNET
Об OCS-Inventory поговорим в следующий раз, а сейчас рассмотрим процесс установки GLPI.

Пакет можно установить из репозитория:
$ sudo apt-get install glpi
однако там устаревшая версия системы (0.68.3-2 почти годичной давности). На сайте доступна версия 0.70.2, которую берём здесь.
Полученный тарбол распаковываем, например, в /var/www
$ sudo tar xvfz glpi-0.70.2.tar.gz -C /var/www
выставляем для некоторых папок права на запись для веб-сервера
$ cd /var/www/glpi
$ sudo chown www-data:root config files files/* inc
Теперь в браузере набираем http://адрес_сервера/glpi - запускается мастер настройки в котором прописываем сервер базы данных (обычно localhost), пользователя имеющего доступ к базе и пароль для него. Программа сама создает базу и сразу готова к работе.




P.S. Уважаемые читатели! Большая просьба – проголосуйте за фотографию моего сына здесь (фотоконкурс "Хорошие дети"
от журнала "Хорошие родители"). Заранее спасибо всем проголосовавшим!