===== Установка агента ИБП APC для автоматического выключения ОС CentOS Linux 7.4 - APC PowerChute Network Shutdown ===== {{:unix-linux:centos:pasted:20180416-102838.png }} В случае если физические серверы на базе **CentOS Linux** подключены к ИБП **APC**, и эти ИБП имеют контроллеры управления **APC Network Management Card** (**NMC**), мы можем настроить автоматическое штатное выключение ОС Linux в случае проблем с электропитанием. Для этого на стороне Linux-сервера нам потребуется установить и настроить специального программного агента, управляемого о стороны ИБП - **APC PowerChute Network Shutdown** (**PCNS**). Здесь приведён пример установки последней актуальной версии агента **APC PCNS 4.2 for Linux** на сервер **CentOS Linux release 7.4.1708 (Core)**. \\ ==== Устанавливаем поддержку Java ==== Программный пакет PCNS для своей работы требует предустановленной среды **Java Runtime Environment** (**JRE**). Хотя устанавливать его предварительно и не обязательно, так как JRE имеется в составе основного дистрибутива PCNS, однако стоит учесть то обстоятельство, что поставляемая в составе PCNS версия JRE не будет в дальнейшем автоматически обновляться в системе (например на неё не будут накладываться исправления безопасности), что само по себе не всегда допустимо. Поэтому мы установим сводобный аналог JRE - **OpenJDK Runtime Environment** из официальных репозиториев CentOS. Это позволит нам в дальнейшем получать обновления безопасности для данного ПО из репозиториев CentOS.
# yum install java-1.8.0-openjdk
Посмотрим текущую установленную версию Java:
# java -version

openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
Посмотрим какой путь к исполняемым файлам Java используется в системе на данный момент:
# update-alternatives --display java
java - status is auto. link currently points to /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java - family java-1.8.0-openjdk.x86_64 priority 1800161 slave jre: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre ... Current `best' version is /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java.
Как видим, фактический путь к исполняемым файлам java: ''/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/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:centos:pasted:20180416-104936.png }} Просмотрев лицензионное соглашение набираем **yes**, чтобы принять его положения: {{ :unix-linux:centos:pasted:20180416-105021.png }} Соглашаемся с установкой в каталог по умолчанию ''/opt/APC/PowerChute'' Далее скрипт установки предложит нам либо согласиться с использованием версии Java, поставляемой в составе PowerChute, либо указать путь ранее предустановленной версии. Вводим ранее полученный путь к исполняемым файлам Java ''/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin'': {{ :unix-linux:centos:pasted:20180416-105127.png }} Далее будет задан вопрос о необходимости настройки службы SNMP. В нашем случае это не требуется, поэтому мы отказываемся от данного пункта: {{ :unix-linux:centos:pasted:20180416-105324.png }} В завершении скрипт установки скопирует исполняемые файлы PCNS в каталог ''/opt/APC/PowerChute'' и мы получим сообщение о том, что дальнейшую настройку установленного агента PCNS можно провести через веб-интерфейс, доступный по адресу ''https://ServerName:6547'' {{ :unix-linux:centos:pasted:20180416-105352.png }} В процессе установки скрипт инициализации, который используется для автоматического запуска службы **PowerChute** в процессе запуска системы, будет скопирован в ''/etc/init.d/PowerChute''. Убедимся в том, что в нашей Linux-системы появились TCP-прослушиватели, созданные процессом **java**:
# ss -lnptu | sort | grep java

tcp LISTEN 0 50 *:3052 *:* users:(("java",pid=28789,fd=49)) tcp LISTEN 0 50 *:6547 *:* users:(("java",pid=28789,fd=52)) udp UNCONN 0 0 *:3052 *:* users:(("java",pid=28789,fd=48)) udp UNCONN 0 0 *:49918 *:* users:(("java",pid=28789,fd=47))
Теперь нам нужно обеспечить наличие нескольких правил брандмауэра, разрешающих подключения к портам **TCP**/**UDP 3052** и **TCP 6547**. В процессе выполнения скрипта установки PCNS соответствующие разрешающие правила попадают в ''/etc/sysconfig/iptables'' и ''/etc/sysconfig/ip6tables'': ... -A INPUT -p tcp -m tcp --dport 6547 -j ACCEPT -A INPUT -p udp -m udp --dport 3052 -j ACCEPT -A INPUT -p tcp -m tcp --dport 3052 -j ACCEPT -A OUTPUT -p udp -m udp --sport 3052 -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 3052 -j ACCEPT ... Если IPv6 не используется, соответсвующие правила из ''/etc/sysconfig/ip6tables'' можно удалить. А правила ''/etc/sysconfig/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.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:centos:pasted:20180416-105509.png }} Перезагрузим сервер, чтобы убедиться в том, что автоматический запуск службы **PowerChute** успешно работает после запуска ОС. Ранее упомянутый init-скрипт ''/etc/rc.d/init.d/PowerChute'' должен быть подхвачен службой **systemd** и преобразован в юнит с именем **PowerChute**: {{ :unix-linux:centos:pasted:20180416-105926.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)]] ---- Проверено на следующих конфигурациях: ^ Версия ОС ^ |CentOS Linux release 7.4.1708 (Core) | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 16.04.2018 10:30 {{tag>Linux CentOS "CentOS 7" Networking UPS NMC APC PowerChute PCNS Java JRE OpenJDK}} ~~DISCUSSION~~