Я хочу провести инвентаризацию оборудования моих систем Linux, используя только ssh на стороне клиента
Они представляют собой смесь Red Hat и CentOS 5.x, я хотел бы иметь что-то на одном хосте, которое может проверить основы, такие как cpu/mem/disk hardware, Model, HW RAID контроллеры и т. Д. Было бы неплохо.
У меня настроена ssh-аутентификация на основе ключей, но я не хочу ничего устанавливать на этих хостах. В худшем случае я мог бы найти что-то в / tmp, но не устанавливайте, пожалуйста.
Насколько я понимаю, либо мне нужно что-то установить, либо это что-то действительно базовое, что я бы запустил на машине, а затем вручную агрегировал.
Не могу ли я написать какой-нибудь Perl для запуска и обработки вывода dmidecode, lspci и т. Д.?
Если я это сделаю, я положу его куда-нибудь и ссылку на него.
Связанные вопросы, на которые нет ответа:
Получить информацию об оборудовании сервера для сервера Ubuntu
Как узнать подробности об оборудовании на машине с Linux? у этого был хороший кусок скрипта, но он ошибался.
7 ответов
Может быть, попробуйте http://www.cfg2html.com/ это всего лишь один сценарий bash, который выводит в html, который вы можете загрузить / загрузить в центральный каталог. Однако это просто вывод команд, поэтому довольно сложно представить его в структурированном формате, таком как sql/xml.
Вы можете установить Spiceworks в Windows VM. Он использует только ssh для инвентаризации хостов Linux.
Без установки какого-либо нового программного обеспечения в удаленных системах вы можете получить необработанный снимок состояния удаленного компьютера с помощью:
lspci > /tmp/`hostname`-lspci
tar -czvf `hostname`-proc-snapshot.tar.gz /proc /tmp/`hostname`-lspci --exclude=/proc/kcore
Затем скопируйте архив tar с удаленного сервера. Это даст вам: cpuinfo, meminfo, разделы и т. Д. Добавьте дополнительные команды и временные файлы для любой дополнительной информации, которая может вам понадобиться (логические тома, статус рейда и т. Д.)
В качестве незначительного бонуса вы получаете список запущенных процессов на удаленном компьютере в этот момент.
В зависимости от того, установлен ли в ваших системах Python2, вы также можете использовать Ansible.
ansible -m setup ${hostname}
Это выведет хороший JSON, который включает в себя CPU/RAM/HDD/Network и программную конфигурацию. Прочитайте документацию для получения дополнительной информации.
Если на компьютерах установлен lshw, вы можете использовать его, но он не предустановлен на Redhat и его производных. Для этого есть RPM, и вы можете извлечь необходимые файлы из RPM, SCP-файлы к компьютерам, создать несколько символических ссылок (скорее всего, ссылку из / usr / sbin / lshw на расположение tmp файла и из / usr / share / lshw в папку tmp папки), затем вы запускаете lshw и впоследствии удаляете символические ссылки. Это предполагает, что у вас есть права root / sudo...
Команда lshw дает вам много информации об оборудовании и может выводить ее в формате HTML или XML...
Скопируйте утилиты hw-probe и hwinfo в каталог temp на сервере и запускайте локально без установки чего-либо. Только что сделал это для одного из моих серверов.
Пример для CentOS 6:
Подключиться к серверу
ssh user@server
Создать временный каталог
mkdir -p /tmp/hw-inventory cd /tmp/hw-inventory
Скачать собственно
hwinfo
а такжеlibx86emu
RPM бинарные пакетыwget http://mirror.ghettoforge.org/distributions/gf/el/6/gf/x86_64/hwinfo-20.2-1.gf.el6.x86_64.rpm wget http://mirror.ghettoforge.org/distributions/gf/el/6/gf/x86_64/libx86emu-1.1-1.gf.el6.x86_64.rpm
Извлечь их
rpm2cpio hwinfo-21.47-4.1.x86_64.rpm | cpio -id rpm2cpio libx86emu-1.1-1.gf.el6.x86_64.rpm | cpio -id
Получить последнюю
hw-probe
скриптwget https://github.com/linuxhw/hw-probe/archive/master.zip unzip master.zip
Создать зонд
sudo perl hw-probe-master/hw-probe.pl -all -upload -hwinfo-path ./usr/sbin/hwinfo
Очистить локальный временный каталог
cd ~/ rm -fr /tmp/hw-inventory /root/HW_PROBE
Утилита вернет постоянный URL для просмотра собранных сведений об оборудовании и журналов, связанных с оборудованием (например, так).
Я только что добавил опцию -hwinfo-path
в hw-probe:master
чтобы упростить ваш вариант использования.
Если вы хотите провести инвентаризацию многих компьютеров, перейдите по https://github.com/linuxhw/hw-probe.
Я автор hw-probe
Проект, не стесняйтесь задавать любые вопросы в комментариях к этому ответу.