nut_netclient

maxhoesel.nut_netclient

Релиз Статус CI Лицензия

Установите NUT и upsmon на целевой системе и настройте их для мониторинга удаленного ИБП через сеть в режиме netclient.

Требования

  • Хост, работающий на одной из следующих дистрибуций:
    • Ubuntu 18.04 LTS или новее
    • Debian 9 или новее
  • Права суперпользователя на хосте

Переменные роли

ПРИМЕЧАНИЕ: Дополнительную информацию о значениях upsmon.conf и их назначении можно найти здесь.

nut_netclient_monitors
  • Список систем ИБП для мониторинга.
  • Должен быть список записей мониторов, каждая запись — это словарь, содержащий следующие значения:
    • system: Система для мониторинга. Формат: <upsname>[@<hostname>[:<port>]]
    • powervalue: Количество источников питания, которые эта система подает на хост. Обычно 1.
    • username: Имя пользователя удаленного монитора.
    • password: Пароль удаленного пользователя монитора.
    • type: Тип отношения ИБП, либо master, либо slave.
  • Пример:
    nut_netclient_monitors:
        - system: "[email protected]"
          powervalue: 1
          username: monitor
          password: a-secure-password
          type: slave
        - system: "[email protected]"
          powervalue: 1
          username: monitor
          password: a-different-password
          type: slave
    
  • Обязательный: да
  • По умолчанию: неопределено
nut_netclient_notifymsg_<type>
  • Установите пользовательское уведомление для данного типа сообщения.
  • Допустимые типы можно найти в руководстве upsmon (раздел NOTIFYMSG).
  • Пример:
    nut_netclient_notifymsg_online: ИБП %s снова в сети
    nut_netclient_notifymsg_lowbatt: ИБП %s теперь с низким уровнем заряда
    
nut_netclient_notifyflag_<type>
  • Установите флаги уведомления для отдельных типов событий.
  • Допустимые типы и флаги можно найти в руководстве upsmon.
  • Пример:
    nut_netclient_notifyflag_online: SYSLOG
    nut_netclient_notifymsg_lowbatt: SYSLOG+WALL+EXEC
    

Префикс для всех переменных ниже: nut_netclient_

Название Описание Обязательно По умолчанию
deadtime Время до объявления ИБП "мертвым" в секундах 15
finaldelay Время между последним предупреждением о выключении и командой в секундах 5
hostsync Тайм-аут между мастером и слейвами в ситуациях выключения в секундах 15
minsupplies Минимальное количество источников питания, необходимых для работы 1
nocommwarntime Интервал между предупреждениями об ошибках связи в секундах 300
notifycmd Выполните эту команду для отправки сообщений неопределено
pollfreq Время между опросами ИБП в секундах 5
pollfreqalert Время между опросами ИБП при работе от аккумулятора в секундах 5
powerdownflag Файл-флаг, который upsmon создает во время отключения /etc/killpower
rbwarntime Интервал для отправки сообщений о замене батареи в секундах 43200
run_as_user Запустить монитор от имени другого пользователя неопределено
shutdowncmd Команда для выполнения при выключении системы. Должна быть заключена в кавычки, если содержит пробелы "/sbin/shutdown -h +0"
certpath Путь к файлу или базе сертификаций неопределено
certident Идентификатор сертификата для получения (если используется NSS) неопределено
certhost Директивы хоста (если используется NSS) неопределено
certverify Нужно ли проверять SSL-сертификаты. Должно быть 0 или 1 неопределено
forcessl Нужно ли принудительно использовать SSL-соединения. Должно быть 0 или 1 неопределено

Пример плейбука

- hosts: all
  become: yes
  tasks:
    - name: Запустить nut_netclient
      include_role:
        name: maxhoesel.nut_netclient
      vars:
        nut_netclient_monitors:
          - system: "[email protected]"
            powervalue: 1
            username: monitor
            password: a-secure-password
            type: slave

Тестирование

Эта роль использует tox и molecule для тестирования. Убедитесь, что у вас установлено следующее:

  • python3-tox
  • Docker

Затем просто выполните test.sh в корневом каталоге этой роли. Вы можете просмотреть и запустить отдельные тесты с помощью tox -l

О проекте

Install and configure NUT to act as a netclient slave

Установить
ansible-galaxy install maxhoesel/ansible-role-nut-netclient
Лицензия
gpl-3.0
Загрузки
9243
Владелец
Junior Automation and Infrastructure Engineer, Bachelor in CompSci. I write Ansible content and DevOps-related tools, mostly in Rust