Инвентаризация компьютеров сети linux

Срочная инвентаризация. Или хочу всё знать

Захотелось поделится с хабросообществом парой способов провести инвентаризацию техники быстро и без особых усилий. Сподвигла меня вот эта статья, но как сторонник UNIX-way я расскажу способы сделать всё то же самое и даже больше без необходимости окружать себя гомогенной сетью из одинаковых рабочих станций или привязки к одной технологии.

Что мы хотим?

Мы хотим сделать перепись имеющегося оборудования в зависимости от требований руководства или наших собственных порывов обладать исчерпывающей информацией о своих владениях.
Я не буду претендовать на исчерпывающее руководство, но пару быстрых способов я подскажу.

Способ первый, без затрат.

Хотим мы получить инфу о начинке системных блоков организации, например для составления плана модернизации. Вы слышали про встроенную в Windows команду SYSTEMINFO? А она очень полезная. Даст вам информацию о всей системе в удобоваримом виде:

  • Создаём шару с правами на запись всем подряд, а то мало ли какие урезанные права у рабочих станций (sic! Именно станций, потому как права пользователей этих станций нам не интересны, всё будем делать от своего имени). Ну например \\share\audit\
  • Рисуем файлик в нашими айпишниками. Дело в том, что psexec по неясным причинам не понимает диапазоны адресов типа 192.168.0.1-192.168.0.254 или 192.168.0.0/24. Его, конечно, можно обмануть и подсунуть подобное, но это не стабильно и вредно, ниже объясню почему. Я пользуюсь OO Calc для создания списка IP-адресов. В итоге получаем текстовик (.txt) с примерно таким содержимым:
192.168.0.1 192.168.0.2 . 192.168.0.254 
psexec.exe @c:\ip-list.txt -d -n 12 systeminfo > \\share\audit\%COMPUTERNAME%.txt
  • Тут информация только по содержимому коробки системного блока и чуть-чуть по Windows.
  • Хотя установленные программы хранятся внутри системного блока про них тоже ничего не выводится
  • Даже по внутренностям мало информации, например нет ничего про тип оперативной памяти, только объём. Да и процессор освещён весьма скудно.

Хочу ВСЁ знать

И когда уже недостаточно только отчёта встроенной утилиты на помощ приходит AIDA64 от FinalWire. это тот же EVEREST только уже купленный другой компанией и которому было возвращено историческое название.
В принципе можно обойтись покупкой Business Edition и установкой на все станции. потом разрешить им обмениваться информацией и подключатся друг к другу на коком-нибудь порту, после чего клепать отчёты из приятного интерфейса. Но, во-первых это не тру, а во-вторых с автоматизацией процесса могут возникнуть заминки.
Я обхожусь Extreme Edition, всё то же самое но без сетевых отчётов.
Что бы начать вкушать плоды автоматизации нужно несколько несложных операций.

  1. Повторяем этапы подготовки для Systeminfo
  2. Ставим AIDA64
  3. Копируем папку с установленной AIDA64 из Program Files куда-нибудь на общедоступную шару. Например \\share\audit\aida
  4. В AIDA идём в мастер отчётов

Пункт «По выбору пользователя»
И здесь выбираем нужную нам информацию.

ReportProfile="Custom" ProfileFile="\\share\audit\aida\aida64.rpf" ReportFormat="txt" (не важный параметр, мы будем его подменять в консоли) RemoteReportFolder="C:\Users\***\Documents\AIDA64 Reports" (не важный параметр, мы будем его подменять в консоли) RemoteReportFileName="$HOSTNAME" (не важный параметр, мы будем его подменять в консоли) InfoPage="Computer;Summary" InfoPage="Computer;Computer Name" InfoPage="Computer;DMI" InfoPage="Computer;Sensor" InfoPage="Motherboard;CPU" InfoPage="Motherboard;CPUID" InfoPage="Motherboard;Motherboard" InfoPage="Motherboard;Memory" InfoPage="Motherboard;Chipset" InfoPage="Motherboard;BIOS" InfoPage="Operating System;Operating System" InfoPage="Server;Share" InfoPage="Server;Opened Files" InfoPage="Display;Windows Video" InfoPage="Display;GPU" InfoPage="Display;Monitor" InfoPage="Storage;Logical Drives" InfoPage="Storage;Physical Drives" InfoPage="Network;Windows Network" InfoPage="Software;Installed Programs"
psexec.exe @c:\ip-list.txt -d -n 12 \\share\audit\aida\aida64.exe /R \\share\audit\%COMPUTERNAME% /TEXT /CUSTOM \\share\audit\aida\aida64.rpf

Параметр /R — означает что аида не будет выводить отчёт на экран, а будет складывать его по указанному пути. %computername% — это переменная окружения cmd и на каждом компьютере где мы будем запускать Aida она будет соответствовать имени компьютера. Можно использовать любую другую переменную, но так удобнее всего.
Параметр /TEXT — предопределит тип создаваемого отчёта и автоматически подставит нужное расширение файла, поэтому после %computername% не нужно ставить .txt (%computername%.txt) иначе получим %computername%.txt.txt
Параметр /CUSTOM — даёт понять AIDA откуда брать список нужных компонентов отчёта.
Вот и всё. Запускаем эту строку в CMD и смотрим как в шару складываются очень подробные отчёты включающие в себя полную информацию по всей периферии.

В домене

Я добавил исполнение этого скрипта (без части с psexec) в Startup Scripts в политиках домена.
Это было бы не правильно без некоторой доработки, в итоге скрипт в политиках выглядит так:

 if not exist \\share\audit\%COMPUTERNAME%.txt ( \\share\audit\aida\aida64.exe /R \\share\audit\%COMPUTERNAME% /TEXT /CUSTOM \\share\audit\aida\aida64.rpf ) else exit 

Благодаря этому, при загрузке, каждый компьютер в сети проверяет, посылал ли он отчёт и если нет, то делает его, а если да, то не делает ничего.
А для того что бы обнавить данные по одной или нескольким машинам, я просто удаляю или переношу соответствующие очёты и через некоторое время у меня свежая инфа.
Внимание: на некоторых экзотических аппаратных платформах (которые AIDA не распознаёт) отработка программы вызывает сбои и даже падения, редкость, но имеет место. По этому на критически важных рабочих станциях и серверах отчёты лучше делать вручную. Полноценно запуская AIDA64 в графическом режиме, тогда компьютер не выдаёт ошибок, а AIDA просто не запускается.

Разбор полученных логов

Я сохраняю отчёты в простом текстовом виде так как пользуюсь для их разбора и анализа bash скрипты, а шара для хранения отчётов хранится на linux машине. По этому если я хочу узнать обо всех машинах: их имя,ip и mac, количество установленной памяти, то делается примерно следующее:

iconv -f cp1251 ./*.txt | egrep -i "Имя компьютера|с ip|с mac|Тип ЦП|Системная память"

Это простейшая обработка, но когда освою парсинг XML на каком-нибудь языке, конечно перейду на отчёты в этом формате.

Лирика

Можно обсудить ещё и возможность удалённого включения рабочих станция, да и управление компьютерами по сети не последний вопрос. Но ничего универсальнее Wake On Lan ещё не изобрели, а многообразие средств удалённого управление столь велико, что не уместится в рамки этой статьи. Тем более это дело вкуса.

UDP: Neuronix подсказал про OCS NG + GLPI. Красивый и удобный сервер под *nix c поддержкой графиков и отчётов + клиентские части под все возможные ОС. У меня, правда, возникли проблемы с клиентами под Windows 7, но возможно от неестественной кривизны рук. Решение стационарное, нужен какой-нибудь сервер.

UDP2: Да AIDA64 платная, но нам вполне хватит триала, по части консольного использования ничем не ограниченного.

UDP3: Решение с AIDA64 полностью portable. Скинуть всё необходимое на флешку, использовать относительные пути в скриптах и по приходу в любую фирму понадобится только компьютер и права админа.

Источник

GLPI + Fusion Inventory

Идем на созданный сайт(http:///glpi/) и выбираем язык установки Russian, а дальше там всё понятно.

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

 # 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. 

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

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

 http://server_ip/glpi/plugins/fusioninventory/front/plugin_fusioninventory.communication.php 
 http://glpi.mydomain/plugins/fusioninventory/front/plugin_fusioninventory.communication.php 
 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
  • Скачиваем тарбол из раздела с пакетами (Для арча подходит тарбол от ubuntu) forge.fusioninventory.org/projects/fusioninventory-agent/wiki/Agent_supportedplateforms
  • Правим конфиг agent.cfg,
  • От root`a запускаем «fusioninventory-agent»

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

Источник

Читайте также:  Vmware workstation pro для linux
Оцените статью
Adblock
detector