SOL : déport d'écran et clavier via IPMI
Par Dju » 13 juillet 2011 (20:20) - Serveur
Voici une autre fonctionnalité extrêmement intéressante de l'IPMI: la possibilité d'obtenir à distance un shell sur une machine, en plus de pouvoir surveiller tout le processus de boot
J'ai nommé: SOL (pour Serial Over Lan)
En clair: déporter écran et clavier via l'IPMI.
Ainsi, si on se trompe dans la configuration réseau, par exemple, et que la machine n'est plus joignable, on peut toujours s'y connecter via ipmi et réparer avec le shell (donc sur une machine windows c'est pas la peine hein ? :p )
De même, si on doit absolument rebooter une machine, on peut donc assister à tout le processus de boot, rentrer dans le bios, taper F1 si on a oublié de désactiver la vérification du clavier au démarrage :D .... etc
Comment c'est y qu'on fait ?
Tout d'abord, il faut avoir activé l'IPMI sur la machine (voir billet à ce sujet)
Ensuite, il faut s'assurer que l'IPMI que vous avez dispose bien de la fonction SOL, car ce n'est pas forcémment le cas...
Pour ce faire, un coup de
ipmitool bmc info
à la ligne IPMI Version, vérifier que la valeur est bien 2.0
Si vous avez 1.5, alors vous n'avez pas de SOL. (edit: à confirmer, il y a une option isol dans ipmitool qui concerne le 1.5...)
Pour ceux qui ont pu suivre jusqu'ici, il faut désormais configurer votre machine pour avoir un terminal sur le port série ipmi.
Pour ce faire, on édite le fichier /etc/inittab (au moins pour tous les *nux à base de debian - mais pas ubuntu)
Vers le bas, on recherche la ligne
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
on la décommente (en enlevant le # en début de ligne) puis on change le 9600 (la vitesse du port) en 57600, éventuellement en 115200
(par défaut, la vitesse est à 57600, on peut le changer dans le bios)
pour ubuntu, voire la page de référence
Puis, pour faire prendre en compte la nouvelle config, on tape
init q
ou
kill -HUP 1
Puis on vérifié qu'il y a bien un nouveau terminal prêt à recevoir des commandes sur le port série :
ps aux | grep getty
on obtient quelque chose comme ceci :
root 3374 0.0 0.0 3800 576 tty1 Ss+ Jul07 0:00 /sbin/getty 38400 tty1 root 3375 0.0 0.0 3800 576 tty2 Ss+ Jul07 0:00 /sbin/getty 38400 tty2 root 3376 0.0 0.0 3800 580 tty3 Ss+ Jul07 0:00 /sbin/getty 38400 tty3 root 3377 0.0 0.0 3800 580 tty4 Ss+ Jul07 0:00 /sbin/getty 38400 tty4 root 3379 0.0 0.0 3800 580 tty5 Ss+ Jul07 0:00 /sbin/getty 38400 tty5 root 3380 0.0 0.0 3800 576 tty6 Ss+ Jul07 0:00 /sbin/getty 38400 tty6 root 10166 0.0 0.0 7244 860 pts/0 S+ 14:49 0:00 grep getty root 22261 0.0 0.0 3800 584 ttyS1 Ss+ Jul12 0:00 /sbin/getty -L ttyS1 115200 vt100
A la dernière ligne, on voit bien le nouveau terminal dispo sur ttyS1
Enfin, on s'y connecte depuis une autre machine :
ipmitool -I lanplus -H machine_ipmi -U root -P password sol activate
A partir de la, on appuie sur enter, et on devrait obtenir l'invitation au login/password
Finalement, une fois qu'on a fait ce qu'on a à faire, on interrompt la session ipmi en tapant ~. (tilde et point)
puis depuis la machine client, on ferme la session ipmi
ipmitool -I lanplus -H machine_ipmi -U root -P pass sol deactivate
Soyez le premier à commenter ce billet
URL de rétrolien : https://blog.crifo.org/trackback/83