maxhoesel.nut_netclient

maxhoesel.nut_netclient

Wydanie Status CI Licencja

Zainstaluj NUT i upsmon na docelowym systemie oraz skonfiguruj go, aby monitorował zdalne UPS przez sieć w trybie netclient.

Wymagania

  • Host działający na jednym z następujących systemów
    • Ubuntu 18.04 LTS lub nowszy
    • Debian 9 lub nowszy
  • Uprawnienia administratora na hoście

Zmienne roli

UWAGA: Zobacz tutaj więcej informacji na temat wartości upsmon.conf i ich celu.

nut_netclient_monitors
  • Lista systemów UPS do monitorowania
  • Musi być listą wpisów monitorujących, z których każdy jest słownikiem zawierającym następujące wartości:
    • system: System do monitorowania. Format: <nazwa_ups>[@<nazwa_hosta>[:<port>]]
    • powervalue: Liczba zasilaczy, które ten system dostarcza do hosta. Zwykle 1
    • username: Nazwa zdalnego użytkownika monitorującego
    • password: Hasło zdalnego użytkownika monitorującego
    • type: Typ relacji UPS, albo master albo slave
  • Przykład:
    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
    
  • Wymagane: tak
  • Domyślnie: undefined
nut_netclient_notifymsg_<type>
  • Ustaw niestandardową wiadomość powiadamiającą dla określonego typu wiadomości
  • Ważne typy można znaleźć w instrukcji upsmon (sekcja NOTIFYMSG)
  • Przykład:
    nut_netclient_notifymsg_online: UPS %s wrócił online
    nut_netclient_notifymsg_lowbatt: UPS %s ma niski poziom baterii
    
nut_netclient_notifyflag_<type>
  • Ustaw flagi powiadomień dla poszczególnych typów zdarzeń
  • Ważne typy i flagi można znaleźć w instrukcji upsmon
  • Przykład:
    nut_netclient_notifyflag_online: SYSLOG
    nut_netclient_notifymsg_lowbatt: SYSLOG+WALL+EXEC
    

Prefiks dla wszystkich poniższych zmiennych: nut_netclient_

Nazwa Podsumowanie Wymagane Domyślne
deadtime Czas przed uznaniem UPS za "martwy" w sekundach 15
finaldelay Czas między ostatnim ostrzeżeniem o wyłączeniu a poleceniem w s 5
hostsync Przekroczenie czasu między masterem a niewolnikami w sytuacjach wyłączenia w s 15
minsupplies Minimalna ilość zasilaczy potrzebna do działania 1
nocommwarntime Interwał między ostrzeżeniami o błędach komunikacji w s 300
notifycmd Wywołaj to polecenie, aby wysłać wiadomości undefined
pollfreq Czas między zapytaniami UPS w s 5
pollfreqalert Czas między zapytaniami UPS, gdy zasilanie z baterii w s 5
powerdownflag Plik flagowy, który upsmon tworzy podczas wyłączenia /etc/killpower
rbwarntime Interwał wysyłania wiadomości o wymianie baterii w s 43200
run_as_user Uruchom monitor jako inny użytkownik undefined
shutdowncmd Polecenie do uruchomienia podczas wyłączania systemu. Musi być ujęte w cudzysłów, jeśli zawiera spacje "/sbin/shutdown -h +0"
certpath Ścieżka do pliku certyfikatu lub bazy danych undefined
certident Identyfikator certyfikatu do pobrania (jeśli używasz NSS) undefined
certhost Dyrektywy hosta (jeśli używasz NSS) undefined
certverify Czy należy sprawdzić certyfikaty SSL. Musi być 0 lub 1 undefined
forcessl Czy wymusić połączenia SSL. Musi być 0 lub 1 undefined

Przykładowy plik playbooka

- hosts: all
  become: yes
  tasks:
    - name: Uruchom 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

Testowanie

Ta rola używa tox i molecule do testowania. Musisz mieć zainstalowane następujące pakiety:

  • python3-tox
  • Docker

Następnie po prostu uruchom test.sh w głównym katalogu tej roli. Możesz zobaczyć i uruchomić poszczególne testy za pomocą tox -l

O projekcie

Install and configure NUT to act as a netclient slave

Zainstaluj
ansible-galaxy install maxhoesel.nut_netclient
Licencja
gpl-3.0
Pobrania
11.9k
Właściciel
Junior Automation and Infrastructure Engineer, Bachelor in CompSci. I write Ansible content and DevOps-related tools, mostly in Rust