В данном HOWTO мы подробно рассмотрим как поднять Nut в современных версиях ОС GNU/Linux на примере дистрибутива Fedora 17 и UPS Ippon Smart Power Pro (Smart Winner).
Четыре года назад я уже писал как поднять Ippon в Linux, но та статья безнадёжно устарела, поэтому написана данная полностью с нуля.
Для работы UPS под Linux нам потребуется установить пакет nut (Network UPS Tools), а также клиент для него (консольный или с графическим интерфейсом).
Мы рассмотрим подробно как установить и настроить nut в дистрибутиве Fedora, а в конце данного руководства приведём полные листинги конфигов.
Для загрузки и установки пакета nut и всех зависимостей выполните в консоли команду:
sudo yum -y install nut nut-client
Пакет был успешно установлен и готов к дальнейшей настройке.
Установите мощный файловый менеджер Midnight Commander консольной командой:
sudo yum -y install mc mcedit
Данный менеджер нам понадобится для быстрого редактирования конфигов и операций с ними. Можно обойтись и без него, запуская например Krusader, Gnome Commander, Nautilus, Dolphin или другой ФМ с графическим интерфейсом. Выбор остаётся за вами, но я рекомендую всё-таки MC, тем более в большинстве дистрибутивов он установлен по умолчанию.
Сразу после установки в каталоге /etc/ups/ вы увидите примеры файлов конфигурации с расширением *.conf.sample. Для дальнейшей работы с ними нам необходимо переименовать их в *.conf, отбросив sample. Проще всего это сделать следующей командой в консоли:
cd /etc/ups/ sudo rename .sample '' *.sample
Конфиги подготовлены. Можно приступать к редактированию.
Запустите MC с правами root:
sudo mc
Перейдите в каталог /etc/ups/ и откройте файл nut.conf во встроенном редакторе (клавишей F4). В самом конце файла укажите:
MODE=standalone
Если вы хотите подключаться к своему серверу nut удалённо (не рекомендуется из соображений безопасности), то вместо standalone пропишите netserver.
Откройте в редакторе файл ups.conf. Здесь задаются параметры вашего источника бесперебойного питания. Пример для IPPON, подключённого по USB:
[myups] driver = blazer_usb port = /dev/usb/hiddev0 desc = "IPPON Smart Power Pro"
Пример для IPPON, подключённого по RS-232 (COM):
[myups] driver = blazer_ser port = /dev/ttyS0 desc = "IPPON Smart Power Pro"
Рассмотрим директивы более подробно:
В файле upsd.conf задаются параметры доступа к службе UPS. Откройте его в редакторе и в конце пропишите следующие директивы:
ACL all 0.0.0.0/0 ACL localhost 127.0.0.1/32 ACCEPT localhost REJECT all LISTEN 127.0.0.1 3493 LISTEN ::1 3493
Это включит доступ к сервису только для локальных IP-адресов и заставит upsd слушать порт 3493 одновременно на IPv4 и IPv6. Если вы не используете в ЛВС IPv6, то последнюю строку можете закомментировать, либо вообще не прописывать в файле.
Служба UPS, а равно как и монитор, должны запускаться от отдельного пользователя, находящегося в группе nut. Группа nut создаётся автоматически при установке пакета.
Создадим пользователя upsmaster:
sudo adduser upsmaster
Зададим пользователю пароль:
sudo passwd upsmaster
Введите и запомните новый пароль для пользователя upsmaster два раза. Он нам потребуется далее при настройке nut client.
Добавим пользователя upsmaster в группу nut:
sudo usermod -G nut upsmaster
Пользователь успешно создан и ему выданы необходимые права.
Откройте файл upsd.users (находится там же, в /etc/ups/) и в самом конце пропишите:
[upsmaster] password = pAssW0RD allowfrom = localhost upsmon master
Здесь в качестве пароля pAssW0RD укажите пароль, который вы задали пользователю upsmaster после его создания.
Теперь откройте файл upsmon.conf. Найдите директиву RUN_AS_USER, уберите около неё символ комментария # (решётка) если он имеется и укажите:
RUN_AS_USER upsmaster
Теперь найдите директиву MONITOR, также уберите символ комментария # и пропишите:
MONITOR [email protected] 1 upsmaster pAssW0RD master
Здесь pAssW0RD — это пароль пользователя upsmaster, который вы задали при его создании и прописали в конфиге upsd.users.
Включаем службу (это активирует её автоматический запуск при старте системы):
sudo systemctl enable nut-server.service
Запускаем службу:
sudo systemctl start nut-server.service
Чтобы узнать запустилась служба или нет, выполните:
systemctl status nut-server.service
Если служба запустилась с ошибками, то для более подробного вывода можете попробовать запустить службу напрямую:
sudo upsdrvctl start
Выполните в консоли:
upsc [email protected]
Если всё настроено верно, вы увидите текущий статус UPS и значения всех его переменных.
Если Вам необходим удобный мониторинг состояния UPS и вы используете в качестве основной среды KDE 4, то установите KNutClient.
Если у вас 32-битная версия Fedora, выполните:
cd ~ wget http://download.fedoraproject.org/pub/fedora/linux/releases/15/Everything/i386/os/Packages/knutclient-1.0.4-2.fc15.i686.rpm sudo yum -y localinstall knutclient*.rpm
Если 64-битная:
cd ~ wget http://download.fedoraproject.org/pub/fedora/linux/releases/15/Everything/x86_64/os/Packages/knutclient-1.0.4-2.fc15.x86_64.rpm sudo yum -y localinstall knutclient*.rpm
На этом установка пакета KNutClient завершена. Перейдём к его настройке.
Запустите KNutClient, выберите в меню Settings пункт Configure KNutClient, перейдите на страницу UPS, нажмите кнопку Add.
В открывшемся окне пропишите параметры настроенного UPS:
Обязательно поставьте флажок в чекбоксе Store NUT password in configuration file, что заставит KNutClient сохранить пароль в своём файле конфигурации.
В этом же окне выберите датчики, которые будут отображаться на панели KNutClient. Для IPPON Smart Power Pro (Smart Winner) гарантированно работают следующие:
Остальные датчики могут не работать и не отображаться на панели при их выборе. Нажмите OK во всех окнах. Настройка полностью завершена.
Листинг файла nut.conf:
MODE=standalone
Листинг файла ups.conf:
[myups] driver = blazer_usb port = /dev/usb/hiddev0 desc = "IPPON Smart Power Pro"
Листинг файла upsd.conf:
ACL all 0.0.0.0/0 ACL localhost 127.0.0.1/32 ACCEPT localhost REJECT all LISTEN 127.0.0.1 3493 LISTEN ::1 3493
Листинг файла upsd.users:
[upsmaster] password = pAssW0RD allowfrom = localhost upsmon master
Листинг файла upsmon.conf:
RUN_AS_USER upsmaster MONITOR [email protected] 1 upsmaster pAssW0RD master MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 5
Все комментарии в листингах файлов в приложениях удалены.