Ubuntu NUT a ESXi

Záměr

Záměrem je mít fyzický server se systémem VMWare ESXi a který je připojen na záložní zdroj UPS. V případě výpadku napájení dojde k vypnutí jednotlivých VM a nakonec je vypnut ESXi.

Řešení

Server je fyzicky připojen na UPS zařízení, které je monitorováno jedním z virtuálních hostů (Ubuntu server) pomocí programu NUT. UPS je připojena přes USB kabel. Na VMWare ESXi je nainstalován klient serveru NUT, který se dotazuje serveru NUT a je jim řízen. Verze VMWare ESXi je 7.0 Update 3.

Instalace

Instalace NUT (Network UPS Tools) je provedena na Ubuntu server 22.04 ve verzi 2.7.4 zadáním

$ sudo apt install nut

Po instalaci spustíme monitorování připojených UPS zařízení zadáním příkazu

$ nut-scanner

Konfigurace NUT serveru

Nejprve změníme konfiguraci v souboru /etc/nut/nut.conf, kde nastavíme mód netserver

#MODES: none/standalone/netserver/netclient
MODE=netserver

Nastavíme konfiguraci v souboru /etc/nut/ups.conf zadáním následujících příkazů

# Přidání popisu sekce do konfigurace
$ echo -e "\n# Detected UPS from USB" | sudo tee -a /etc/nut/ups.conf

# Přidání detailů detekované UPS na portu USB
$ nut-scanner -UNq 2>/dev/null | sudo tee -a /etc/nut/ups.conf

# Prohlédneme si výsledek
$ sudo cat /etc/nut/ups.conf

Měli bychom dostat podobný výsledek

# Detected UPS from USB
[nutdev1]
	driver = "usbhid-ups"
	port = "auto"
	vendorid = "051D"
	productid = "0002"
	bus = "001"

Nyní můžeme změnit [nutdev1] na něco reprezentativnějšího pro naši UPS a také přidat pole desc pro popis zařízení UPS. K úpravě konfiguračních souborů budeme potřebovat příkaz sudo a editor nano nebo vi. Zadáme příkaz

# Edit the config file
$ sudo nano /etc/nut/ups.conf

a nastavíme něco podobného. Název v hranatých závorkách [APCBU1400] budeme používat dále v konfiguračních souborech.

# Detected UPS from USB
[APCBU1400]
	driver = "usbhid-ups"
	port = "auto"
	desc = "APC Back-UPS 1400VA / 700w"
	vendorid = "051D"
	productid = "0002"
	bus = "001"

Dále ověříme práva a existenci složek v cestě /var/run/nut

$ mkdir /var/run/nut
$ chown root:nut /var/run/nut
$ chmod 770 /var/run/nut

Ověříme, zda nám probíhá komunikace s UPS správně

$ upsdrvctl start

Dále upravíme konfiguraci v souboru /etc/nut/upsd.conf kde nastavíme adresy a porty, na kterých bude server NUT naslouchat

 =======================================================================
# LISTEN <address> [<port>]
# IP v4 adresa a port localhost
LISTEN 127.0.0.1 3493
# IP v4 adresa a port LAN rozhraní
LISTEN 10.11.57.17 3493
# Případně IP v6 adresy a porty
# LISTEN ::1 3493

V souboru /etc/nut/upsd.users nastavíme uživatele, jeho heslo a práva

# To add a user for your upsmon, use this example:
#
#	[upsmon]
#		password  = pass
#		upsmon master
# or
#		upsmon slave
#
# The matching MONITOR line in your upsmon.conf would look like this:
#
# MONITOR myups@localhost 1 upsmon pass master	(or slave)

[monuser]
	password = nastavené-heslo
	upsmon master

V souboru /etc/nut/upsmon.conf nastavíme v sekci MONITOR připojovací řetězec, kde použijeme nastavení definována v souboru /etc/nut/upsd.users

# Examples:
#
# MONITOR myups@bigserver 1 monmaster blah master
# MONITOR su700@server.example.com 1 upsmon secretpass slave
# MONITOR myups@localhost 1 upsmon pass master  (or slave)

MONITOR APCBU1400@localhost 1 monuser nastavené-heslo master

Nakonec načteme data z připojené UPS zadáním

$ upsc APCBU1400@localhost
battery.charge: 100
battery.voltage: 54.70
battery.voltage.high: 52.00
battery.voltage.low: 41.60
battery.voltage.nominal: 48.0
device.mfr: 
device.model: LIHVX1K4
.........

NUT klient na ESXi

Nejprve na ESXi hostu povolíme a spustíme službu SSH.

Dále si stáhneme nejnovějšího klienta NUT pro ESXi z adresy https://rene.margar.fr/2012/05/client-nut-pour-esxi-5-0/

Stažený soubor zkopírujeme do ESXi, do adresáře /tmp/nut.

Dále zkontrolujeme, zda máme ESXi hosta přepnutého na úroveň Community acceptance. Je to z důvodu instalace staženého balíčku. použijeme příkaz pro zjištění úrovně

[root@localhost:~] esxcli software acceptance get

Nastavení úrovně provedeme ve webovém rozhraní nebo použijeme příkaz

[root@localhost:~] esxcli software acceptance set -level=CommunitySupported

Já jsem použil pro kopírování souboru Bitwise SSH Clienta. Nejprve se přepneme do adresáře /tmp/nut a rozbalíme zkopírovaný soubor a spustíme instalaci

[root@localhost:~] cd /tmp/nut
[root@localhost:/tmp/nut] tar -xzf NutClient-ESXi-2.8.0-2.4.1.x86_64.tar.gz
[root@localhost:/tmp/nut] sh upsmon-install.sh
Installation Result
   Message: Operation finished successfully.
   Reboot Required: false
   VIBs Installed: Margar_bootbank_upsmon_2.8.0-2.4.1
   VIBs Removed:
   Skipped VIBs:

Pro zahájení používání klienta NUT v systému ESXi není nutné restartovatserver. Před prvním spuštěním však musíte klienta NUT nakonfigurovat.

Přihlásíme se do webového rozhraní ESXi, v sekci Host vybereme Manage, System, Advanced settings a dáme vyhledat klíč UserVars.Nut. Nastavíme hodnoty klíčů následovně:

  • klíč UserVars.NutPassword nastavíme heslo, které jsme nastavili na NUT serveru v souboru /etc/nut/upsd.users
  • klíč UserVars.NutUser nastavíme uživatele, kterého jsme nastavili na NUT serveru v souboru /etc/nut/upsd.users
  • klíč UserVars.NutUpsName nastavíme název UPS, které jsme nastavili na NUT serveru v souboru /etc/nut/ups.conf

Dále přejdeme do sekce Services, vyhledáme službu NutClient a nastavíme ji na automatické spouštění se startem hosta ESXi.

Ověření nastavení brány firewall

Při instalaci by měl být přidán soubor upsmon.xml do složky /etc/vmware/firewall. Kontrolu provedeme zadáním příkazu

[root@localhost:~] ls /etc/vmware/firewall
service.xml        upsmon.xml         vltd-firewall.xml  vsanhealth.xml

Dalším příkazem zjistíme, zda je NUT služba ve firewallu povolena

[root@localhost:~] esxcli network firewall ruleset list

Zkontrolujeme, zda nám klient komunikuje se serverem NUT zadáním

[root@localhost:~] /opt/nut/bin/upsc název-ups@ip-adresa-nut-serveru
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.date: 2001/09/25
battery.mfr.date: 2017/08/17
battery.runtime: 932
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 13.5
battery.voltage.nominal: 12.0
device.mfr: American Power Conversion
..................

2 komentáře u „Ubuntu NUT a ESXi

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *