Cet article vise à configurer un service nut sur un serveur Proxmox (valable pour Debian) et à le préparer pour lui permettre de remonter les informations à Peanut.
PVE
Vérifier que l’onduleur est bien reconnu dans les périphériques usb
lsusb
Pour ma part l’onduleur s’affiche ainsi :
Bus 001 Device 007: ID 0463:ffff MGE UPS Systems UPS
Installer nut :
apt update && apt install nut -y
nut.conf
Modifier le fichier /etc/nut/nut.conf pour changer le mode (none par défaut), mettre netserver (sera utile pour y avoir accès via le réseau par la suite) :
MODE=netserver
ups.conf
On configure ce qui a trait à l’onduleur en lui même dans /etc/nut/ups.conf (à rajouter à la fin du fichier) :
[onduleur]
driver = usbhid-ups
port = auto
vendorid = 0463
productid = ffff
desc = "Onduleur Eaton"
upsd.conf
Dans /etc/upsd.conf, on ajoute une ligne pour dire à nut d’écouter le port 3493 sur l’interface réseau du serveur proxmox :
# =======================================================================
# LISTEN <IP address or name> [<port>]
# LISTEN 127.0.0.1 3493
# LISTEN ::1 3493
# LISTEN myhostname 83493
# LISTEN myhostname.mydomain
#
# With no LISTEN statement, the default is localhost and port 3493.
# In case of IP v4 or v6 disabled kernel, only the available one will
# be used.
# Note that it is not true for Windows platforms. You shouldn't use IPv6 in
# your configuration files unless you have IPv6 installed.
#
# As a special case, `LISTEN * <port>` (with an asterisk) will try
# to listen on "ANY" IP address for both IPv6 (::0) and IPv4 (0.0.0.0),
# subject to `upsd` command-line arguments, or system configuration.
# Note that if the system supports IPv4-mapped IPv6 addressing per RFC-3493,
# and does not allow to disable this mode, then there may be one listening
# socket to handle both address families.
#
# One or more LISTEN statements give the IP address (or name that
# resolves to such an address) for upsd to listen on, optionally with
# a port number.
#
# As an example, a machine with a LAN and a WAN interface that also
# functions as a router and firewall might be configured to listen
# only on the LAN interface.
#
# This will only be read at startup of upsd. If you make changes here,
# you'll need to restart upsd, as reload will have no effect.
#
LISTEN 192.168.0.6 3493
upsd.users
On crée les utilisateurs dont on aura besoin dans le fichier /etc/nut/upsd.users (à ajouter à la fin du fichier) :
[upsmon]
password = <UPSMON_PASSWORD>
upsmon primary
[peanut]
password = <PEANUT_PASSWORD>
upsmon slave
[upsroot]
password = <UPSROOT_PASSWORD>
actions = SET
instcmd = ALL
upsmon : daemon de surveillance de proxmox
peanut : autorise une instance peanut à se connecter
upsroot : permet de modifier la configuration de l’onduleur
Permissions
Appliquer les permissions usb :
udevadm control --reload-rules
udevadm trigger
Vérifier les droits attribués au périphérique:
ls -l /dev/bus/usb/001/007
L’utilisateur ou le groupe doit afficher nut (ex : crw-rw---- 1 root nut ...).
Driver et services
Lancer le pilote et vérifier
systemctl start nut-driver@onduleur
upsdrvctl start
Retourne:
root@pve2:~# upsdrvctl start
Network UPS Tools - UPS driver controller 2.8.1
Network UPS Tools - Generic HID driver 0.52 (2.8.1)
USB communication driver (libusb 1.0) 0.46
Duplicate driver instance detected (PID file /run/nut/usbhid-ups-onduleur.pid exists)! Terminating other driver!
Using subdriver: MGE HID 1.46
Si le pilote s’initialise correctement, on relance les services et on interroge l’onduleur :
systemctl restart nut-server nut-client
upsc onduleur@localhost
On oublie pas d’enregistrer les services si on veut un redémarrage automatique au reboot (c’est mieux) :
systemctl enable nut-driver@onduleur nut-server nut-client
Réglage du seuil
Configuration supplémentaire, j’aime bien passer la limite de déclenchement de l’extinction des serveurs à 35% (au lieu de 20% par défaut) :
upsrw -s battery.charge.low=35 -u upsroot onduleur@localhost
Un mot de passe est demandé, saisir le mdp de l’utilisateur upsroot.
On a maintenant une configuration opérationnelle. Reste à remonter les infos dans Peanut.
Peanut
Il suffit de renseigner les paramètres de connexion dans l’interface de Peanut, à savoir le nom que l’on souhaite voir s’afficher dans peanut, l’ip du serveur nut (définie dans upsd.conf), l’identifiant et le mot de passe définis dans upsd.users.