Introduzione.
Per i felici possessori di una scheda Hp iLo, sappiate che si può utilizzare la Virtual Serial Port per gestire una console seriale.
Architettura:
- iLo sul server che si vuole monitorare
- un server esterno che possa tenere il log della console remota
- Pacchetti da installare sul server che fa da registratore:
- conserver-server sito del progetto
- expect sito del progetto
- [Facoltativo, ma consigliato] conserver-client, serve per accedere interattivamente alle consoles configurate in conserver.
Abilitare la Virtual Serial Port.
Occorre come prima cosa abilitare la VSP nel BIOS, collegandola a COM0 oppure COM1, che vengono viste da Linux rispettivamente come ttyS0 e ttyS1. Per le istruzioni vedere il Manuale HP, link nella sezione bibliografica.
Abilitare la serial console in Lenny
Configurazione del bootloader
- Collegarsi al server che si vuol monitorare
- Scoprire quale porta seriale usare col comando seguente:
# dmesg|grep tty
- Assumiamo che sia la ttyS0
- Editare /boot/grub/menu.lst
- Cercare le seguenti righe:
## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line) and entries protected by the
# command 'lock'
# e.g. password topsecret
# password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret
- Lasciandole stare aggiungete appena sotto le seguenti:
# Aggiunta console seriale anche per grub
serial --unit=0 --speed=115200
terminal --timeout=10 serial console
- Ora modifichiamo le opzioni di default per il kernel, cerchiamo quindi le righe seguenti:
## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/mapper/pve-root ro
- Ne modifichiamo solo l'ultima, aggiungendo le segueinti opzioni: console=tty0 console=ttyS0,115200, l'aspetto finale sarà:
# kopt=root=/dev/mapper/pve-root ro console=tty0 console=ttyS0,115200
- Ora salviamo e chiudiamo
- Al prompt dei comandi digitiamo:
# update-grub
questo rigenera il menu di boot (in fondo a menu.lst)
Configurazione della serial console in inittab
- Editiamo il file /etc/inittab
- Cerchiamo le righe seguenti:
# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
- duplichiamo la T0 e la modifichiamo cambiando l'id in S0 e modificando la velocità di comunicazione come segue:
S0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100
L'aspetto finale della sezione modificata sarà:
# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
#Console seriale su COM1
S0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100
- Ora salviamo e lanciamo il seguente comando per la rilettura del file:
# init q
Ora la console è collegata alla porta seriale ttyS0; serve un programma client che la utilizzi. Normalmente si usa un altro host con installato un programma (es: minicom) che gestisca i collegamenti tramite seriale. Nel nostro caso è la scheda ILO che implementa essa stessa un client, invocabile dalla CLI della ILO con il comando VSP; si veda lo script di expect più sotto. La ILO mette a disposizione anche una interfaccia ethernet e un demone ssh; useremo quindi ssh e conserver da un'altro host per registrare l'output della console.
Il server per la registrazione (conserver)
Installare i pacchetti
Configurazione di conserver
Configurazione di expect
- Creiamo il file /etc/conserver/ilo-startvsp, che servirà per lanciare la Virtual Serial Port, come segue:
#!/usr/bin/expect -f
#
#####################################################################
# Script expect per automatizzare il login iLO VSP con conserver #
#####################################################################
# Hardware Supported: any server with iLO1-2-3
# Virtual Serial Port must be configured in RBSU.
# To be useful, the operating System must be running a console on
# the VSP (Virtual Serial Port).
set send_slow {1 0.02}
expect "</>hpiLO->"
sleep 7
send "VSP"
sleep 3
send -s "\r"
exit 0
Passiamo alla fase succcessiva!
Importare la chiave di collegamento SSH nella iLo
Per permettere al demone conserver di connettersi via ssh alla iLo del server dobbiamo usare una chiave di tipo DSA.
Ok fatto, ora siamo a cavallo, per provare la connessione dal server di registrazione col comando:
# ssh -i /etc/coserver/.ssh/id_iLo Administrator@ServerDaMonitorare
Prima connessione con l'utente conservr
Il demone conserver gira con un utente apposito e non come root.
Per poter connettersi via ssh bisogna popolare, o meglio creare, il file /etc/conserver/.ssh/known_hosts.
Il modo migliore è quello di:
Conclusione = test
Ed ora lanciamo il comando:
# /etc/init.d/conserver restart
Se tutto funziona come si deve dovremmo vedersi popolare i log che si trovano in /var/log/conserver/
Note utili
N.B: Al momento lo stop del demone conserver fatto con lo script di init non abbatte le connessioni ssh verso le iLo, che vanno rimosse uccidendo manualmente i relativi processi.
- Se aggiornate il firmware della iLo, ricordatevi di reinserire l'host nel file known_host dell'utente conservr, come da sezione precedente. L'aggiornamento infatti modifica la chiave della iLo.
- iLo3, problema conosciuto per continui scollegamenti via ssh con firmware precedenti la versione 1.28! Aggiornare quindi il firmware iLo3 almeno alla 1.28.
Bibliografia
Guida HP per ILO Virtual Serial Port
Guida seguita per la soluzione
Abilitare la serial console in LENNY
Abilitare la serial console in SQUEEZE
Expect
Conserver