Подключение Ippon Back Basic 650 на Linux

Подключение Ippon Back Basic 650 в Linux позволяет автоматически управлять питанием сервера при сбоях электроснабжения. В этом руководстве мы рассмотрим установку и настройку NUT (Network UPS Tools) для мониторинга состояния ИБП, корректного завершения работы системы и защиты данных от потери при отключении электричества.

В данном гайде будем подключать Ippon Back Basic 650 на Debian 12. Если у вас еще не установлен сервер Debian 12, то рекомендую воспользоваться статьей на сайте Установка Debian 12 в качестве сервера.

Установка NUT

# apt update
# apt install nut

Подключите ИБП и проверьте, как он определяется

Подключите ИБП через USB и выполните:

# lsusb

Должно выдать примерно как на картинке ниже:

В нашем случае ИБП определяется как устройство 0665:5161 Cypress Semiconductor USB to Serial. Это означает, что он использует USB-to-Serial чип, который совместим с драйвером blazer_usb в NUT.

Настройка драйвера на подключение Ippon к серверу

Откройте файл ups.conf:

# nano /etc/nut/ups.conf

Добавьте в самом конце:

[ippon]
    driver = blazer_usb
    port = auto
    desc = "Ippon Back Basic 650"
    vendorid = 0665
    productid = 5161

Сохраняем изменения и выходим из nano.

Настройте режим работы NUT

Откройте файл nut.conf:

# nano /etc/nut/nut.conf

Измените параметр MODE на:

MODE=standalone

Сохраняем изменение и выходим из nano.

Настройте доступ к ИБП

Редактируем файл upsd.conf:

# nano /etc/nut/upsd.conf

Добавляем в самый низ:

LISTEN 127.0.0.1 3493

Сохраняем изменения и выходим из nano.

Теперь создаем пользователя в upsd.users:

# nano /etc/nut/upsd.users

Добавьте в конце файла:

[admin]
    password = superpassword
    actions = SET
    instcmds = ALL
    upsmon master

Внимание!

Замените superpassword на ваш пароль.

Сохраняем изменения и выходим из nano.

Настроим upsmon для автоматического выключения

Открываем upsmon.conf:

# nano /etc/nut/upsmon.conf

Добавляем в самом конце файла строки:

MONITOR ippon@localhost 1 admin superpassword master
NOTIFYFLAG ONLINE     SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYCMD /sbin/upssched

Внимание!

Замените superpassword на ваш пароль.

Проверьте, что раскомментирован параметр:

POWERDOWNFLAG /etc/killpower

Запускаем NUT и проверяем работу

Перезапускаем службы:

# systemctl restart nut-server nut-monitor

Проверяем статус:

# systemctl status nut-server nut-monitor

Должно получиться примерно как на картинке ниже:

Если всё хорошо, проверяем данные ИБП:

# upsc ippon@localhost

Вы должны увидеть информацию примерно как на картинке ниже:

При такой настройке, если батарея разрядится ниже критического уровня, сервер выполнит shutdown. Если вас это устраивает, можете заканчивать настройку.

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

Настройка ИБП на отключение по расписанию

Открываем upssched.conf:

# nano /etc/nut/upssched.conf

Далее меняем или добавляем следующие параметры:

CMDSCRIPT /usr/local/bin/upssched-cmd
PIPEFN /run/nut/upssched/upssched.pipe
LOCKFN /run/nut/upssched/upssched.lock
AT ONBATT * START-TIMER shutdown_timer 300
AT ONLINE * CANCEL-TIMER shutdown_timer

Сохраняем изменения и выходим из nano.

Пояснения по параметрам выше.

  1. CMDSCRIPT /usr/local/bin/upssched-cmd
    🔹 Указывает путь к скрипту, который будет выполняться при срабатывании таймеров. В данном случае, это /usr/local/bin/upssched-cmd, который отвечает за выключение сервера и отправку команды на отключение ИБП.
  2. PIPEFN /run/nut/upssched/upssched.pipe
    🔹 Файл канала (FIFO), через который процессы upssched и upsmon взаимодействуют друг с другом.
  3. LOCKFN /run/nut/upssched/upssched.lock
    🔹 Файл блокировки, предотвращающий одновременный запуск нескольких экземпляров upssched.
  4. AT ONBATT * START-TIMER shutdown_timer 300
    🔹 При переходе ИБП на батарею (ONBATT) запускает таймер shutdown_timer на 300 секунд (5 минут).
    🔹 Если питание не восстановится в течение этого времени, upssched вызовет /usr/local/bin/upssched-cmd shutdown_timer и выполнит выключение сервера.
  5. AT ONLINE * CANCEL-TIMER shutdown_timer
    🔹 Если питание восстановилось (ONLINE) до истечения 300 секунд, таймер shutdown_timer отменяется.

Создайте необходимые директории для PIPEFN и LOCKFN:

# mkdir -p /run/nut/upssched

Установите правильные права доступа:

# chown nut:nut /run/nut/upssched
# chmod 750 /run/nut/upssched

Так как в нашей конфигурации используется директория /run, которая является временной (tmpfs) и очищается при перезагрузке, то для того чтобы папка upssched в /run/nut у нас не пропадала после перезагрузки, мы будем автоматически ее создавать при загрузке системы. Для этого воспользуемся конфигурацией systemd-tmpfiles.

Создайте файл конфигурации для tmpfiles.d:

# nano /etc/tmpfiles.d/nut-upssched.conf

Добавьте в него следующую строку:

d /run/nut/upssched 0750 nut nut -

Сохраняем изменения и выходим из nano.

Теперь создадим скрипт, который у нас будет вызываться по окончанию таймера при переходе ИБП на питание от батареи:

# nano /usr/local/bin/upssched-cmd

И добавьте в него следующее содержимое:

#!/bin/bash

case "$1" in
    shutdown_timer)
        logger -t upssched-cmd "UPS on battery for 300 sec, initiating shutdown sequence."
        # Сначала запускаем выключение сервера:
        sudo /sbin/shutdown -h now
        # Подождём немного, чтобы сервер начал завершение работы
        sleep 10
        # После этого отправляем команду на отключение UPS
        sudo upscmd -u admin -p superpassword ippon shutdown.return
        ;;
    *)
        logger -t upssched-cmd "Unrecognized timer command: $1"
        ;;
esac

Внимание!

Замените superpassword на ваш пароль.

Сохраняем изменения и выходим из nano.

Установите права на файл и сделайте его исполняемым:

# chown root:nut /usr/local/bin/upssched-cmd
# chmod +x /usr/local/bin/upssched-cmd

И разрешите пользователю nut перезапускать сервер:

# nano /etc/sudoers.d/nut

Добавьте строку:

nut ALL=(ALL) NOPASSWD: /sbin/shutdown

Сохраняем изменения и выходим из nano.

Перезапускаем службы:

# systemctl restart nut-server nut-monitor

Заключение

Настройка NUT для управления питанием сервера через ИБП Ippon Back Basic 650 на Debian 12 позволяет значительно повысить отказоустойчивость системы и предотвратить потерю данных при отключении электричества. В этом руководстве мы подробно рассмотрели процесс установки и конфигурации сервиса, начиная от определения устройства и настройки драйвера до автоматического завершения работы системы при критическом разряде батареи.

Дополнительно мы настроили отложенное отключение сервера через 5 минут после перехода ИБП на батарею, что позволяет избежать внезапного выключения при кратковременных перебоях электроэнергии. Также учтены нюансы работы /run в Debian 12, обеспечивая автоматическое создание нужных директорий при загрузке системы.

После завершения всех настроек сервер теперь автоматически завершает работу перед разрядом батареи, а ИБП отключается и включается только при восстановлении электропитания. Остается лишь настроить в BIOS автоматическое включение сервера при подаче питания, чтобы система могла восстанавливаться без вмешательства администратора.

Подключение Ippon Back Basic 650 в Linux теперь полностью настроено, что позволяет эффективно управлять питанием сервера и минимизировать риски, связанные с отключением электроэнергии.

Помогла статья? Подписывайся на Telegram канал автора.

Анонсы всех статей, много другой полезной и интересной информации, которая не попадает на сайт.

Если у вас имеются вопросы, задавайте их в комментариях.

Оставьте комментарий