Gestione di un UPS in Debian con Nut

From RVM Wiki
Jump to navigation Jump to search

Server con UPS collegato

  • Installazione software
sudo aptitude install nut pwgen
export UPS_NAME="apc_smartups_1500_rm"
export UPS_PASS="$(pwgen -B -c -1)"

Configurazione UPS APC USB

cat | sudo tee /etc/nut/ups.conf > /dev/null <<EOFile
[$UPS_NAME]
    driver = usbhid-ups
    port = auto
EOFile

Per UPS APC Seriale

cat | sudo tee /etc/nut/ups.conf > /dev/null <<EOFile
[$UPS_NAME]
    driver = apcsmart
    port = /dev/ttyS0
EOFile
  • Aggiungere l'utente nut al gruppo dialout, per poter usare la seriale:
sudo gpasswd -a nut dialout

Altri UPS

Per altri modelli di UPS, vedi NUT hardware compatibility list

Configurazione server

  • Avviare il demone per controllare il dialogo con l'UPS:
sudo upsdrvctl start
Network UPS Tools - UPS driver controller 2.2.2
Network UPS Tools (version 2.2.2) - APC Smart protocol driver
        Driver version 1.99.8, command table version 2.0
  • Configurare il demone:
cat | sudo tee /etc/nut/upsd.conf > /dev/null <<EOFile
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACCEPT localhost
REJECT all
EOFile
  • Configurare gli utenti e le password:
cat | sudo tee /etc/nut/upsd.users > /dev/null <<EOFile
[local_mon]
    password = $UPS_PASS
    allowfrom = localhost
    upsmon master
EOFile
  • Configurare il monitor:
cat | sudo tee /etc/nut/upsmon.conf > /dev/null <<EOFile
MONITOR ${UPS_NAME}@localhost 1 local_mon $UPS_PASS master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
EOFile


  • Sistemare le permission:
sudo chown root:nut /etc/nut/*
sudo chmod 640 /etc/nut/*
  • Abilitare i demoni all'avvio:
sudo perl -pi -e 's{^START_UPSD=no$}{START_UPSD=yes}' /etc/default/nut && \
sudo perl -pi -e 's{^START_UPSMON=no$}{START_UPSMON=yes}' /etc/default/nut && \
echo "18c0130bcd3a92f391c063bba30056f6  /etc/default/nut" | md5sum --check
  • Riavviare il tutto:
sudo invoke-rc.d nut  restart
Restarting Network UPS Tools: upsdrvctl upsdrvctl upsd upsmon.
  • Nei log:
sudo tail -f /var/log/syslog
Apr 12 13:54:18 pubserver apcsmart[32070]: Startup successful
Apr 12 13:54:18 pubserver upsd[32071]: listening on 0.0.0.0 port 3493
Apr 12 13:54:18 pubserver upsd[32071]: Connected to UPS [apc_smartups_620]: apcsmart-apc_smartups_620
Apr 12 13:54:18 pubserver upsd[32073]: Startup successful
Apr 12 13:54:18 pubserver upsmon[32075]: Startup successful
Apr 12 13:54:18 pubserver upsd[32073]: Connection from 127.0.0.1
Apr 12 13:54:18 pubserver upsd[32073]: Client local_mon@127.0.0.1 logged into UPS [apc_smartups_620]
  • Per leggere i dati dall'ups:
upsc $UPS_NAME
battery.alarm.threshold: L
battery.charge: 100.0
battery.charge.restart: 00
battery.date: 02/05/02
battery.runtime: 1920
battery.runtime.low: 120
battery.voltage: 13.85
battery.voltage.nominal: 012
driver.name: apcsmart
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyS0
driver.version: 2.2.2
driver.version.internal: 1.99.8
input.frequency: 50.00
input.quality: FF
input.sensitivity: H
input.transfer.high: 253
input.transfer.low: 208
input.transfer.reason: T
input.voltage: 227.5
input.voltage.maximum: 227.5
input.voltage.minimum: 224.6
output.voltage: 227.5
output.voltage.nominal: 230
ups.delay.shutdown: 180
ups.delay.start: 000
ups.firmware: 22.5.I
ups.id: UPS_IDEN
ups.load: 031.8
ups.mfr: APC
ups.mfr.date: 04/25/00
ups.model: Smart-UPS 620   
ups.serial: NS0018141441
ups.status: OL
ups.test.interval: 1209600
ups.test.result: NO

Client Linux collegato in rete

Configurazione Accesso sul Server

export CLIENT_NAME="firemen"
export CLIENT_DOM="cross.priv"
export CLIENT_IP="192.168.0.254"
export CLIENT_PASS="jeeR9ied"
export UPS_NAME="apc_smartups_1500_rm"
export UPS_SERVER="crosrv01.${CLIENT_DOM}"

  • Configurare il demone:
sudo sed -i -e"/^ACCEPT/i\ACL $CLIENT_NAME ${CLIENT_IP}/32" /etc/nut/upsd.conf
sudo sed -i -e"/^REJECT/i\ACCEPT $CLIENT_NAME" /etc/nut/upsd.conf

A mano:

cat | sudo tee /etc/nut/upsd.conf > /dev/null <<EOFile
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACL $CLIENT_NAME ${CLIENT_IP}/32
ACCEPT localhost
ACCEPT $CLIENT_NAME
REJECT all
EOFile
  • Configurare gli utenti e le password:
cat | sudo tee -a /etc/nut/upsd.users > /dev/null <<EOFile
[${CLIENT_NAME}]
    password = $CLIENT_PASS
    allowfrom = ${CLIENT_NAME}.$CLIENT_DOM
    upsmon master
EOFile
sudo invoke-rc.d nut restart

Configurazione Client

  • Installare
sudo aptitude install nut
  • Configurare SOLO il monitor
cat | sudo tee /etc/nut/upsmon.conf > /dev/null <<EOFile
MONITOR ${UPS_NAME}@${UPS_SERVER} 1 ${CLIENT_NAME} ${CLIENT_PASS} slave
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
EOFile
  • Impostare l'autostart per il monitor:
sudo perl -pi -e 's{^START_UPSMON=no$}{START_UPSMON=yes}' /etc/default/nut && \
echo "702612de8e9e1a34c35cd7d4b05baf30  /etc/default/nut" | md5sum --check

O a mano:

sudoedit /etc/default/nut
...
START_UPSMON=yes
...


  • Vedere se fa login:
upsc -l $UPS_SERVER
  • Vedere se legge i dati:
upsc  ${UPS_NAME}@${UPS_SERVER}
  • Riavviare
sudo invoke-rc.d nut restart

Client Windows collegato in rete

  • Lanciare il TOOL
  • Installare come servizio
  • Editare la configurazione, aggiungendo la sola riga:
 MONITOR apc_smartups_620@server.host.dom 1 client_win PASSWORD_HERE slave

Riferimenti