Gestione di un UPS in Debian con Nut
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
- 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
- Installare da uno dei due siti
- 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