===== Установка агента ИБП APC для автоматического выключения ОС Debian GNU/Linux 9 (Stretch) - APC PowerChute Network Shutdown ===== {{:unix-linux:debian:stretch:pasted:20180416-102315.png }} В случае если физические серверы на базе **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**. \\ ==== Устанавливаем поддержку 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 "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. \\ ==== Устанавливаем APC PowerChute Network Shutdown ==== Загружаем пакет ''pcns420Linux-x86-64.tar.tar'' с [[http://www.apc.com/shop/ru/ru/categories/PowerChute-Network-Shutdown/_/N-auzzn7|официального сайта APC]] и распаковываем во временный каталог. В распакованном каталоге ''../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**, чтобы ознакомиться с лицензионным соглашением: {{ :unix-linux:debian:stretch:pasted:20180416-092356.png }} Просмотрев лицензионное соглашение набираем **yes**, чтобы принять его положения: {{ :unix-linux:debian:stretch:pasted:20180416-092549.png }} Соглашаемся с установкой в каталог по умолчанию ''/opt/APC/PowerChute'' {{ :unix-linux:debian:stretch:pasted:20180416-092726.png }} Далее скрипт установки предложит нам либо согласиться с использованием версии Java, поставляемой в составе PowerChute, либо указать путь ранее предустановленной версии. Вводим ранее полученный путь к исполняемым файлам Java: {{ :unix-linux:debian:stretch:pasted:20180416-092853.png }} Далее будет задан вопрос о необходимости настройки службы SNMP. В нашем случае это не требуется, поэтому мы отказываемся от данного пункта: {{ :unix-linux:debian:stretch:pasted:20180416-093256.png }} В завершении скрипт установки скопирует исполняемые файлы PCNS в каталог ''/opt/APC/PowerChute'' и мы получим сообщение о том, что дальнейшую настройку установленного агента PCNS можно провести через веб-интерфейс, доступный по адресу ''https://ServerName:6547'' {{ :unix-linux:debian:stretch:pasted:20180416-093533.png }} В процессе установки скрипт инициализации, который используется для автоматического запуска службы **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: {{ :unix-linux:debian:stretch:pasted:20180416-095230.png }} Пройдём шаги мастера по подключению PCNS к контроллерам управления NMC от источников бесперебойного питания, к которым подключен наш Linux-сервер: {{ :unix-linux:debian:stretch:pasted:20180416-095405.png }} Обратите внимание на то, что если ранее не были открыты порты **TCP**/**UDP 3052**, то попытки подключения контроллеров NMC к агенту PCNS будут завершаться ошибками. По завершению процедуры первичного подключения к контроллерам управления ИБП мы получим доступ к основному веб-интерфейсу ПО PowerChute Network Shutdown, где сможем произвести дополнительные настройки реагирования на события связанные с изменением режима электропитания: {{:unix-linux:debian:stretch:pasted:20180416-095857.png}} Перезагрузим сервер, чтобы убедиться в том, что автоматический запуск службы **PowerChute** успешно работает после запуска ОС. Ранее упомянутый init-скрипт ''/etc/init.d/PowerChute'' должен быть подхвачен службой **systemd** и преобразован в юнит с именем **PowerChute**: {{ :unix-linux:debian:stretch:pasted:20180416-100415.png }} \\ ==== Удаление APC PowerChute Network Shutdown ==== В случае возникновения необходимости удаления APC PowerChute Network Shutdown из Linux-системы, можно воспользоваться вызовом скрипта:
# /opt/APC/PowerChute/uninstall
---- Дополнительные источники информации: * [[https://download.schneider-electric.com/files?p_enDocType=User+guide&p_File_Id=8499699549&p_File_Name=PMAR-9HBK44_R5_EN.pdf|Installation Guide PowerChute Network Shutdown v4.2 (PMAR-9HBK44_R5_EN.pdf)]] ---- Проверено на следующих конфигурациях: ^ Версия ОС ^ |Debian GNU/Linux Stretch 9.3 | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 16.04.2018 08:44 {{tag>Linux Debian "Debian 9" "Debian Stretch" Networking UPS NMC APC PowerChute PCNS Java JRE OpenJDK}} ~~DISCUSSION~~