Статья написана для журнала
Сегодня в организации любого размера довольно много компьютерной техники и прочего оборудования. Учет которого, а также прочих связанных затрат, часто входит в обязанности администратора. Применение специализированных систем может значительно упростить эту задачу. В статье рассмотрим решения OCS Inventory NG и GLPI, которые являются хорошей альтернативой проприетарным продуктам.
Возможности OCS Inventory NG и GLPI
Система
Поддерживается синхронизация календаря по протоколам Ical, Webcal.
Функциональность GLPI можно расширить при помощи большого набора плагинов от сторонних разработчиков!
Обе системы русифицированы (с некоторыми оговорками) и распространяются по лицензии GNU GPL.
В GLPI, как и в Kwok Information Server изначально все данные вводятся вручную и сохраняются в базу данных MySQL. Затем администратор при помощи веб-формы может отобрать любую интересующую его информацию. Начиная с версии 0.65 GLPI поддерживает синхронизацию данных с базами OCSNG, причем для этого не требуется ни каких дополнительных модулей. Хотя если в сети уже есть сервер Nagios или Cacti, то данные о компьютерах и прочем оборудовании можно импортировать и от туда.
Основным плюсом OCS Inventory NG является то, что для сбора информации об установленном оборудовании с клиентских компьютеров и серверов используется программа-агент. Все собранные данные, агенты отсылают на сервер управления (management server), в виде XML потока сжатого при помощи Zlib, для передачи используется стандартный протокол HTTP/HTTPS. Сервер OCSNG состоит из 4 компонентов, которые могут быть установленны на одном или нескольких компьютерах:
- база данных — используется для хранения информации, поддерживается MySQL от 4.1;
- служба связи — обеспечивает связь по протоколу HTTP между сервером базы данных и программами-агентами, требуется Apache Web Server 1.3.X/2.X с интегрированным Perl (в Debian/Ubuntu пакет libapache-dbi-perl);
- служба развертывания – предназначен для хранения установочных файлов программ-агентов, подходит любой веб-сервер с поддержкой SSL;
- консоль управления – просмотр собранных данных в браузере, требуется веб-сервер с поддержкой PHP (с активированными ZIP и GD).
Серверная часть 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.
Следует отметить, что одним из недостатков, как данного проекта, так и проекта GLPI является малое количество документации. Хотя, понимая суть процесса, разобраться со всеми ньюансами довольно просто.
Установка 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. Поэтому вместо предложенного
[${APACHE_RUN_USER}] указываем www-data.
Далее производится проверка установленных модулей Perl. И в случае если нужный не будет найден, выдается соответствующее сообщение. Так в зависимостях Ubuntu не указан модуль XML::Entities.
Сhecking for XML::Entities PERL module...
*** Warning: PERL module XML::Entities is not installed !
В репозитарии пакета обеспечивающего функции XML::Entities нет, поэтому его следует установить самостоятельно из CPAN.
$ sudo cpan -i XML::Entities
И повторяем установку. По окончании скрипт предложит инсталлировать консоль администрирования.
В процессе установки в каталоге /etc/apache2/conf.d/ будут созданы конфигурационные файлы для веб-сервера – ocsinventory-server.conf и ocsinventory-reports.conf.
Сами PHP скрипты обеспечивающие функции OCSNG будут скопированы в /usr/share/ocsinventory-reports/ocsreports и подключены к веб-серверу с использованием директивы Alias:
$ 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

После этого все надписи выводятся на русском.
Чтобы корректно выводились названия программ установленных на Windows системах, следует в файле /usr/share/ocsinventory-reports/ocsreports/preferences.php установить в “1” значение «UTF8_DEGREE»:
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
TAG
Ubuntu
Практически сразу после установки агента сведения о новой системе появятся в консоли управления во вкладке “Все компьютеры”.
При возникновении проблем можно запустить агента в режиме отладки:
$ 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 Мгц, но при необходимости данные можно скоректировать вручную. По разным причинам в базу компьютер может быть занесен несколько раз, для удаления дубликатов существует одноименная вкладка в которой одинаковые системы можно отобрать по нескольким характеристикам (имя, МАС-адрес, серийный номер).
Текущая версия агента для Windows 4.0.5.4, архив OCSNG_WINDOWS_AGENT_1.02.zip с установочными файлами можно скачать с сайта проекта. Судя по всему, в нем уже исправлена ошибка, которая приводила к тому, что русские буквы, начиная с ‘х'(0xF4) заменялись английским иксом. Во всяком случае, на тестовых системах все работало правильно. Как вариант можно использовать специальную сборку
Самым простым вариантом установки является запуск исполняемого файла OcsAgentSetup.exe в этом случае будет произведена стандартная установка, по окончании которой агент будет прописан в качестве сервиса. На последнем этапе указываем имя или IP-адрес OCSNG сервера и устанавливаем флажок «Immediatly launch inventory», чтобы сразу же отправить отчет.
Все настройки будут сохранены в файле service.ini, каталога в который установлен агент.
В Vista следует открыть его и добавить параметр /DEBUG в строу запуска:
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 имеет возможность развертывания пакетов и запуска команд записанных в файле (например bat/vbs) на клиентских компьютерах (крое Vista), информация о которых находится в инвентаризационной системе. При необходимости установки одного приложения на большое количество систем такая функциональность очень выручает.
Для начала пакет нужно создать. Переходим в Deployment — Build и заполняем поля New package building. Название пакета должно быть уникальным и желательно отражать его назначение. Параметр Priority определяет порядок размещения пакетов. Что собственно делать с пакетом определяет поле Action. Здесь три возможных значения:
- Store — копировать на целевую систему;
- Execute — копировать и выполнить с командой;
- Launch — копировать и запустить.
Параметры в User notifications позволяют вывести соответствующее предупреждение пользователю, разрешить ему отмену выполнения задачи. Созданный пакет копируется в каталог /var/lib/ocsinventory-reports/download/timestamp
При этом timestamp получается уникальным.
$ ls /var/lib/ocsinventory-reports/download/
1241705351 1241722723
$ ls 1241722723
1241722723-1 info
Файл info содержит настройки пакета, а 1241722723-1 является собственно программой.
Переходим в Deployment — Activate выбираем нужный пакет и нажимаем ссылку Activate. Вводим в появившемся окне адрес вида https://server/download/ при этом timestamp к URL будет добавлен автоматически, нажимаем “Отправить”. В ответ должны получить сообщение:
Package activated, it can now be deployed.
Теперь выбираем компьютер, на которых хотим установить пакет, переходим в меню “Customization”, в самом низу выбираем ссылку “add package”, указываем на пакет и нажимаем в поле “Affect”. Подтверждаем свой выбор. В Customization появится информация о состоянии задачи, а в таблице в Activate будет выводиться статистика.
По умолчанию агент подключается к серверу раз в сутки, тогда и будет произведена установка. Можно ускорить этот процесс, вызвав подключение принудительно, как это показано выше. После подключения агента к серверу состояние пакета должно измениться с WAITING_NOTIFICATIONS на NOTIFIED, а затем Success. Пакет будет сохранен в каталоге C:\Program Files\OCS Inventory Agent\download\TIMESTAMP. А все связанные сообщения можно найти в файле download.log.
Кроме выдачи информации о “своем” компьютере агенты в разных подсетях сканируют сеть в поисках MAC адресов принадлежащих других системам. Такая функция называется “IP discovery” и позволяет находить другие устройства, на которых нельзя установить агента (например, свичи, принтеры и так далее).

Установка 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”, где следует внимательно прочитать и выполнить все рекомендации.
Например, по указанию мастера, параметр memory_limit в php.ini следует установить в значение большее 32.
$ grep -i memory_limit /etc/php5/apache2/php.ini
memory_limit = 128M
Выполняем все требования, проверяем повторно и если все нормально нажимаем Continue.

Теперь собственно установка — вводим данные для доступа к MySQL, название базы данных и все.
Чтобы GLPI автоматически проверял почту, отправлял уведомления следует создать задание для пользователя от имени которого работает веб-сервер (нужен пакет php5-cli):
$ sudo crontab -u www-data -e
*/5 * * * * /usr/bin/php5 /var/www/glpi/front/cron.php &>/dev/null
По умолчанию в GLPI создается четыре учетных записи с разными правами и возможностями (через дробь указан пароль):
- glpi/glpi – администратор;
- tech/tech — технический специалист;
- normal/normal – обычная учетная запись (возможность просмотра данных);
- post-only/post-only – только обращение в службу поддержки;
GLPI поддерживает импорт учетных данных из AD или другой LDAP.
Регистрируемся в системе как glpi. Для локализации интерфейса в “Setting — Select Language” выбираем русский язык, после этого все новые учетные записи будут использовать по умолчанию выбранный язык. Новые пользователи добавляются в одноименной вкладке, там несколько некорректный перевод. Так логину соответствует поле «Имя пользователя», это иногда сбивает с толку. Чтобы не было путаницы можно изменить значение в файле /var/www/glpi/locales/ru_RU.php:
$LANG["setup"][18]="Имя пользователя";
Далее переходим в “Установки (Setup) — Общие (General setup)” и устанавливаем “Активировать режим OCSNG (Activate OCSNG mode)” в “Да”. После этого появится новая вкладка “Режим OCSNG” (OCSNG Mode). Если OCSNG и MySQL установлены на локальной машине, то данные для подключения к OCSNG будут найдены автоматически. Иначе необходимо будет заполнить информацию о сервере OCSNG вручную.

По умолчанию синхронизируется только часть параметров, чтобы в базу данных GLPI были перенесены и компоненты компьютеров, следует разрешить их синхронизацию, установив флажок напротив нужного в положение “Глобальный импорт”.
Кроме этого во вкладке “Инструменты” появится пункт “OCSNG” при помощи имеющихся здесь ссылок можно производить синхронизацию и импортирование компьютеров между OCSNG и GLPI.
Полученные данные появляются во вкладке Оборудование. Здесь несколько подпунктов переход в некоторые из них позволяет получить список некоторых компонентов входящих в компьютер (Мониторы, Принтеры), отдельного оборудования (Картриджи, Телефоны), а также ПО. Импортированные компьютеры доступны в одноименном подпункте. Выбрав компьютер или устройство мы получаем доступ к 12 вкладкам, в которых можно просмотреть и скорректировать данные об оборудовании, сопоставить ответственного, просмотреть заявки, добавить заметки, сделать отметку о выдаче во временное использование, просмотреть историю и так далее. К сожалению на данный момент список импортированных с OCSNG компонентов компьютера написанный на русском выводится нечитаемым текстом.
Пользователей GLPI можно объединить в группы, кроме этого существует более глобальное понятие — Организация. Сразу после установки создается «Основная организация» в которую и будут включены все компоненты. Предусмотрено создание других организаций с установлением подчиненности между ними (структуры). Но работа с организациями реализована неудобно, так перенос техники в другую организацию усложнен и неудобен. Предусмотрен экспорт данных в PDF, CVS и SLK (Symbolic Link).
По умолчанию при экспорте в PDF вместо русских букв выводятся знаки вопросов, это происходит по двум причинам: стандартная функция экспортирует данные в кодировке ISO-8859-1, которую и поддерживает используемый по умолчаннию шрифт. Подсказка была найдена на
$ 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 будет выводится корректно.

Установка плагинов для GLPI производится простой распаковкой в подкаталог glpi/plugins, после чего плагин будет доступен для настройки в меню “Установки – Плагины”. С сайта проекта можно скачать приблизительно 50 самых разнообразных плагинов.
Интерфейсы как OCSNG, так и GLPI достаточно просты для освоения, достаточно потратить полчаса и вы будете хорошо ориентироваться. К сожалению, до конца вопрос локализации так и не решен. Так для Windows в OCSNG неправильно отображаются кириллические наименования установленных программ и компонентов оборудования. Обсуждение всех вопросов по локализации можно найти на форумах проекта
//
А если есть много компутеров с dual boot windowns+linux которые могут перезагружаться в алтернативную ОС в лубой момент — пдойдет ли OCSNG/GLPI для их инвентаризации?
//
2Piavlo
А почему и нет. Только с двойниками как то придется разбираться.
//
Интересно есть ли у кого отыт разбурания с такими двойниками? Я думаю если в системе зарание не предусмотренна такая возможность то работать работать с dualboot будет геморой.
//
В OCSNG есть функция удаления дубликатов, но там же разные ОС со своими приложениями.
//
Интересная статья. Главное, что полезная инфа. Спасибо большое за оригинальную статью!
//
Не ставить просто агента на ту ось, что реже используется.
//
в рамках небольшой рекламы , тут http://forums.ocsinventory-ng.org/viewtopic.php?id=4104 есть решение локализации ocs и GLPI Из минусов: экспорт в pdf в кракозябрах но насколько я понимаю это проблема Cpdf библиотеки, пока до конца не разбирался
//
$ sudo perl -p -i -e ‘s/utf8_decode/utf8_decode_cyr/g’ export.function.php
inc/export.function.php:
наверное правильно будет так:
$ sudo perl -p -i -e ‘s/utf8_decode/utf8_decode_cyr/g’ inc/export.function.php
В ubuntu можно еще и так (sed не во всех дистрах «-i» поддерживает):
sudo sed -i -e ‘s/utf8_decode/utf8_decode_cyr/g’ inc/export.function.php
«Перепостил» кусок этого поста, где речь идет об исправлении экспорта в PDF, себе в блог (GLPI: Экспорт в PDF по русски), а то народ уже порядком задолбал вопросами типа «Как русский в PDF сделать?». Надеюсь не обидишься 🙂
//
Хотелось бы: сменить шрифт с Helvetica на что-нить удобоваримее.
Конвертирую (ttf2pt1 -l cyrillic -A Tahoma.ttf Tahoma), подкидываю (Tahoma.afm, Tahoma.t1a, Tahoma.ttf) в каталог /usr/share/glpi/lib/ezpdf/fonts В файлах /usr/share/glpi/lib/ezpdf/class.pdf.php и /usr/share/glpi/inc/export.function.php меняю Helvetica на Tahoma
НО: имею http://img163.imageshack.us/img163/7528/20091123185248.png
ЧЯДНТ?
//
Я поэтому и отказался от экспериментов. Единственное обозвать Tahoma как Helmetica может выйдет.
//
Попробовал переименовать с Tahoma.ttf -> Helvetica.ttf, повторил конвертирование, поменял в созданых файлах все Tahoma на Helvetica.
Результат не изменился 🙁
Думаю проблема не в имени файла/названии шрифта, а в самом конвертировании. Tahom’у брал из webcore-fonts. Пробовал другие шрифты — ситуация не поменялась: латинские символы отображаются, кирилица — абракадабра.
//
У некоторых не получается. Делают по мануалу и не выходит. Почему так не знаю. У меня заработало тогда, когда случайно скопировал в каталог все три файла Helvetica.afm, Helvetica.t1a и Helvetica.ttf. Вместо одного, который там лежал.
Не один бубен порвал пока все заработало 🙂
//
да я, собсно, всё три и копировал (Tahoma.afm, Tahoma.t1a, Tahoma.ttf). вот только толку ноль. 🙁
grinder, а можешь скрин выложить как у тебя с Helvetic’ой выглядит?
//
А выше ведь все скрины есть.
//
Да и браузер может портить.
//
дело не в браузере, и не в pdf-вьюверах, а в самом шрифте. он _слишком_ «узкий» для удобного чтения.
з.ы.:
для моих глаз вот это http://img257.imageshack.us/img257/1154/20091127110809.png в печатном виде как серпом по…
з.ы.ы.:
> А выше ведь все скрины есть.
не вижу ни одного открытого отчёта в pdf О_о
//
Привет всем, а кто-нибудь смог подружить русский язык с экспортом и сохранением из ПЛАГИНА(ОВ) к примеру Print to PDF?
//
to Alexandr
В GLPI версии 0.71 был плагин экпорта в PDF
Он по умолчанию также не любил кириллицу, но замечательно лечился средством, аналогично тому, как учат русскому сам GLPI
http://angel2s2.blogspot.com/search/label/glpi
На новой версии GLPI для экспорта в PDF используется новый плагин и метода к нему уже не подходит.
Сам мучаюсь….
Как вариант откатиться на старую версию, но это не айс… 🙁
//
Приветствую!
Господа, подскажите пожалуйста:
1. Возможно-ли каким-либо образом авторизовать агентов OCS в системе. Т.е. для того чтобы агент мог посылать информацию требовалось-бы одобрение со стороны сервера
2. Возможна-ли связь между агентом и сервером c шифрованием трафика посредством ssl
По поводу второго вопроса на оф. форуме вроде говорили что думают над этим, но будет-ли это реализовано пока неясно
Все вопросы оттого, что есть желание использовать систему для учета техники нескольких клиентов находящихся вне нашей сети с последующей связкой с glpi
//
На вежливую просьбу импортировать компьютеры из OCSI GLPI ответила «нет новых компьютеров для импорта». После некоторых плясок с переустановкой версий попробовал включить режим ‘DEBUG» в настройках профиля. После этого сразу при входе в Инструментарий-OCSNG в красной строке сообщение типа «пользователю mysql ocs@localhost была показана дуля при соединении». Всё решилось правкой параметра ocs_db_passwd в соответствующей таблице UPDATE `glpi`.`glpi_ocsservers` SET `ocs_db_passwd` = ‘ПАРОЛЬ’ WHERE `glpi_ocsservers`.`id` =1; (это для GLPI 0.78, в 0.72 нужно искать в другом месте)
//
У меня получилось модифицировать новый PDF-плагин, пришлось поковыряться в php и пере(со)брать уйму кириллических шрифтов. Если есть еще необходимость, могу выложить модифицированный плагин где-нибудь в общем доступе
//
to lenz: а поделитесь разработкой;) поставил 0.78 RC3 и пока не нашел ни одного способа чтобы экспорт в PDF с русским дружил.
Спасибо!
//
Замучался уже, подскажите что делать?
(все из выше перечисленного попробовал: выставить права на директории на сервере)
веб морда работает. Но не добавляются машины
вот агент на виндовой машине в лог пишет
HTTP SERVER: Sending prolog query…ERROR: HTTP status code 403
HTTP SERVER: Closing HTTP connection
//
а какая версия плагина? какие изменения были внесены?
в любом случае, имхо, надо выкладывать, системка не плоха — а мелкие шероховатости дорабатываются напильником 🙂
//
file. qip. ru/file/ZoZ9CcjL/glpi-pdftar.html — ссылка на архив, версия 0.6.1
фактически изменения только в папках fonts и inc
//
Кстати, проверял только на 0.72.
В папке font есть прога amf2font.php — для конвертирования шрифтов в какой-то специальный php-формат (файлы с префиксом «php_»)
//
Возникла проблема!ocs_import в glpi установлен. перетягивает все кроме «Программное обеспечение» в базе ocs есть, а в базе glpi в software пусто. подскажите, что делать. кто сталкивался?!
//
2Spanish
Как настроены опции импорта в glpi? у меня в графе «Используйте ПО каталога OCS» стоит «Нет»
//
Скажите можно ли как нибуть в конфиге клиента OCS Inventory Agent прописать что бы информация шла не на один сервер учёта, а на два?
//
Мне кажется проще сделать так, чтобы один сервер собирал все, а второй отбирает то что ему нужно.
//
Может и да, но стоит такая ситуация когда информация должна именно дублироваться на два сервера, причём не зависящих друг от друга.
//
to lenz: Спасибо большое за glpi-pdf!!! Очень выручил!
//
Проблеммы с кодировкой решаются проще:
iconv -f WINDOWS-1251 -t UTF-8 -o russian.txt russian.txt
//
Хай, подскажите пожалуйста, я сейчас нахожусь в Америке , а родители в Донецке, как можно сделать, чтобы они мне звонили дешевле ?
//
Я вижу только один вариант — забрать их к себе в USA. Другие Skype, VoIP и т.п. не катят.
//
Потомкам на память. Чтобы в версии GLPI 0.78 не было проблем с кириллицей при экспорте в PDF
1. Находим …/inc/search.class.php — Везде где видим меняем кодировку с Windows-1252 на Windows-1251
//
Нах такой гемор. Поставить system center и жить счастливо. Если контора не может себе его позволить — валить нах оттуда 🙂
//
Здравствуйте. Версия GLPI 0.80.7 — проблема с кодировкой при выводе в PDF и CSV файлы. Замена windows-1252 на Windows-1251 не помогает.
//
Yuri, я сделал следующее и у меня все заработало (версия аналогичная) .
Первым делам идем: /var/www/glpi/inc/search.class.php и делаем там следующее:
1) Ищем строчку $out=»\»».csv_clean($value).»\»».$CFG_GLPI[«csv_export_delimiter»]; и меняем её на $out=»\»».decodeFromUtf8(csv_clean($value),’cp-1251′).»\»».$CFG_GLPI[«csv_export_delimiter»];
2) Меняем кодировку на CP-1251 при вызове функции decodeFromUTF8 в этом же файле. => сохраняем результат и выходим.
3) Далее идем /var/www/glpi/lib/ezpdf/fonts/ и полностью меняем все файлы на «Скачать можно тут => http://files.mail.ru/VZU6DC » (это шрифты)
На этом все, теперь при экспорте мы имеем нормальный русский текст.
//
Привет! а никто не копал в данную связку глубже? а конкретно в сторону отсылки сообщений о изменении конфигурации уже занесенного в базу ПК по почте (ну допустим заменили оперативку с 4-х гиговой планки на 2-х гиговую в ГЛПИ соответственно изменилась конфигурация и тебе пришло уведомление скажем оборудование заменено) если реализовали, то поделитесь как ? на текущий момент моя версия GLPI 0.83.7 + OCS inventory
//
Сам копаю на тему сообщений об изменении конфигурации.. И с плагинами беда. Видеть их видит, а возможности установить нет.
//
Обновил до новой версии, все отлично, но письма как слать так и не разобрался