Встроенный агент fusioninventory-agent в WTware
Встроенный агент fusioninventory-agent в WTware
Добрый день!
Есть GLPI, это единственная ITSM-система, которая гарантирует управление многоуровневыми IT инфраструктурами, которые содержат миллионы активов. С GLPI вы можете сегментировать объекты в соответствии с административными директивами и разрешенными расходами. Хотелось бы увидеть интегрированный агент fusioninventory в WTware для инвентаризации.
Есть GLPI, это единственная ITSM-система, которая гарантирует управление многоуровневыми IT инфраструктурами, которые содержат миллионы активов. С GLPI вы можете сегментировать объекты в соответствии с административными директивами и разрешенными расходами. Хотелось бы увидеть интегрированный агент fusioninventory в WTware для инвентаризации.
Re: Встроенный агент fusioninventory-agent в WTware
поддержу ... надо
-
aka
- Разработчик

- Сообщения: 12258
- Зарегистрирован: Ср окт 01, 2003 12:06 am
- Откуда: Роcсия, Тольятти
- Контактная информация:
Re: Встроенный агент fusioninventory-agent в WTware
Я могу под втварью запустить perl.
Я скачал glpi-agent_1.19-1_all.deb. Перепаковал с перлом под втварь.
Могу под втварью запустить glpi-inventory (выдаст длинную простыню текста) и glpi-agent (ругнётся что " non-existing file /etc/glpi-agent/agent.cfg").
Что дальше? Это уже можно отдавать вам для опытов?
PS: минимальная втварь чтобы запустить RDP клиента (ядро linux, библиотеки, драйвера железа, собственно втварь) - около 15Мб.
Минимальный интерпретатор perl, чтобы под втвраью запустить написанное на перле "Hello World" - 2Мб в зипе.
Полный комплект перловых библиотек, нужный чтобы заработали glpi-agent и glpi-inventory - 53Мб в зипе.
Чтобы описать железо, им нужно в три раза больше объёма, чем втвари нужно чтобы на этом железе запустить операционную систему, поднять драйвера, сеть, графику и RDP клиента.
Я скачал glpi-agent_1.19-1_all.deb. Перепаковал с перлом под втварь.
Могу под втварью запустить glpi-inventory (выдаст длинную простыню текста) и glpi-agent (ругнётся что " non-existing file /etc/glpi-agent/agent.cfg").
Что дальше? Это уже можно отдавать вам для опытов?
PS: минимальная втварь чтобы запустить RDP клиента (ядро linux, библиотеки, драйвера железа, собственно втварь) - около 15Мб.
Минимальный интерпретатор perl, чтобы под втвраью запустить написанное на перле "Hello World" - 2Мб в зипе.
Полный комплект перловых библиотек, нужный чтобы заработали glpi-agent и glpi-inventory - 53Мб в зипе.
Чтобы описать железо, им нужно в три раза больше объёма, чем втвари нужно чтобы на этом железе запустить операционную систему, поднять драйвера, сеть, графику и RDP клиента.
Re: Встроенный агент fusioninventory-agent в WTware
Добрый день!
Я понимаю, что увеличивается трафик загрузки, да и сам агент некисло грузит систему когда собирает информацию, может оно все м и не надо, сделать как допопцию загрузки? agent.cfg я думаю можно будет подгружать позже.
Конечно давайте попробуем
Я понимаю, что увеличивается трафик загрузки, да и сам агент некисло грузит систему когда собирает информацию, может оно все м и не надо, сделать как допопцию загрузки? agent.cfg я думаю можно будет подгружать позже.
Конечно давайте попробуем
-
aka
- Разработчик

- Сообщения: 12258
- Зарегистрирован: Ср окт 01, 2003 12:06 am
- Откуда: Роcсия, Тольятти
- Контактная информация:
Re: Встроенный агент fusioninventory-agent в WTware
0. Проверять на терминале с UEFI. Мышь на терминале вправо вниз, и во всплывающем окошке втвари после версии втвари должно быть написано /UEFI.
1. Скачать: https://wtware.com/testing/202609212227 ... 260921.zip
2. Записать в Everyone если конфиг качается по сети. Или через веб-интерфейс терминала в /configs на загрузочном диске, если загрузка с диска и конфиг локальный.
3. В конфиг терминала:
extra = glpi-20260921, telnetd
4. Перезагрузить терминал. Найти в логе терминала строку:
[ EXTRA] [ x.xxxxxx] Hello, World!
Это пример, как автоматизировать когда что-то полезное получится. В корне зипа скрипт runme.
5. На другом компьютере:
telnet ip-адрес-терминала
Именно telnet, не ssh.
Будет командная строка терминала. Из командной строки можно запустить:
/usr/bin/glpi-inventory
Оно выдаст простыню текста. В этой простыне я не вижу ничего полезного. Но такая же бесполезная простыня у меня печатается и на моём Debian. Можно запустить:
/usr/bin/glpi-inventory > /tmp/logs/openvpn.log
И достать простыню из лога терминала.
Команда:
/usr/bin/glpi-agent
Ругается что нет /etc/glpi-agent/agent.cfg. Можно в зипе сделать каталог /etc/glpi-agent и положить свой конфиг в зип.\
Расскажи, что из этого получилось.
1. Скачать: https://wtware.com/testing/202609212227 ... 260921.zip
2. Записать в Everyone если конфиг качается по сети. Или через веб-интерфейс терминала в /configs на загрузочном диске, если загрузка с диска и конфиг локальный.
3. В конфиг терминала:
extra = glpi-20260921, telnetd
4. Перезагрузить терминал. Найти в логе терминала строку:
[ EXTRA] [ x.xxxxxx] Hello, World!
Это пример, как автоматизировать когда что-то полезное получится. В корне зипа скрипт runme.
5. На другом компьютере:
telnet ip-адрес-терминала
Именно telnet, не ssh.
Будет командная строка терминала. Из командной строки можно запустить:
/usr/bin/glpi-inventory
Оно выдаст простыню текста. В этой простыне я не вижу ничего полезного. Но такая же бесполезная простыня у меня печатается и на моём Debian. Можно запустить:
/usr/bin/glpi-inventory > /tmp/logs/openvpn.log
И достать простыню из лога терминала.
Команда:
/usr/bin/glpi-agent
Ругается что нет /etc/glpi-agent/agent.cfg. Можно в зипе сделать каталог /etc/glpi-agent и положить свой конфиг в зип.\
Расскажи, что из этого получилось.
Re: Встроенный агент fusioninventory-agent в WTware
Добрый день!
Получилось запустить.
В конфиг добавил agent.cfg
server = http://glpi/plugins/fusioninventory/
httpd-trust = 0.0.0.0/0
xml отправился на сервер, основную часть данных удалось получить.
Видно серийные номера компа и монитора, сетевые адреса. Это уже очень хорошо.
Загрузка стала на 3-4 секунды дольше, не критично.
Что не приходит - имя залогиненого пользователя, а также пока не понимаю прилетают ли подключенные usb устройства, помоему нет.
Также не вижу информацию о встроенном накопителе. Это может быть проблема на стороне сервера gpli. он у нас немного староват, версия 9.5, а в теории glpi агент должен работать на ветке начиная с 10 версии glpi. в 9 версии еще был fusion inventory agent, вполне возможно чтото изменилось. я попозже попробую подсунуть старый fusion inventory 2.6 (https://github.com/fusioninventory/fusi ... es/tag/2.6) и посмотреть что получилось.
fusion inventory агент должен работать как служба, у него есть микровебморда (по умолчанию на порту 62354), и периодически запускать инвентаризацию. Вебморда нужна только для контроля работы и возможности запустить инвентаризацию вручную. Также glpi может инициировать подключение к агенту, получить текущий статус, время последней инвентаризации и инициировать инвентаризацию принудительно, а не по графику. Еще glpi агент забирает в сервера какие-то настройки при подключении и кладет это в папку /var/lib/glpi-agent/
Получилось запустить.
В конфиг добавил agent.cfg
server = http://glpi/plugins/fusioninventory/
httpd-trust = 0.0.0.0/0
xml отправился на сервер, основную часть данных удалось получить.
Видно серийные номера компа и монитора, сетевые адреса. Это уже очень хорошо.
Загрузка стала на 3-4 секунды дольше, не критично.
Что не приходит - имя залогиненого пользователя, а также пока не понимаю прилетают ли подключенные usb устройства, помоему нет.
Также не вижу информацию о встроенном накопителе. Это может быть проблема на стороне сервера gpli. он у нас немного староват, версия 9.5, а в теории glpi агент должен работать на ветке начиная с 10 версии glpi. в 9 версии еще был fusion inventory agent, вполне возможно чтото изменилось. я попозже попробую подсунуть старый fusion inventory 2.6 (https://github.com/fusioninventory/fusi ... es/tag/2.6) и посмотреть что получилось.
fusion inventory агент должен работать как служба, у него есть микровебморда (по умолчанию на порту 62354), и периодически запускать инвентаризацию. Вебморда нужна только для контроля работы и возможности запустить инвентаризацию вручную. Также glpi может инициировать подключение к агенту, получить текущий статус, время последней инвентаризации и инициировать инвентаризацию принудительно, а не по графику. Еще glpi агент забирает в сервера какие-то настройки при подключении и кладет это в папку /var/lib/glpi-agent/
- Вложения
-
- F1I.jpg (253.66 КБ) 157 просмотров
Последний раз редактировалось artkron Чт сен 24, 2026 10:11 am, всего редактировалось 1 раз.
Re: Встроенный агент fusioninventory-agent в WTware
Сделал и fusion и glpi.
В принципе результат приходит один и тот же.
USB устройства приходят в инвентаризацию.
Также поправил файл Users.pm по пути usr\share\glpi-agent\lib\GLPI\Agent\Task\Inventory\Generic.
Теперь он берет имя пользователя, если он вошел, отсюда /tmp/lastlogin, и в glpi стало прилетать значение.
В принципе результат приходит один и тот же.
USB устройства приходят в инвентаризацию.
Также поправил файл Users.pm по пути usr\share\glpi-agent\lib\GLPI\Agent\Task\Inventory\Generic.
Теперь он берет имя пользователя, если он вошел, отсюда /tmp/lastlogin, и в glpi стало прилетать значение.
- Вложения
-
- 12.jpg (155.99 КБ) 141 просмотр
-
- Users.txt
- (7.57 КБ) 10 скачиваний
Re: Встроенный агент fusioninventory-agent в WTware
в runme сделал так:
#!/bin/sh
perl hello.pl
sleep 60
perl hello.pl
echo "GLPI Agent Started" > /tmp/glpi_agent.log
while true; do
echo "[$(date '+%H:%M:%S')] inventory start!" >> /tmp/glpi_agent.log
/usr/bin/glpi-agent >> /tmp/glpi_agent.log 2>&1
echo "[$(date '+%H:%M:%S')] inventory end!." >> /tmp/glpi_agent.log
sleep 1800
done
Работает )
--------------------------
Дополню.
agent.cfg:
server = http://glpi/plugins/fusioninventory/
httpd-trust = 0.0.0.0/0
delaytime = 10
runme:
#!/bin/sh
perl hello.pl
/usr/bin/glpi-agent --daemon
Работает как служба, вебморда работает, с gpli сервера можно сделать запрос к агенту, запустить принудительную инвентаризацию.
Отлично!
Также почекрыжил чутка архив, не сильно заморачиваясь, он похудел до 30Мб. Локали ненужные удалил, библиотеки для графики и разработки.
#!/bin/sh
perl hello.pl
sleep 60
perl hello.pl
echo "GLPI Agent Started" > /tmp/glpi_agent.log
while true; do
echo "[$(date '+%H:%M:%S')] inventory start!" >> /tmp/glpi_agent.log
/usr/bin/glpi-agent >> /tmp/glpi_agent.log 2>&1
echo "[$(date '+%H:%M:%S')] inventory end!." >> /tmp/glpi_agent.log
sleep 1800
done
Работает )
--------------------------
Дополню.
agent.cfg:
server = http://glpi/plugins/fusioninventory/
httpd-trust = 0.0.0.0/0
delaytime = 10
runme:
#!/bin/sh
perl hello.pl
/usr/bin/glpi-agent --daemon
Работает как служба, вебморда работает, с gpli сервера можно сделать запрос к агенту, запустить принудительную инвентаризацию.
Отлично!
Также почекрыжил чутка архив, не сильно заморачиваясь, он похудел до 30Мб. Локали ненужные удалил, библиотеки для графики и разработки.
-
aka
- Разработчик

- Сообщения: 12258
- Зарегистрирован: Ср окт 01, 2003 12:06 am
- Откуда: Роcсия, Тольятти
- Контактная информация:
Re: Встроенный агент fusioninventory-agent в WTware
1. Правленый файл поломает голову если через пять лет захочется новую версию glpi поставить. User.pm вызывает две системных команды loginctl и last. Может лучше их на том же перле или на шелсрипте написать loginctl и last, чтоб отдавали правильно оформленное имя из /tmp/lastlogin, и не менять User.pm из дистрибутива?
PS: /tmp/lastlogin написан в виндовой двухбайтовой кодировке и не закрыт нулём. Как пришло по RDP, так и сохранилось. Как он вообще читается??
2. Архив собирался мейкфайлом: https://wtware.ru/testing/202609250316.zip
Если вписать почекрыжение в мейкфайл, то:
- архив можно будет пересобрать через несколько лет, когда поменяется libc.
- я соберу такие же чекрыженые архивы для 32-битной втвари под старый BIOS и для малин. Если надо.
Библиотеки /usr/lib/x86_64-linux-gnu/*.so* чекрыжить не надо, они подтягиваются в архив другим скриптом для всех .so, которые собрал мейкфайл. Надо чекрыжить .so из перла. Например, мейкфайл затянет перловую:
/usr/lib/x86_64-linux-gnu/perl5/5.40/auto/Net/CUPS/CUPS.so
И если её не удалить, то уже следующий скрипт подтянет два десятка системных библиотек, которые нужны чтобы перл запустил эту CUPS.so. Если вписать в мейкфайл удаление ненужных перловых .so, архив автомагически пересоберётся без кучи системных библиотек.
PS: /tmp/lastlogin написан в виндовой двухбайтовой кодировке и не закрыт нулём. Как пришло по RDP, так и сохранилось. Как он вообще читается??
2. Архив собирался мейкфайлом: https://wtware.ru/testing/202609250316.zip
Если вписать почекрыжение в мейкфайл, то:
- архив можно будет пересобрать через несколько лет, когда поменяется libc.
- я соберу такие же чекрыженые архивы для 32-битной втвари под старый BIOS и для малин. Если надо.
Библиотеки /usr/lib/x86_64-linux-gnu/*.so* чекрыжить не надо, они подтягиваются в архив другим скриптом для всех .so, которые собрал мейкфайл. Надо чекрыжить .so из перла. Например, мейкфайл затянет перловую:
/usr/lib/x86_64-linux-gnu/perl5/5.40/auto/Net/CUPS/CUPS.so
И если её не удалить, то уже следующий скрипт подтянет два десятка системных библиотек, которые нужны чтобы перл запустил эту CUPS.so. Если вписать в мейкфайл удаление ненужных перловых .so, архив автомагически пересоберётся без кучи системных библиотек.