Настройка CentOS Linux 7.2 на сервере HP ProLiant DL360 G5. Установка HP System Management Tools

imageВ предыдущих заметках мы произвели установку ОС CentOS Linux 7.2 на сервер HP ProLiant DL360 G5 и рассмотрели примеры последующего обновления драйверов и firmware для встроенных сетевых контроллеров HP NC373i, а также оптических контроллеров HP FC2242SR/FC1242SR. На этот раз, в качестве завершающего этапа пост-установочных процедур, мы рассмотрим пример установки на наш сервер утилит управления семейства HP System Management Tools.

В частности, нами будут установлены утилиты (в скобках указаны названия необходимых rpm пакетов):

  • HPE System Health Application and Command Line Utilities (hp-health)
  • Insight Management Agents(SNMP) for HPE ProLiant Systems (hp-snmp-agents)
  • HP System Management Homepage (hpsmh)
  • HPE System Management Homepage Template Package (hp-smh-templates)
  • HPE Smart Storage Administrator (hpssa)
  • HPE Command Line Smart Storage Administrator (hpssacli)
  • Hponcfg — HP Lights-Out Online Configuration Utility (hponcfg)
  • HP Insight Diagnostics (hpdiags)

В качестве опорной информации было взято развёрнутое сообщение на форуме CentOS некоего гражданина dgrant, за что ему большущее спасибо. Итак, приступим…

Подключаем репозитории HP

Страница информации о Linux-репозиториях для распространения программного обеспечения HP расположена здесь: Software Delivery Repository — Getting Started. Там же есть ссылка на sh-скрипт, который способен автоматически добавить в нашу серверную систему на Linux информацию о репозиториях HP. Забегая вперёд, отмечу тот факт, что текущая версия скрипта при вызове без дополнительных параметров потребует для своей работы наличие в нашей системе утилиты lsb_release, которая входит в состав пакета redhat-lsb. А установка пакета redhat-lsb, в свою очередь, имеет целый ворох зависимостей (+141 Dependent packages), необходимость присутствия которых в серверной системе остаётся под вопросом. Учитывая то, что по сути всё, что делает этот скрипт, это автоматизация добавления в систему ключа репозитория и самого репозитория HP, мы можно выполнить эти нехитрые действия самостоятельно и не использовать этот скрипт вообще. Процедура ручной настройки будет рассмотрена далее, а сейчас, исключительно в демонстрационных целях, мы таки рассмотрим пример использования этого скрипта.

Скачиваем скрипт:

# mkdir ~/HP
# wget http://downloads.linux.hpe.com/SDR/add_repo.sh -P ~/HP

Перед выполнением скрипта нам нужно будет знать имена репозиториев, которые мы хотим добавить в систему (хотя тот, кто писал скрипт, мог бы и добавить параметр с листингом возможных вариантов). Найти имена репозиториев можно на странице Project Repositories. Нас интересуют два репозитория:

Помимо этих двух репозиториев, нам интересен также был бы репозиторий fwpp (Firmware Pack for ProLiant), однако, как я понял, этот репозиторий для доступа требует авторизацию по токену, который в свою очередь генерируется на сайте HP и привязывается к аккаунту с действующим сервисным контрактом.

Если вас не беспокоит наличие в системе кучи ненужных пакетов, то перед запуском скрипта можно установить пакет redhat-lsb, в составе которого есть утилита lsb_release:

# yum -y install redhat-lsb

И уже с случае наличия в системе утилиты lsb_release, репозитории добавляются командами типа:

# sh ~/HP/add_repo.sh "mcp"
# sh ~/HP/add_repo.sh "spp"

Однако использование в таком виде скрипта на текущей версии CentOS приведёт к ошибке невозможности доступа к URL, так как при формировании этого URL по умолчанию скрипт использует имя и текущую версию ОС…

image

Решение – использовать дополнительные параметры при вызове скрипта с указанием версии совместимой ОС. Кстати, при явном указании скрипту версии ОС через передачу параметров, можно не заморачиваться наличием утилиты lsb_release, и как следствие, необходимостью установки ненужных пакетов. Вообще скрипт имеет набор параметров и узнать их все можно командой:

# sh ~/HP/add_repo.sh -h

Чтобы узнать какие именно параметры может добавить скрипт в файл перечисления репозиториев yum, воспользуемся специальным ключом -n, который не делает реальных изменений в системе, а лишь показывает то, что скрипт может записать в repo-файл с переданным ему набором параметров. Например, чтобы проверить добавление репозитория «mcp» для нашей 64-битной CentOS 7.2 выполним следующий набор параметров :

# sh ~/HP/add_repo.sh "mcp" -a "x86_64" -d "CentOS" -r "7" -n

image

Для того, чтобы проверить правильно ли скриптом сформирована ссылка к файлам репозитория «mcp«, перейдём в браузере на указанный URL и проверим существование rpm пакетов по этому пути.

В репозитории «spp» каталога для CentOS нет, поэтому «прикинемся» RHEL аналогичной версии:

# sh ~/HP/add_repo.sh "spp" -a "x86_64" -d "RHEL" -r "7" -n

image

Опять же, для того, чтобы проверить правильно ли скриптом сформирована ссылка к файлам репозитория «spp«, перейдём в браузере на указанный URL и проверим существование rpm пакетов по этому пути.

Помимо подключения в качестве репозитория папки с текущей версией Service Pack for ProLiant (SPP), которая доступна по ссылке …/spp/RHEL/7/x86_64/current, для серверов старого поколения ProLiant G5 «до кучи» можно подключить в качестве дополнительного репозитория каталог с последней поддерживаемой версией SPP для G5 – …/spp/RHEL/7/x86_64/2014.06.0_supspp_rhel7.0_x86_64/

***

В конечном итоге, узнав всё, что нам нужно от скрипта, сделаем все необходимые изменения в системе сами в том виде, в котором считаем более удобным и правильным для себя.

Для начала скопируем в систему ключи подключаемых репозиториев HP:

# wget http://downloads.linux.hpe.com/SDR/repo/spp/GPG-KEY-spp -O /etc/pki/rpm-gpg/RPM-GPG-KEY-HP-SPP
# wget http://downloads.linux.hpe.com/SDR/repo/mcp/GPG-KEY-mcp -O /etc/pki/rpm-gpg/RPM-GPG-KEY-HP-MCP

Создадим в каталоге /etc/yum.repos.d/ три отдельных repo-файла описывающих подключаемые репозитории HP:

# touch /etc/yum.repos.d/HP-MCP.repo
# touch /etc/yum.repos.d/HP-SPP-Current.repo
# touch /etc/yum.repos.d/HP-SPP-2014-06.repo

Содержимое файла HP-MCP.repo:

# HP Management Component Pack repo
# About repo: http://downloads.linux.hpe.com/SDR/project/mcp/
# About keys: http://downloads.linux.hpe.com/SDR/keys.html
# 
[HP-MCP]
name=HP Software Delivery Repository for Management Component Pack
baseurl=http://downloads.linux.hpe.com/SDR/repo/mcp/CentOS/7/x86_64/current
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-HP-MCP

Содержимое файла HP-SPP-Current.repo:

# HP Service Pack for ProLiant (current version) repo
# About repo: http://downloads.linux.hpe.com/SDR/project/spp/
# About keys: http://downloads.linux.hpe.com/SDR/keys.html
# 
[HP-SPP-Current]
name=HP Software Delivery Repository for Service Pack for ProLiant (current)
baseurl=http://downloads.linux.hpe.com/SDR/repo/spp/RHEL/7/x86_64/current
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-HP-SPP

Содержимое файла HP-SPP-2014-06.repo:

# HP Service Pack for ProLiant (ver.2014.06.0) repo
# About repo: http://downloads.linux.hpe.com/SDR/project/spp/
# About keys: http://downloads.linux.hpe.com/SDR/keys.html
# 
[HP-SPP-2014-06]
name=HP Software Delivery Repository for Service Pack for ProLiant (Last G5 SPP)
baseurl=http://downloads.linux.hpe.com/SDR/repo/spp/RHEL/7.2/x86_64/2014.06.0_supspp_rhel7.0_x86_64/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-HP-SPP

Всё, нужные нам репозитории HP можно считать подключенными. Теперь можно проверить, какие пакеты нам доступны, например, в созданном нами репозитории HP-MCP:

# yum --disablerepo="*" --enablerepo="HP-MCP" list available

image

Как видим, пакеты доступны и теперь можно переходить к их установке.

 

Устанавливаем утилиты управления HP

Устанавливаем нужные пакеты:

# yum install hp-health hp-snmp-agents hpssa hpssacli hp-smh-templates hpsmh hponcfg hpdiags

image

В процессе загрузки пакетов может возникнуть ошибка, так как репозитории HP отдают контент весьма загадочным образом. В таком случае просто попробуйте запустить команду повторно. Если же всё-таки закачка постоянно обрывается с предупреждениями типа «Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds«…

image

…то можно попробовать изменить значения по-умолчанию для таймаутов yum в файле /etc/yum.conf в секции [main]:

[main]
...
minrate=1
timeout=300

По умолчанию yum имеет таймаут соединения в 30 секунд (timeout). Увеличьте его, например, в 10 раз. А значение minrate определяет порог самой низкой скорости в байтах в секунду для соединения. Уменьшим значение по умолчанию (1000), например, до минимума.  После  того, как файлы из репозиториев HP будут загружены, значения конфигурации yum можно вернуть обратно.

 

Настраиваем службу SNMP

После окончания установки запускаем утилиту, которая сконфигурирует службу snmpd для работы с HP System Management Homepage.

# /usr/sbin/hpsnmpconfig

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

image

После этого утилита задаст ряд вопросов, касающихся настройки службы snmpd, на которые нам нужно будет ввести соответствующие данные. В частности, можно задать строку подключения SNMP для RW/RO доступа и т.п., хотя обязательным является только ввод строки для RW доступа, а остальные значения можно оставить ненастроенными и предлагаемыми по умолчанию, так как на данном этапе у нас служба SNMP всё равно будет использоваться только для нужд HP System Management Homepage и работать только на кольцевом интерфейсе (Loopback) с адресом 127.0.0.1.

image

По окончанию опроса введённые данные будут записаны в конфигурационный файл /etc/snmp/snmpd.conf и служба snmpd будет запущена с этими параметрами. Если мы заглянем в файл snmpd.conf, то увидим внесённые туда изменения в  начале файла:

image

Все остальные включённые по умолчанию параметры файла snmpd.conf, которые расположены ниже секции вписанной утилитой hpsnmpconfig, можно закомментировать. В качестве исключения я оставил лишь строку отключающую логирование, чтобы не засорять syslog. 

...
dontLogTCPWrappersConnects yes
...

После внесения дополнительных изменений в snmpd.conf перезапустим службу snmpd

# service snmpd restart

После этого можно будет «постучаться» на наш сервер снаружи по протоколу SNMP любой утилитой, чтобы убедиться в том, что он никому снаружи на SNMP-запросы не отвечает. Для того, чтобы проверить то, что на кольцевом интерфейсе snmpd успешно отвечает на запросы поставим в систему пакет с утилитами для работы с SNMP и выполним пару таких проверок:

# yum -y install net-snmp-utils
# snmpget -v1 127.0.0.1 -c public sysDescr.0
# snmpwalk -v1 127.0.0.1 -c public

Дополнительно проверим включён ли автоматический запуск службы snmpd при запуске системы:

# systemctl status snmpd

image

Если по какой-то причине автоматический запуск не включён, включаем:

# systemctl enable snmpd

 

Запускаем утилиты управления HP и проверяем их работу

Теперь запускаем службы HP и убеждаемся в том, что при их запуске нет никаких ошибок

# service hp-health start 
# /opt/hp/hpssa/bin/hpssa -start
# service hpsmhd restart

Обратите внимание на то, что по умолчанию веб-приложение HPE Smart Storage Administrator (hpssa) не запущено, так как по сути своей оно не носит характер инструмента постоянного мониторинга, и поэтому, в случае необходимости доступа к нему через веб интерфейс SMH, запускать его нужно отдельно с последующим перезапуском службы hpsmhd:

# /opt/hp/hpssa/bin/hpssa -start 
# service hpsmhd restart

image

Соответственно, после того как утилита не нужна, можно выполнить остановку её службы командой:

# /opt/hp/hpssa/bin/hpssa -stop

image

***

Включим автоматический запуск служб при загрузке системы:

# systemctl enable snmpd
# systemctl enable hp-health # systemctl enable hpsmhd

***

Теперь нам нужно настроить брандмауэр для того, чтобы работал удалённый доступ по сети к веб-странице HP System Management Homepage (для этого по умолчанию используется HTTPS на порту TCP 2381).

Создадим описание новой службы в используемом по умолчанию в CentOS 7 брандмауэре firewalld

# firewall-cmd --permanent --new-service=hpsmh

На практике я столкнулся с ситуацией, когда на одном из серверов в процессе установки CentOS 7 по какой-то причине не был установлен firewalld. Исправить эту ситуацию можно простым способом, описанным в Вики-статье CentOS 7 -bash: firewall-cmd: command not found.

Наполним файл /etc/firewalld/services/hpsmh.xml содержимым:

<?xml version="1.0" encoding="utf-8"?>
<service>
<short>hpsmh</short>
<description>HP System Management Homepage</description>
<port protocol="tcp" port="2381"/>
</service>

Добавим информацию о службе в нужную нам зону брандмауэра и перезагрузим брандмауэр без разрыва соединений:

# firewall-cmd --permanent --zone=public --add-service=hpsmh
# firewall-cmd --reload

Теперь пробуем удалённо подключиться к веб-странице HP System Management Homepage через веб-браузер. После аутентификации (используем учётные данные локальной учёной записи администратора сервера) мы получим доступ к информации о текущем состоянии нашего сервера: 

image

Если веб-приложение HPE Smart Storage Administrator (hpssa) нами ранее было запущено, то в разделе Storage нам будет доступно управление контроллером Smart Array 

image

 

На вкладке Webapps в разделе дополнительных агентов будет доступна ссылка HP Insight Diagnostics

image

Перейдя по этой ссылке откроется отдельное веб-приложение где можно будет получить более подробную диагностическую информацию об оборудовании сервера и его текущем состоянии.

image

В целом на этом всё.

***

Дополнительно можно отметить тот факт, что на CentOS 7.2 помимо перечисленных утилит можно также установить ещё и агента репозитория VCRMHP Version Control Agent for Linux (VCA). Текущая версия 7.3.5-0 (05.06.2015) может быть загружена отсюда: 

# wget http://ftp.hp.com/pub/softlib2/software1/pubsw-linux/p774107023/v108905/hpvca-7.3.5-0.noarch.rpm -P ~/HP
#  yum install ~/HP/hpvca-7.3.5-0.noarch.rpm

Однако мои попытки использования агента VCA на CentOS желаемого результата не принесли, так как агент VCA не хочет брать обновления с VCRM предназначенные для RHEL, а всевозможные попытки заставить агента VCA думать то, что он на самом деле работает не на CentOS 7.2 а на RHEL 7.2, успехом не увенчались. Возможно у меня просто слишком мало опыта работы с CentOS Linux, для того, чтобы отмачивать такие трюки, а возможно и сам VCA настолько RHEL-ориентированный, что подобные трюки не  помогут. В любом случае, если мне когда-нибудь удастся решить вопрос полноценной работы VCA на CentOS, то я об этом обязательно напишу отдельно.

Всего комментариев: 11 Комментировать

  1. andrei /

    А можно скачать SPP запустить со своей машины и натравить его на сервер. И SPP спокойно установить необходимый набор драйверов. Одновременно можно устанавливать еще на несколько машин и с разными платформами.

    1. Алексей Максимов / Автор записи

      Спасибо. Про такой режим я не подумал. Однако он потребует настроенного или отключенного брандмауэра на удалённых Linux-системах? Какие при таком режиме обновления требования по портам?

      1. andrei /

        Алексей, у нас проблема в другом, для части серверов нельзя подключить интернет. Так что локальные репозитарии если нужно и диски с SPP,сервера в отдельном сегменте сети. По портам, не знаю т.к. для инсталляции временно отключаю совсем . Но вроде ему достаточно SSH порта.
        Кстати с SPP инсталлируем так же пакеты для локальных хостов ESXi, отказались от сборок. Готовые сборки от HP имеют проблемы, судя по нотам на vmwareKB.

        Сама цикл статей очень интересный, т.к. основные грабли именно с установкой драйверов и ПО. Если для ОС Windows достаточно просто, то у Linux нужно по колдовать.
        Ссылку кинул нашим системный инженерам, пусть изучают.

        1. Алексей Максимов / Автор записи

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

  2. MaX /

    Не вполне понимаю в чем проблема написать свой сценарий установки, используя выборку требуемых RPM-пакетов или из диска SPP, или вообще в ручную? Нафига все эти сложности с какой-то синхронизацией, если заранее известны какие пакеты необходимо ставить
    Я лично даже на Win-системах делаю сборку актуальных пакетов РУКАМИ и распространяю: копирую в корень, скажем, системного диска и менеджерам конечных сервисов предупреждаю, что во время очередной установки обновлений исполнить такой-то cmd — там все автономно, т.к. такой набор предварительно обкатывается «на кошечках», а иначе ИМХО вообще нефиг лезть в эту тему. Можно, конечно, выполнить синхронизацию с VCRM, но там даже не винде далеко не всегда и не все обновляет: например, firmware для адаптеров ЛВС и СХД на серверах не синхрятся никогда — из прошивок только системная плата, iLO и прошивки для накопителей — это максимум, что я видел. Так, что самописные пакеты рулят, если, конечно, руки достаточно прямые.
    Что касается xNIX, то не вижу проблем самому выковырять руками необходимые RPM, ложить необходимые их и скрипт на локальном ftp или, скажем, rsync, закачивать (синхрить) все это добро на конечный сервер и запускать скрипт с последовательным выполнением сценариев.

    Кстати, Алексей на счет «этот репозиторий для доступа требует авторизацию по токену, который в свою очередь генерируется на сайте HP и привязывается к аккаунту с действующим сервисным контрактом.» А в чем проблема, не понял? В том, что невозможно синхронизировать из-за отсутствия контракта? А как ты собираешься закачать SPP, который тоже отдается только по контракту? Токен же при наличии активного контракта генерируется очень просто: достаточно поставить VCRM и ковырнуть настройки :)

  3. Обратная ссылка: CentOS Linux 7.2 и HP Array Config Utility (ACU) для управления устаревшими контроллерами HP Smart Array | Блог IT-KB /

  4. Юрий /

    Запускается hpsmhd: AH00557: hpsmhd: apr_sockaddr_info_get() failed for htcdn.ru
    AH00558: hpsmhd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName’ directive globally to suppress this message

    Как исправить?

    1. Алексей Максимов / Автор записи

      Судя по содержимому ошибки проблема с разрешением имени сервера. Проверьте содержимое файлов

      /etc/hostname:

      KOM-AD01-VM31.holding.com

      и /etc/hosts:

      127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
      ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

  5. Игорь /

    Алексей, подскажите как тоже самое провернуть с убунту 16.04.1lts и сервером 120g5p.
    Заранее благодарю

    1. Алексей Максимов / Автор записи

      Не подскажу. Не имел такого опыта.

  6. С. /

    Как-то криво работает hpsmhd c systemd (RHEL 7.3):
    # systemctl enable hpsmhd
    hpsmhd.service is not a native service, redirecting to /sbin/chkconfig.
    Executing /sbin/chkconfig hpsmhd on

    При загрузке системы сервис как бы стартует, но systemd кажет, что нет:

    # systemctl status hpsmhd
    * hpsmhd.service — SYSV: HP System Management Homepage server.
    Loaded: loaded (/etc/rc.d/init.d/hpsmhd; bad; vendor preset: disabled)
    Active: failed (Result: timeout) since Tue 2017-02-28 09:43:25 MSK; 8min ago
    Docs: man:systemd-sysv-generator(8)
    CGroup: /system.slice/hpsmhd.service
    |- 2830 /opt/hp/hpsmh/sbin/hpsmhd -DSSL -f /opt/hp/hpsmh/conf/smhpd.conf
    |- 2832 /opt/hp/hpsmh/bin/rotatelogs /var/spool/opt/hp/hpsmh/logs/error_log 5M
    |- 2833 /opt/hp/hpsmh/bin/rotatelogs /var/spool/opt/hp/hpsmh/logs/access_log 5M
    |- 2836 /opt/hp/hpsmh/sbin/hpsmhd -DSSL -f /opt/hp/hpsmh/conf/smhpd.conf
    |- 2837 /opt/hp/hpsmh/sbin/hpsmhd -DSSL -f /opt/hp/hpsmh/conf/smhpd.conf
    |- 2838 /opt/hp/hpsmh/sbin/hpsmhd -DSSL -f /opt/hp/hpsmh/conf/smhpd.conf
    |- 2839 /opt/hp/hpsmh/sbin/hpsmhd -DSSL -f /opt/hp/hpsmh/conf/smhpd.conf
    |- 2840 /opt/hp/hpsmh/sbin/hpsmhd -DSSL -f /opt/hp/hpsmh/conf/smhpd.conf
    `-12927 /opt/hp/hpsmh/sbin/hpsmhd -DSSL -f /opt/hp/hpsmh/conf/smhpd.conf

    Feb 28 09:38:25 … systemd[1]: Starting SYSV: HP System Management Homepage server….
    Feb 28 09:38:26 … hpsmhd[20160]: hpsmhd already running
    Feb 28 09:38:26 … systemd[1]: PID file /opt/hp/hpsmh/logs/httpd.pid not readable (yet?) after start.
    Feb 28 09:43:25 … systemd[1]: hpsmhd.service start operation timed out. Terminating.
    Feb 28 09:43:25 … systemd[1]: Failed to start SYSV: HP System Management Homepage server..
    Feb 28 09:43:25 … systemd[1]: Unit hpsmhd.service entered failed state.
    Feb 28 09:43:25 … systemd[1]: hpsmhd.service failed.

    # service hpsmhd status

    hpsmhd (pid 12927 2840 2839 2838 2837 2836 2830) is running…

    В чем причина? Никто не сталкивался?

Добавить комментарий