Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:debian:buster:how-to-install-java-jre-and-ups-agent-apc-powerchute-network-shutdown-on-debian-linux-10-buster

Установка агента ИБП APC для автоматического выключения ОС Debian GNU/Linux 10 (Buster) - APC PowerChute Network Shutdown 4.3

В случае если физические серверы на базе Debian GNU/Linux 10 «Buster» подключены к ИБП APC, и эти ИБП имеют контроллеры управления APC Network Management Card (NMC), мы можем настроить автоматическое штатное выключение ОС Linux в случае проблем с электропитанием. Для этого на стороне Linux-сервера нам потребуется установить и настроить специального программного агента, управляемого о стороны ИБП - APC PowerChute Network Shutdown (PCNS). Здесь приведён пример установки последней актуальной версии агента APC PCNS 4.3 for Linux на сервер Debian Linux 9.3.


Устанавливаем поддержку Java

Программный пакет 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 "11.0.3" 2019-04-16 OpenJDK Runtime Environment (build 11.0.3+1-Debian-1) OpenJDK 64-Bit Server VM (build 11.0.3+1-Debian-1, mixed mode, sharing)

Посмотрим какой путь к исполняемым файлам Java используется в системе на данный момент:

# update-alternatives --display java
java - auto mode link best version is /usr/lib/jvm/java-11-openjdk-amd64/bin/java link currently points to /usr/lib/jvm/java-11-openjdk-amd64/bin/java link java is /usr/bin/java slave java.1.gz is /usr/share/man/man1/java.1.gz /usr/lib/jvm/java-11-openjdk-amd64/bin/java - priority 1111 slave java.1.gz: /usr/lib/jvm/java-11-openjdk-amd64/man/man1/java.1.gz

Как видим, фактический путь к исполняемым файлам java: /usr/lib/jvm/java-11-openjdk-amd64/bin/java. Запомним этот путь, так как он потребуется нам в дальнейшем при установке PCNS.


Устанавливаем APC PowerChute Network Shutdown

Загружаем пакет pcns430Linux-x86-64.tar.gz с официального сайта APC и распаковываем во временный каталог.

# mkdir ~/APC
# cd ~/APC
# gunzip pcns430Linux-x86-64.tar.gz
# tar -xf pcns430Linux-x86-64.tar
# cd ~/APC/Linux_x64/

В распакованном каталоге ../Linux_x64 можем найти несколько файлов, в числе которых скрипт установки install.sh.

Этот скрипт установки в рассматриваемой нами версии PCNS 4.3 устроен таким образом, что в случае, если установка выполняется на Linux-системе, то скриптом будет предпринята попытка использовать JRE из поставляемого архива (jre-11.0.1_linux-x64_bin.tar.gz), который расположен рядом со скриптом установки. Даже не смотря на то, что в Linux-системе уже установлена такая же или более новая версия JRE.

Для того, чтобы использовать вместо этой старой версии JRE более свежую, установленную нами ранее версию Java 11.0.3, достаточно просто произвольно переименовать архив со старой бандловой версией JRE, например, следующим образом:

:

# mv ./jre-11.0.1_linux-x64_bin.tar.gz ./jre-11.0.1_linux-x64_bin.tar.gz.block

Теперь можем запускать скрипт установки:

# ./install.sh

На первый запрос скрипта установки жмём любую клавишу, например Enter, чтобы ознакомиться с лицензионным соглашением:

Просмотрев лицензионное соглашение набираем yes, чтобы принять его положения:

Соглашаемся с установкой в каталог по умолчанию /opt/APC/PowerChute

Далее скрипт установки предложит нам указать путь к исполняемым файлам Java, так как ранее мы изменили имя файла с архивом JRE из поставки и скрипт не обнаружил предопределённое в его константах имя. Укажем путь к каталогу согласно ранее установленной нами версии Java: /usr/lib/jvm/java-11-openjdk-amd64/bin.

Если бы в нашей системе не было установленной версии Java и мы не меняли бы имя файла с архивом JRE (jre-11.0.1_linux-x64_bin.tar.gz), то скрипт установки PowerChute не стал бы задавать лишних вопросов и сразу бы выполнил установку PCNS с привязкой к собственной версии JRE 11.0.1, которую он автоматически распаковал бы из архивного файла в подкаталог /opt/APC/PowerChute/jre-11.0.1.

В нашем же случае скрипт должен обнаружить в указанном нами каталоге более новую версию Java 11.0.3 и прописать её в настройках среды исполнения устанавливаемой версии PCNS.

В завершении работы скрипта мы получим сообщение о том, что дальнейшую настройку установленного агента PCNS можно провести через веб-интерфейс, доступный по адресу https://ServerName:6547

В процессе установки в систему будет установлена и запущена служба systemd c именем PowerChute.service. Эта служба будет использоваться для автоматического запуска службы PowerChute в процессе запуска системы.

Проверим текущий статус службы и убедимся в том, что она работает, настроена на автоматический запуск, а также то, что используется указанная нами версия Java:

# systemctl status PowerChute.service

Убедимся в том, что в нашей Linux-системы появились TCP-прослушиватели, созданные процессом java:

# ss -lnptu | sort | grep java

tcp LISTEN 0 50 0.0.0.0:3052 0.0.0.0:* users:(("java",pid=4724,fd=55)) tcp LISTEN 0 50 0.0.0.0:6547 0.0.0.0:* users:(("java",pid=4724,fd=53)) udp UNCONN 0 0 0.0.0.0:3052 0.0.0.0:* users:(("java",pid=4724,fd=52)) udp UNCONN 0 0 0.0.0.0:60077 0.0.0.0:* users:(("java",pid=4724,fd=51))

Теперь нам нужно добавить правила в брандмауэр Debian Buster, разрешающие доступ к портам PowerChute.

Обратите внимание на то, что в ходе работы скрипта установки PowerChute, этим скриптом предпринимается попытка создать правила брандмауэра, разрешающие подключения к портам PowerChute. Поэтому, во избежание некорректно созданных правил, после окончания выполнения скрипта установки PowerChute, рекомендуется проверить действующие правила брандмауэра.

Как минимум, доступ к портам PowerChute TCP/UDP 3052 необходимо открыть из сети, в которой находятся контроллеры управления ИБП APC NMC. Кроме того, может потребоваться открыть доступ к веб-странице PowerChute TCP 6547 для сети администраторов, которые будут выполнять удалённую настройку PowerChute на нашем сервере.

В случае, если управление брандмауэром выполняется через «модный» фреймворк nftables, то разрешающие правила могут выглядеть следующим образом:

# nft add rule ip filter INPUT ct state related,established counter accept
# nft add rule ip filter INPUT iifname "eth0" ip saddr 10.1.2.0/24 \
ct state new tcp dport 3052 counter accept \
comment \"Allow access to APC PowerChute Network Shutdown service from UPS NMC\"
# nft add rule ip filter INPUT iifname "eth0" ip saddr 10.1.2.0/24 \
ct state new udp dport 3052 counter accept \
comment \"Allow access to APC PowerChute Network Shutdown service from UPS NMC\"
# nft add rule ip filter INPUT iifname "eth0" ip saddr 10.1.1.0/24 \
ct state new tcp dport 6547 counter accept \
comment \"Allow access to APC PowerChute Network Shutdown Web UI over HTTPS\"

В том случае, если управление брандмауэром выполняется через iptables, то разрешающие правила могут выглядеть следующим образом

# 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.1.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-сервер. В нашем примере выполнено отказоустойчивое подключение (Redundant) сразу к двум контроллерам NMC с разных ИБП, к которым подключен сервер разными блоками питания:

Обратите внимание на то, что если ранее не были открыты порты TCP/UDP 3052, то попытки подключения контроллеров NMC к агенту PCNS будут завершаться ошибками.

По завершению процедуры первичного подключения к контроллерам управления ИБП мы получим доступ к основному веб-интерфейсу ПО PowerChute Network Shutdown, где сможем произвести дополнительные настройки реагирования на события связанные с изменением режима электропитания:

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


Удаление APC PowerChute Network Shutdown

В случае возникновения необходимости удаления APC PowerChute Network Shutdown из Linux-системы, можно воспользоваться вызовом скрипта:

# /opt/APC/PowerChute/uninstall


Дополнительные источники информации:


Проверено на следующих конфигурациях:

Версия ОС
Debian GNU/Linux Duster 10.0

Автор первичной редакции:
Алексей Максимов
Время публикации: 19.06.2019 17:01

Обсуждение

Ваш комментарий:
 

unix-linux/debian/buster/how-to-install-java-jre-and-ups-agent-apc-powerchute-network-shutdown-on-debian-linux-10-buster.txt · Последние изменения: 20.06.2019 08:09 — Алексей Максимов