Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
В случае если физические серверы на базе Debian GNU/Linux 9 «Stretch» подключены к ИБП APC, и эти ИБП имеют контроллеры управления APC Network Management Card (NMC), мы можем настроить автоматическое штатное выключение ОС Linux в случае проблем с электропитанием. Для этого на стороне Linux-сервера нам потребуется установить и настроить специального программного агента, управляемого о стороны ИБП - APC PowerChute Network Shutdown (PCNS). Здесь приведён пример установки последней актуальной версии агента APC PCNS 4.2 for Linux на сервер Debian Linux 9.3.
Программный пакет PCNS для своей работы требует предустановленной среды Java Runtime Environment (JRE). Хотя устанавливать его предварительно и не обязательно, так как JRE имеется в составе основного дистрибутива PCNS, однако стоит учесть то обстоятельство, что поставляемая в составе PCNS версия JRE не будет в дальнейшем автоматически обновляться в системе (например на неё не будут накладываться исправления безопасности), что само по себе не всегда допустимо. Поэтому мы установим сводобный аналог JRE - OpenJDK Runtime Environment из официальных репозиториев Debian. Это позволит нам в дальнейшем получать обновления безопасности для данного ПО из репозиториев Debian.
# apt-get update # apt-get install default-jre
Посмотрим текущую установленную версию Java:
# java -version openjdk version "1.8.0_162" OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1~deb9u1-b12) OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)
Посмотрим какой путь к исполняемым файлам Java используется в системе на данный момент:
# update-alternatives --display java java - auto mode link best version is /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java link currently points to /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java link java is /usr/bin/java slave java.1.gz is /usr/share/man/man1/java.1.gz /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - priority 1081 slave java.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz
Как видим, фактический путь к исполняемым файлам java: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java. Запомним этот путь, так как он потребуется нам в дальнейшем при установке PCNS.
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Загружаем пакет pcns420Linux-x86-64.tar.tar с официального сайта APC и распаковываем во временный каталог. В распакованном каталоге ../Linux_x64 запускаем скрипт установки install.sh:
pcns420Linux-x86-64.tar.tar
../Linux_x64
install.sh
# mkdir ~/APC # cd ~/APC # mv pcns420Linux-x86-64.tar.tar pcns420Linux-x86-64.tar.gz # gunzip pcns420Linux-x86-64.tar.gz # tar -xf pcns420Linux-x86-64.tar # cd ~/APC/Linux_x64/ # ./install.sh
На первый запрос скрипта установки жмём любую клавишу, например Enter, чтобы ознакомиться с лицензионным соглашением:
Просмотрев лицензионное соглашение набираем yes, чтобы принять его положения:
Соглашаемся с установкой в каталог по умолчанию /opt/APC/PowerChute
/opt/APC/PowerChute
Далее скрипт установки предложит нам либо согласиться с использованием версии Java, поставляемой в составе PowerChute, либо указать путь ранее предустановленной версии. Вводим ранее полученный путь к исполняемым файлам Java:
Далее будет задан вопрос о необходимости настройки службы SNMP. В нашем случае это не требуется, поэтому мы отказываемся от данного пункта:
В завершении скрипт установки скопирует исполняемые файлы PCNS в каталог /opt/APC/PowerChute и мы получим сообщение о том, что дальнейшую настройку установленного агента PCNS можно провести через веб-интерфейс, доступный по адресу https://ServerName:6547
https://ServerName:6547
В процессе установки скрипт инициализации, который используется для автоматического запуска службы PowerChute в процессе запуска системы, будет скопирован в /etc/init.d/PowerChute.
/etc/init.d/PowerChute
Убедимся в том, что в нашей Linux-системы появились TCP-прослушиватели, созданные процессом java:
# ss -lnptu | sort | grep java tcp LISTEN 0 50 0.0.0.0:3052 0.0.0.0:* users:(("java",pid=14780,fd=57)) tcp LISTEN 0 50 0.0.0.0:6547 0.0.0.0:* users:(("java",pid=14780,fd=59)) udp UNCONN 0 0 0.0.0.0:3052 0.0.0.0:* users:(("java",pid=14780,fd=56)) udp UNCONN 0 0 0.0.0.0:60316 0.0.0.0:* users:(("java",pid=14780,fd=55))
Добавим правила Iptables, разрешающие подключения к портам TCP/UDP 3052 и TCP 6547
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -A INPUT -s 10.1.2.0/24 -i eth0 -p udp \ -m state --state NEW -m udp --dport 3052 -m comment \ --comment "Allow access to APC PowerChute Network Shutdown service from UPS NMC" -j ACCEPT # iptables -A INPUT -s 10.1.2.0/24 -i eth0 -p tcp \ -m state --state NEW -m tcp --dport 3052 -m comment \ --comment "Allow access to APC PowerChute Network Shutdown service from UPS NMC" -j ACCEPT # iptables -A INPUT -s 10.1.2.0/24 -i eth0 -p tcp \ -m state --state NEW -m tcp --dport 6547 -m comment \ --comment "Allow access to APC PowerChute Network Shutdown Web UI over HTTPS" -j ACCEPT
Теперь попробуем перейти к веб-странице управления агентом PCNS, которая должна быть доступна по адресу https://ServerName:6547.
Мы должны увидеть приглашение мастера первоначальной настройки PCNS:
Пройдём шаги мастера по подключению PCNS к контроллерам управления NMC от источников бесперебойного питания, к которым подключен наш Linux-сервер:
Обратите внимание на то, что если ранее не были открыты порты TCP/UDP 3052, то попытки подключения контроллеров NMC к агенту PCNS будут завершаться ошибками.
По завершению процедуры первичного подключения к контроллерам управления ИБП мы получим доступ к основному веб-интерфейсу ПО PowerChute Network Shutdown, где сможем произвести дополнительные настройки реагирования на события связанные с изменением режима электропитания:
Перезагрузим сервер, чтобы убедиться в том, что автоматический запуск службы PowerChute успешно работает после запуска ОС. Ранее упомянутый init-скрипт /etc/init.d/PowerChute должен быть подхвачен службой systemd и преобразован в юнит с именем PowerChute:
В случае возникновения необходимости удаления APC PowerChute Network Shutdown из Linux-системы, можно воспользоваться вызовом скрипта:
# /opt/APC/PowerChute/uninstall
Дополнительные источники информации:
Проверено на следующих конфигурациях:
Автор первичной редакции: Алексей Максимов Время публикации: 16.04.2018 08:44