Яндекс.Метрика

    Песочница

    GLPI + Fusion Inventory

    Понадобилось мне собрать инфу о конфигурации компьютеров в рабочей сети. В качестве базы была выбрана GLPI. Т.к. OCS Inventory уже описывали на хабре и в коментариях к той статье упоминалось про Fusion Inventroy, то его и будем устанавливать.
    Основные задачи:
    1. прикрутить Fusion Inventory к GLPI, без использования OCS Inventory;
    2. скрипт сбора инфы запускать вручную, при необходимости (чтобы в памяти ничего лишнего не висело);
    3. собрать конфигурацию компьютеров, управляющих промышенным оборудованием (они не подключены к сети);

    На сервере уже должен быть установлен и настроен LAMP( в моем случае — это FAMP).

    Устанавливаем GLPI


    # cd /usr/ports/www/glpi; make install clean

    Создаём базу и пользователя (USER и PASSWORD заменить на свои):
    
    # mysqladmin -uroot -p create glpi 
    # mysql -uroot -p -e"GRANT ALL ON glpi.* TO USERNAME@localhost IDENTIFIED BY 'PASSWORD'" glpi
    

    Добавляем в настройки апача (httpd.conf или httpd-vhosts.conf):
    
    Alias /glpi "/usr/local/www/glpi"
    <Directory /usr/local/www/glpi>
    	 AllowOverride Options FileInfo
    </Directory>
    

    Перезагружаем апач:
    # apachectl restart</code>
    Идем на созданный сайт(http://{host.domain}/glpi/) и выбираем язык установки Russian, а дальше там всё понятно.
    
    <h4>Устанавливаем FusionInventory (сервер)</h4>
    Скачиваем  FusionInventory плагин и распаковываем в папку плагинов GLPI:
    <source lang="bash">
    # cd ~
    # fetch http://forge.fusioninventory.org/attachments/download/120/fusioninventory-for-glpi-2.2.2-release.tar.gz
    # cd /usr/local/www/glpi/plugins/
    # rm remove.txt
    # tar -xzvf /root/fusioninventory-for-glpi-2.2.2-release.tar.gz
    

    Проверяем структуру папок, она должна выглядеть так:
    
            |--- glpi
                  |--- plugins
                        |--- fusioninventory
                              |--- fusioninventory
                              |     |--- index.php
                              |     |--- hook.php
                              |     |--- front
                              |     |--- inc
                              |
                              |--- fusininventory
                              |     |--- ...
                              |
                              |--- fusinvsnmp
                              |--- ...
    	etc...
    

    Заходим в GLPI под админским аккаунтом, меню «настройки» -> «дополнения» -> в поле «FusionInventory» -> «обновить/установить» -> «включить». «Устанавливаем», а затем включаем все части плагина в таком порядке:
    1. FusionInventory
    2. FusionInventory INVENTORY
    3. FusionInventory SNMP


    Устанавливаем FusionInventory (клиент)


    Скачиваем и устанавливаем клиент:
    forge.fusioninventory.org/projects/fusioninventory-agent/wiki/Agent_supportedplateforms
    При установке указываем путь к серверу(у Win версии настройки задаются во время установки):
    
    http://server_ip/glpi/plugins/fusioninventory/front/plugin_fusioninventory.communication.php
    

    Если используется DNS, то:
    
    http://glpi.mydomain/plugins/fusioninventory/front/plugin_fusioninventory.communication.php
    

    Для Active Directory:
    
    http://AD_DOMAIN\user:password@serverip/glpi/plugins/fusioninventory/front/plugin_fusioninventory.communication.php
    

    Возможно придётся указать дополнительные настройки (proxy, etc) — чекбокс «Advanced» при установке.
    После установки клиента, заходим в веб интерфейс GLPI -> «Дополнения» -> «FusionInventory» -> «Управление агентами» и смотрим появился ли компьютер в списке.
    Чтобы агент не висел постоянно в памяти, то после установки:

    Windows

    1. Скопировать папку установленного Fusion-Inventory
    2. В ней создать файл save_net.cmd с таким содержанием:

    
    set PATH=%CD%\perl\;%CD%\perl\bin;%PATH%
    perl.exe %CD%\perl\bin\fusioninventory-agent --debug -f --no-wakeonlan --scan-homedirs --logfile=%CD%agent-log.txt --share-dir=%CD%share —server=http://glpi.mydomain/plugins/fusioninventory/front/plugin_fusioninventory.communication.php
    

    Не забываем изменить «glpi.mydomain» на свое имя/ip.
    Для инвентаризации/обновления запускать созданный скрипт, а для сохранения конфигурации компьютера(на котором нет сети)в файл, создаём в папке с Fusion-Inventory каталог «xml» и файл save_local.cmd с таким содержанием:
    
    set PATH=%CD%\perl\;%CD%\perl\bin;%PATH%
    perl.exe %CD%\perl\bin\fusioninventory-agent --debug -f --no-wakeonlan --scan-homedirs --local=%CD%\xml --logfile=%CD%\agent-log.txt --share-dir=%CD%\share
    

    После запуска этого скрипта конфигурация сохранится в каталог «xml». Для импорта конфигурации в базу — заходим в glpi -> «Дополнения» -> «FusionInventory» -> «Import agent XML file» и выбираем нужный файл из папки xml.
    В итоге получим portable версию Fusion Inventory, которую можно запускать с флешки. Главное быть уверенным, что ни у кого нет какой либо живности на компьютере.

    FreeBSD / Linux



    P.S. Если удалить оборудование/компьютер/etc из списка, а потом прислать агентом на сервер информацию о нём, то онa не появиться в соответствующем списке — нужно отменить удаление («Показать удалённые
    объекты» -> «Восстановить»)