Содержание Видео
Показать
00:00 - Вступление
00:24 - О Скрипте bash на expect подключение к подсетям или сети (OCSAgent-proxmox)
01:11 - Как работает скрипт OCSAgent-proxmox
07:00 - О подстановке логина пароля к определенному хосту
08:37 - Пример работы скрипта на несколько подсетей
09:52 - Просмотр хоста в панели OCS
10:00 -Указываем оставшиеся подсети и производим автоматическую установку далее
13:43 - Просмотр хостов в панели OCS
14:04 - О скрипте установки непосредственно самого ocs agent autoinstall-ocs-agent-Proxmox.sh
18:16 - Пример работы на отдельном хосте установки ocs agent
18:34 - Смотрим в Веб панели OCS данных хост
18:44 - В целом об установке ocs агенте и дополнительных компонентах
22:25 - Обручной установке ОЦС Агента
24:18 - Пример Ручной установки OCS Агента
28:05 - Веб панель OCS
29:07 - Еще примеры скриптов на основе expect плюсы и минусы
31:24 - Ваши предложения
00:24 - О Скрипте bash на expect подключение к подсетям или сети (OCSAgent-proxmox)
01:11 - Как работает скрипт OCSAgent-proxmox
07:00 - О подстановке логина пароля к определенному хосту
08:37 - Пример работы скрипта на несколько подсетей
09:52 - Просмотр хоста в панели OCS
10:00 -Указываем оставшиеся подсети и производим автоматическую установку далее
13:43 - Просмотр хостов в панели OCS
14:04 - О скрипте установки непосредственно самого ocs agent autoinstall-ocs-agent-Proxmox.sh
18:16 - Пример работы на отдельном хосте установки ocs agent
18:34 - Смотрим в Веб панели OCS данных хост
18:44 - В целом об установке ocs агенте и дополнительных компонентах
22:25 - Обручной установке ОЦС Агента
24:18 - Пример Ручной установки OCS Агента
28:05 - Веб панель OCS
29:07 - Еще примеры скриптов на основе expect плюсы и минусы
31:24 - Ваши предложения
Для упрощения процесса инвентаризации программа собирает сведения о установленном железе и программном обеспечении, а так же подключенных устройствах.
Официальный сайт OCS
Загружаем OCS Agent новую версию.
Необходимые компоненты для работы OCS Agent
Показать
Perl 5.8 минимум
Необходимы следующие модули для сбора информации
- Digest::MD5
- XML::Simple
- Net::IP необязательно, это необходимо только для вычисления сетевой информации
- LWP
- Mac::SysProfile 0.0.5 этот модуль необходим на MacOSX для сбора информации об устройстве.
Для обеспечения работы SSL-связи (для развертывания пакетов или HTTPS-связи с сервером OCS) вам понадобятся следующие модули:
- Crypt::SSLeay если вы используете LWP до версии 6
- LWP::Protocol::https при использовании LWP версии 6 или боле
- Net::CUPS используется для обнаружения принтера
- Net::SNMP для сканирования сетевых устройств с помощью SNMP
Для улучшения функции SNMP с пользовательскими сетями сканирования, вам нужны эти модули:
- Net::Netmask Маска Сети информация о сети
- Net::Ping
или
- Nmap::Parser
- Data::UUID используется для создания уникального идентификатора для каждой машины
- Parse::EDID используется для инвентаризации монитора и заменит монитор-edid от Mandriva.
Необходимы следующие команды :
- dmidecode на Linux и *BSD (i386, amd64, ia64) => dmidecode требуется для чтения статистики BIOS.
- lspci на Linux и *BSD (пакет pciutils) = > lspci требуется для перечисления устройств PCI.
- sneep на Solaris/sparc, вы должны установить sneep и записать серийный номер с ним (скачать его с http://www.sun.com/download/products.xml?id=4304155a)
Чтобы получить серийный номер экрана вам понадобится один из этих инструментов:
- monitor-edid от Mandriva необходим для получения монитора. Пакет доступен в репозитории Fedora. информация http://wiki.mandriva.com/en/Tools/monitor-edid
или
- get-edid получить данные EDID от чтения
- ipmitool если вы хотите собирать информацию о IPMI
- Nmap (v3. 90 или выше) для сканирования сетевых устройств для обнаружения Ip
Следующие модули Perl являются необязательными:
- Proc::Daemon режим демона
- Proc::PID::File приносит поддержку файлов pid, если установлен Демон Proc
- nvidia::ml приносит вам некоторую информацию о графических картах Nvidia, таких как размер памяти, скорость процессора, версия bios и версия драйвера.
- Compress::Zlib сжатие
Следующий модуль необходим, если вы планируете подготовить тарбол или установить его непосредственно из ветки Bazaar devel. (См. источники ниже.):
- Module::Install
Необходимы следующие модули для сбора информации
- Digest::MD5
- XML::Simple
- Net::IP необязательно, это необходимо только для вычисления сетевой информации
- LWP
- Mac::SysProfile 0.0.5 этот модуль необходим на MacOSX для сбора информации об устройстве.
Для обеспечения работы SSL-связи (для развертывания пакетов или HTTPS-связи с сервером OCS) вам понадобятся следующие модули:
- Crypt::SSLeay если вы используете LWP до версии 6
- LWP::Protocol::https при использовании LWP версии 6 или боле
- Net::CUPS используется для обнаружения принтера
- Net::SNMP для сканирования сетевых устройств с помощью SNMP
Для улучшения функции SNMP с пользовательскими сетями сканирования, вам нужны эти модули:
- Net::Netmask Маска Сети информация о сети
- Net::Ping
или
- Nmap::Parser
- Data::UUID используется для создания уникального идентификатора для каждой машины
- Parse::EDID используется для инвентаризации монитора и заменит монитор-edid от Mandriva.
Необходимы следующие команды :
- dmidecode на Linux и *BSD (i386, amd64, ia64) => dmidecode требуется для чтения статистики BIOS.
- lspci на Linux и *BSD (пакет pciutils) = > lspci требуется для перечисления устройств PCI.
- sneep на Solaris/sparc, вы должны установить sneep и записать серийный номер с ним (скачать его с http://www.sun.com/download/products.xml?id=4304155a)
Чтобы получить серийный номер экрана вам понадобится один из этих инструментов:
- monitor-edid от Mandriva необходим для получения монитора. Пакет доступен в репозитории Fedora. информация http://wiki.mandriva.com/en/Tools/monitor-edid
или
- get-edid получить данные EDID от чтения
- ipmitool если вы хотите собирать информацию о IPMI
- Nmap (v3. 90 или выше) для сканирования сетевых устройств для обнаружения Ip
Следующие модули Perl являются необязательными:
- Proc::Daemon режим демона
- Proc::PID::File приносит поддержку файлов pid, если установлен Демон Proc
- nvidia::ml приносит вам некоторую информацию о графических картах Nvidia, таких как размер памяти, скорость процессора, версия bios и версия драйвера.
- Compress::Zlib сжатие
Следующий модуль необходим, если вы планируете подготовить тарбол или установить его непосредственно из ветки Bazaar devel. (См. источники ниже.):
- Module::Install
apt-get remove ocsinventory-agent -y
apt-get update - загрузка списков пакетов из репозиториев и "обновление" их
apt-get upgrade - обновляет пакеты, которые уже установлены в системе и доставляет новые пакеты-зависимости
Ставим пакеты apt-get и часть пакетов perl apt-get которые доступны для загрузки
apt-get install dmidecode ftp ncftp nmap smartmontools libpci libpci-devel pciutils read-edid ipmitool nmap eepm нет alt linux lspci sneep monitor-edid
apt-get install wget perl-base perl-CGI perl-CPAN perl-HTML-Mason perl-IO-All perl-Proc-Daemon perl-Proc-PID-File perl-XML-SAX perl-XML-Simple cpan2rpm perl-Digest-MD5 perl-Net-IP perl-LWP-Protocol-https perl-Net-CUPS perl-Net-SNMP perl-Net-Netmask perl-Net-Ping perl-Nmap-Parser perl-Data-UUID perl-Compress-Zlib perl-Module-Install perl-Crypt-SSLeay perl-LWP-UserAgent-Determined perl-DateTime perl-Mojolicious perl-AnyEvent perl-AnyEvent-HTTP perl-App-cpanminus libe2fs-devel asa perl-Parse-EDID
apt-get install net-snmp-utils net-snmp snmpb
Добавить в переменную для работы dmidecode от пользователя и от админа после чего должна работать команда dmidecode
Добавить в конфигурацию от имени пользователя nano ~/.bashrc следующую переменную и выполнить ее
export PATH="/usr/sbin:$PATH"
Запускаем cpan
Выбираем Would you like to configure as much as possible automatically? [yes] если не надо вводить какие либо настройки конфигурации вручную соглашаемся на yes
Если например надо указать прокси пишем no смотрим ниже под сполером
Указываем Proxy в Perl
Показать
Запускаем cpan
Выбираем Would you like to configure as much as possible automatically? [yes] пишем no
И выбираем все по умолчанию до указания прокси
Далее указываем прокси в нашем случае http://IP:Port и авторизацию Логин Пароль
Your ftp_proxy? [] http://IP:Port
Your http_proxy? [] http://IP:Port
Your proxy user id? [] Логин
Your proxy password? Пароль
Далее соглашаемся со всем по умолчанию
Если у вас уже было принято yes то тогда настраиваем в Perl вручную
Прописываем настройки вручную
cpan
o conf ftp_proxy http://ip:порт
o conf http_proxy http://ip:порт
o conf no_proxy
o conf proxy_user логин
o conf proxy_pass пароль
o conf commit -сохранить (/home/имя пользователя/.local/share/.cpan/CPAN/MyConfig.pm)
q - выйти
Проверка прокси
cpan
cpan[1]> o conf /proxy/
cpan[2]> o conf no_proxy 1
Выбираем Would you like to configure as much as possible automatically? [yes] пишем no
И выбираем все по умолчанию до указания прокси
Далее указываем прокси в нашем случае http://IP:Port и авторизацию Логин Пароль
Your ftp_proxy? [] http://IP:Port
Your http_proxy? [] http://IP:Port
Your proxy user id? [] Логин
Your proxy password? Пароль
Далее соглашаемся со всем по умолчанию
Если у вас уже было принято yes то тогда настраиваем в Perl вручную
Прописываем настройки вручную
cpan
o conf ftp_proxy http://ip:порт
o conf http_proxy http://ip:порт
o conf no_proxy
o conf proxy_user логин
o conf proxy_pass пароль
o conf commit -сохранить (/home/имя пользователя/.local/share/.cpan/CPAN/MyConfig.pm)
q - выйти
Проверка прокси
cpan
cpan[1]> o conf /proxy/
cpan[2]> o conf no_proxy 1
пакеты, описание пакетов,команды установки есть на сайте https://web-stage.metacpan.org/pod/
Установка в разделе >_Install Instructions
Вводим команду perl -MCPAN -e shell соглашаемся Y далее будет ожидаться ввод команды > поочередно вводим пакеты
install CPAN ( не обязательно обновить сам cpan)
install Crypt::SSLeay::X509 (если агент будет на https 443 подключение с сертификатом, для работы snmp обязательно)
install Test::use::ok (не обязательно пакет для тестов других пакетов перла)
install UUID
install Data::UUID::LibUUID (используется для создания уникального идентификатора для каждой машины)
install Mac::SysProfile (для сбора мак адресов)
install Parse::EDID (используется для инвентаризации монитора и заменит монитор-edid от Mandriva)
install Nvidia::ml (можно не ставить, если не устанавливается! нужна только если есть железо фирмы Nvidia для сбора данных о нем)
install DateTime (для работы даты в перле)
Данные пакеты поставлены выше ap-get , если нет ставим их тоже
install Crypt::SSLeay (если вы используете LWP до версии 6 ,если агент будет на https 443 подключение с сертификатом)
install Net::Netmask (Маска Сети информация о сети)
install Net::SNMP (для сканирования сетевых устройств с помощью SNMP)
install Proc::Daemon (режим демона)
install Proc::PID::File (приносит поддержку файлов pid, если установлен Демон Proc)
install Compress::Zlib (сжатие)
install LWP::UserAgent (для авторизации юзер агенты выхода в инет перла если задан юзер агент)
Так же можно делать установку командой
cpanm более меньше задает вопросы нужно установить perl-App-cpanminus мы его ставили apt-get ом =)
cpanm Crypt::SSLeay
cpanm Data::UUID::LibUUID
cpanm Mac::SysProfile
cpanm Parse::EDID
cpanm Nvidia::ml
cpanm DateTime
cpanm Net::Netmask
cpanm Net::SNMP
cpanm Proc::Daemon
cpanm Proc::PID::File
cpanm LWP::UserAgent
Если не нашлось пакета nvidia::ml perl-nvidia-ml-pl-4.304.2-alt4.1.x86_64.rpm скачиваем его и ставим вручную
rpm -i --force perl-nvidia-ml-pl-4.304.2-alt4.1.x86_64.rpm
(можно не ставить, если не устанавливается! нужна только если есть железо фирмы Nvidia для сбора данных о нем)
Скачиваем ocs agenta
wget https://github.com/OCSInventory-NG/Unix ... 8.0.tar.gz
wget https://github.com/OCSInventory-NG/Unix ... 8.0.tar.gz
Извлекаем
tar -zxvf Ocsinventory-Unix-Agent-2.8.0.tar.gz
Переходим в папку
cd Ocsinventory-Unix-Agent-2.8.0
Сборка / Установка
После распаковки архива используйте следующие команды:
perl Makefile.PL - проверка требований перед установкой
make
make install сделать установку
Далее будут примерно такие вопросы плюс минус больше меньше вопросов
Добавление информации об установке в /home / delp-spec1 / perl5 / lib/perl5/x86_64-linux-thread-multi / perllocal.стручок
[ ! -Ф выполнения послеустановочных ] || /УСР/бин/perl5.16.3 postinst.pl
Вы хотите настроить агент
Введите 'Y' или 'N'?> [y] y
Найден конфигурационный файл / etc/ocsinventory / ocsinventory-agent.cfg! Повторное использование.
Следует ли импортировать старые настройки unix_agent ?
Введите 'Y' или 'N'?> [y] n
[info] конфигурационный файл будет записан в /etc/ocsinventory / ocsinventory-agent.контекстно-свободная грамматика,
Каков адрес вашего сервера ocs?> [http://192.168.121.5:3455/ocsinventory] указать свой путь на сервер OCS
Вам нужны учетные данные для сервера? (Вы, вероятно, не знаете)
Введите 'Y' или 'N'?> [n] n
Вы хотите применить административный тег на этой машине
Введите 'Y' или 'N'?> [y] y
тег?>тут указываем инвентарный номер
Вы хотите установить задачу cron в /etc / cron.д
Введите 'Y' или 'N'?> [y] y
Где вы хотите, чтобы агент хранил свои файлы? (Вам, вероятно, не нужно его менять)?> [/var / lib / ocsinventory-агент]
Должен ли я удалить старый unix_agent
Введите 'Y' или 'N'?> [y] y
Вы хотите активировать параметр конфигурации отладки ?
Введите 'Y' или 'N'?> [y] y для первого запуска и выявления ошибок можно включить он будет в конфигурации равен debug=1 позже отключит оставив в конфиге debug=
Вы хотите отключить параметр конфигурации проверки SSL CA (не рекомендуется)?
Введите 'Y' или 'N'?> [y] n
Вы хотите установить путь к файлу сертификатов CA ?
Введите 'Y' или 'N'?> [у] n
Вы хотите использовать функцию развертывания программного обеспечения OCS-Inventory?
Введите 'Y' или 'N'?> [y] y
Вы хотите использовать функцию сканирования SNMP OCS-Inventory?
Введите 'Y' или 'N'?> [y] y
Вы хотите отправить опись этой машины?
Введите 'Y' или 'N'?> [y] y
Настройка адреса сервера OCS Inventory NG...
Ищу OCS Invetory ng Unix Unified agent installation...
ocsinventory agent представляет: / home / delp-spec1 / perl5 / bin / ocsinventory-agent
Настройка crontab...
Создание каталога/etc / ocsinventory...
Написание OCS Inventory NG Unix Unified agent configuration
Удаление старого агента OCS Inventory Unix...
/etc / ocsinventory-клиент
/etc / logrotate.d / ocsinventory-клиент
/usr/sbin/ocsinventory-client.pl
/ etc / cron.d / ocsinventory-клиент
/бин/ocsinv
сделано
Создание каталога/var/lib/ocsinventory-agent / http:__192.168.121.5:3455_ocsinventory...
Создание каталога /var/lib в/ocsinventory-агента/по HTTP:__192.168.121.5:каталог 3455_ocsinventory/СНМП...
Копирование XML-файлов SNMP MIBs...
Активация модулей при необходимости...
Запуск OCS Inventory NG Unix Unified agent...
Не удалось загрузить Ocsinventory::агент, ошибка синтаксиса в /Home/Делп-spec1/perl5/библиотека lib/perl5/Ocsinventory/агент/сети.линия часов 56, рядом с "};"
Ошибка компиляции в require at / home / delp-spec1 / perl5 / lib/perl5/Ocsinventory / Agent.pm строка 33.
BEGIN failed--компиляция прервана в /home / delp-spec1/perl5 / lib/perl5/Ocsinventory / Agent.pm строка 33.
Компиляция не удалась в require at (eval 1) строка 1.
BEGIN failed--компиляция прервана в строке 1 (eval 1).
вы можете запустить агент непосредственно для его исходного каталога с помощью --devlib
-> Не удалось!
Вы можете запустить агент с флагом --verbose или --debug.
Новые настройки написаны! Благодарим Вас за использование OCS Inventory
Могут быть ошибки по логину паролю
nano /usr/local/share/perl/5.16/Ocsinventory/Agent.pm line 33
nano /home/delp-spec1/perl5/lib/perl5/Ocsinventory/Agent.pm - ссылается на 33 строке на файл Network
Правим блок в файле путь может отличатся 2 примера пути
nano /home/delp-spec1/perl5/lib/perl5/Ocsinventory/Agent/Network.pm - пароль к серверу 56 строка
nano /usr/local/share/perl/5.16/Ocsinventory/Agent/Network.pm
Коментируем блок
# $self->{ua}->credentials(
# $uaserver, # server:port, port is needed
# $self->{config}->{realm},
# $self->{config}->{user},
# $self->{config}->{password};
# );
Поправить в cron (Планировщик запуска)
/etc/cron.d/ocsinventory-agent путь может отличатся!
так же можно добавить переменную :/usr/sbin
Указываем свой путь на ocsinventory-agent если он отличается
PATH=/usr/sbin:/usr/java/jdk1.8.0_171-amd64/bin:/home/edv-spec1/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/games
5 9,15 * * * root /usr/local/bin/ocsinventory-agent --lazy --force > /dev/null 2>&1
@reboot root /usr/local/bin/ocsinventory-agent --lazy --force > /dev/null 2>&1
запуск в 9 часов 5 минут и в 15 часов 5 минут каждый день
Перезапускам service crond restart
На ALT Linux 7 CRONd по умолчанию не работает нужно добавить его в автозагрузку
chkconfig --add crond
chkconfig crond on
Проверяем служба должна быть активной
service crond status
active
Возможно в некоторых случаях понадобится дать права
chmod a-x /etc/rc.d/init.d/crond
chmod 754 /etc/rc.d/init.d/crond
Если при запуске кроном выдает ошибку на Agent.pm
Показать
значит не найдена папка Ocsinventory можно ее скопировать например
из /usr/local/lib/perl5/site_perl/5.30.0/Ocsinventory
В /usr/share/perl5/Ocsinventory
Либо прописать переменную /usr/local/lib/perl5/site_perl/5.30.0/
Или еще пример
Из /home/Ваш-Пользователь/perl5/lib/perl5/Ocsinventory
В /usr/local/share/perl/5.16/Ocsinventory
из /usr/local/lib/perl5/site_perl/5.30.0/Ocsinventory
В /usr/share/perl5/Ocsinventory
Либо прописать переменную /usr/local/lib/perl5/site_perl/5.30.0/
Или еще пример
Из /home/Ваш-Пользователь/perl5/lib/perl5/Ocsinventory
В /usr/local/share/perl/5.16/Ocsinventory
По Cron
Показать
* * * * * {пользователь} выполняемая_команда прописываем полный путь
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12) (можно три буквы из названия месяца,
| | | регистр не имеет значения от jan до dec)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)
service crond status - проверка службы Крон
В Linux есть такой чудо демон - cron. Демон cron при загрузке, а так же - после загрузки каждую минуту "шерстит" файл /etc/crontab, каталог /etc/cron.d/ и каталог с пользовательскими таблицами заданий (/var/spool/cron/crontabs) и сверяет текущее время и строку в "просматриваемом" файле и запускает указанную команду, когда значения полей минута, час, месяц и хотя бы одно из полей число и день_недели, совпадают с текущим временем.
Так же есть чудо-средство anacron, которое сравнивает не текущее время со временем задания в crontab, а сколько прошло времени с последнего запуска задания, указанного в /etc/anacrontab и если прошел указанный промежуток времени, то задание запускается.
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12) (можно три буквы из названия месяца,
| | | регистр не имеет значения от jan до dec)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)
service crond status - проверка службы Крон
В Linux есть такой чудо демон - cron. Демон cron при загрузке, а так же - после загрузки каждую минуту "шерстит" файл /etc/crontab, каталог /etc/cron.d/ и каталог с пользовательскими таблицами заданий (/var/spool/cron/crontabs) и сверяет текущее время и строку в "просматриваемом" файле и запускает указанную команду, когда значения полей минута, час, месяц и хотя бы одно из полей число и день_недели, совпадают с текущим временем.
Так же есть чудо-средство anacron, которое сравнивает не текущее время со временем задания в crontab, а сколько прошло времени с последнего запуска задания, указанного в /etc/anacrontab и если прошел указанный промежуток времени, то задание запускается.
Прописать
basevardir=/var/lib/ocsinventory-agent
debug=
tag= указать инвентарный номер
server=http://192.168.121.5:3455/ocsinventory
logfile=/var/log/ocsinventory-agent/ocsinventory-agent.log
дать права бывает нужно от root (su)
chmod 775 /etc/ocsinventory/ocsinventory-agent.cfg
chmod 775 /var/log/ocsinventory-agent/ocsinventory-agent.log
chmod 775 -R /var/lib/ocsinventory-agent
команды для пробы запуска
ocsinventory-agent --force --debug
ocsinventory-agent --force
Данные должны передаться на сервер если нет смотрим ошибки если не отобразились в момент выполнения команды то смотрим в логе и устраняем их и снова запускаем