Le blog de Dju - Mot-clé - solUn peu de moto, un zeste de geek, et un brin d'autres trucs ;-)2024-03-22T17:50:26+01:00Djuurn:md5:5e61426dd704534f4aef077f5b82260bDotclearSOL : déport d'écran et clavier via IPMIurn:md5:144f209be63741d9647cf55d31512ae32011-07-13T20:20:00+02:002011-07-13T23:55:54+02:00DjuServeuripmiipmitoollinuxserveursol<p><img src="https://blog.crifo.org/public/201004/.netcard_t.jpg" alt="netcard.jpg" style="float:left; margin: 0 1em 1em 0;" title="netcard.jpg, avr. 2010" /> 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<br />
J'ai nommé: SOL (pour Serial Over Lan)<br />
En clair: déporter écran et clavier via l'IPMI.</p>
<p>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 )</p>
<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</p> <p><strong>Comment c'est y qu'on fait ?</strong></p>
<p>Tout d'abord, il faut avoir activé l'IPMI sur la machine (<a href="https://blog.crifo.org/post/2010/04/02/Configurer-IPMI-simplement">voir billet à ce sujet</a>)</p>
<p>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...<br />
Pour ce faire, un coup de</p>
<blockquote><p>ipmitool bmc info</p></blockquote>
<p>à la ligne IPMI Version, vérifier que la valeur est bien 2.0</p>
<p>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...)</p>
<p>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.</p>
<p>Pour ce faire, on édite le fichier <strong>/etc/inittab</strong> (au moins pour tous les *nux à base de debian - mais pas ubuntu)</p>
<p>Vers le bas, on recherche la ligne</p>
<blockquote><p>#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100</p></blockquote>
<p>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<br />
(par défaut, la vitesse est à 57600, on peut le changer dans le bios)</p>
<p>pour ubuntu, voire <a href="https://help.ubuntu.com/community/SerialConsoleHowto">la page de référence</a></p>
<p>Puis, pour faire prendre en compte la nouvelle config, on tape</p>
<blockquote><p>init q</p></blockquote>
<p>ou</p>
<blockquote><p>kill -HUP 1</p></blockquote>
<p>Puis on vérifié qu'il y a bien un nouveau terminal prêt à recevoir des commandes sur le port série :</p>
<blockquote><p>ps aux | grep getty</p></blockquote>
<p>on obtient quelque chose comme ceci :</p>
<pre>
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
</pre>
<p>A la dernière ligne, on voit bien le nouveau terminal dispo sur <strong>ttyS1</strong></p>
<p>Enfin, on s'y connecte depuis une autre machine :</p>
<blockquote><p>ipmitool -I lanplus -H machine_ipmi -U root -P password sol activate</p></blockquote>
<p>A partir de la, on appuie sur enter, et on devrait obtenir l'invitation au login/password <img src="/themes/BlueSky/smilies/smile.gif" alt=":)" class="smiley" /></p>
<p>Finalement, une fois qu'on a fait ce qu'on a à faire, on interrompt la session ipmi en tapant <strong>~.</strong> (tilde et point)</p>
<p>puis depuis la machine client, on ferme la session ipmi</p>
<blockquote><p>ipmitool -I lanplus -H machine_ipmi -U root -P pass sol deactivate</p></blockquote>https://blog.crifo.org/post/2011/07/13/SOL-deport-d-ecran-et-clavier-via-IPMI#comment-formhttps://blog.crifo.org/feed/atom/comments/83