
IPMI
Si je cite wikipédia, ipmi est une interface intégrée au matériel ( souvent des serveurs ), qui permet d'effectuer quelques commandes utiles ( reboot, interrupteur on off , console à distance etc .. ), mais aussi de remonter pas mal d'informations sur la plateforme ( température des différents éléments, vitesse de rotation des ventilos, alimentation etc etc ... ).
Alléchant non ?
Je vais donc vous présenter un peu plus en détail les possibilités de cette interface, ainsi que les variantes en fonction des constructeurs, enfin nous verrons comment nous y connecter à distance via ipmitool.
IPMI BMC IPBMC RMCP
Commençons par débroussailler le terrain,
IPMI est donc une "interface" qui permet de communiquer ( en local ou au travers le LAN ) avec le controller BMC du serveur.
BMC communique avec les différents composants du serveur ( SouthBridge, Alimentation, emplacements PCI, Port série , .... ) via diverses protocoles ( I2C, SMBUS, Série, ... ), il peut même communiquer avec d'autres châssis ( serveurs ), utilisant un controller IPBMC, ce mode de fonctionnement est managé via le Remote Management Control Protocole (RMCP), un protocole spécifique à ce mode de fonctionnent sur le couche IP.
IPMI étant maintenant un protocole standardisé, il nous permet de travailler de la même façon sur des plateformes hétérogènes .
Constructeurs
Selon les constructeurs, vous pourrez entendre des termes différents
- DRAC (Dell)
- iLO (HP)
- SSP (Sun)
- CIMC (Cisco)
Chacun apportant son lot de différences, mais toujours avec la même base commune .
Activer IPMI
Deux façons de faire,
- Via le BIOS
- En local, sur le serveur
Via le bios
Si vous avez la possibilité de couper votre machine, alors cette méthode peut vous convenir, souvent dans le BIOS , au niveau des paramètres avancés vous trouverez une ligne BMC ou IPMI activable.
L'activation vous permettra certainement de définir une adresse IP pour prendre le contrôle à distance ( Cette IP sera dédié à IPMI , elle n'est donc pas identique à celle de votre machine Pour tester, l'interface doit répondre au PING ).
Enfin, il est possible ( ce n'est pas toujours le cas ex : Lenovo TD100 ) de définir un login et mot de passe pour la connexion distante.
Pour ceux qui cherchent, le login et mot de passe par défaut pour les serveurs Lenovo, c'est respectivement :
- LOGIN : USERID
- PASSWORD : PASSW0RD ( ATTENTION : ce n'est pas un O mais un zero )
En local
Le mode le plus simple je trouve, car il permet d'activer IPMI sans avoir redémarrer la machine ( pratique pour un serveur en prod ).
Les modules
Commençons par vérifier que nous possédons les modules suivants
modprobe ipmi_si
modprobe ipmi_devintf
ipmitool
Enfin, nous allons installer notre utilitaire ipmi, nommé ipmitool
apt-get install ipmitool
Test en local
Pour tester le bon fonctionnement, nous pouvons faire une requête simple, interroger le status du châssis
ipmitool chassis status
qui doit vous retourner quelque chose dans ce genre :
System Power : on
Power Overload : false
Power Interlock : inactive
Main Power Fault : false
Power Control Fault : false
Power Restore Policy : previous
Last Power Event :
Chassis Intrusion : inactive
Front-Panel Lockout : inactive
Drive Fault : false
Cooling/Fan Fault : false
Sleep Button Disable : allowed
Diag Button Disable : allowed
Reset Button Disable : allowed
Power Button Disable : allowed
Sleep Button Disabled: false
Diag Button Disabled : false
Reset Button Disabled: false
Power Button Disabled: false
Configuration du réseau
Pour configurer le réseau, nous allons le faire en 4 étapes, respectivement :
- définition de l'adresse IP propre à IPMI
- définition du mask de sous réseau
- définition de la passerelle
- activation de l’accès distant
ipmitool lan set 1 ipaddr 10.0.0.231
ipmitool lan set 1 netmask 255.255.255.0
ipmitool lan set 1 defgw ipaddr 10.0.0.254
ipmitool lan set 1 access on
Voilà pour le réseau, passons à l'authentification .
Credential
Nous allons ici simplement définir un nouvel utilisateur et son mot de passe, pour l’accès distant .
ipmitool user set name 1 admin
ipmitool user set password 1 motdepasseadmin
Si nous souhaitons ajouter un autre utilisateur, il faut alors incrémenter le chiffre 1 ex :
ipmitool user set name 2 autreadmin
ipmitool user set password 2 motdepasseautreadmin
Parfait ! Notre serveur est maintenant disponible via IPMI sur le réseau.
Exemples ipmitool
Voyons quelques exemples pratiques
Status du serveur ( qu'il soit allumé ou éteint )
ipmitool -H10.0.0.231 -Uadmin -Pmotdepasseadmin chassis status
Capteurs du serveur
remontons les constantes de notre machine
ipmitool -H10.0.0.231 -Uadmin -Pmotdepasseadmin sensor
ce qui donne quelque chose comme :
...
PCI Reset | 0x0 | discrete | 0x0080| na | na | na | na | na | na
CPU0 Fan R0 | 2768.549 | RPM | ok | na | inf | na | na | 1000.400 | na
CPU1 Fan R0 | na | RPM | na | na | inf | na | na | 1000.400 | na
Rear Sys Fan1 | 1608.752 | RPM | ok | na | inf | na | na | 1000.400 | na
Front Sys Fan1 | 1434.309 | RPM | ok | na | inf | na | na | 1000.400 | na
System 12V | 11.984 | Volts | ok | na | na | na | na | na | na
System 5V | 5.078 | Volts | ok | na | na | na | na | na | na
...
Pour n'avoir que les températures
ipmitool -H10.0.0.231 -Uadmin -Pmotdepasseadmin sdr type "Temperature"
ce qui me donne :
CPU0 Dmn 0 Temp | 22h | ok | 3.0 | 18 degrees C
CPU0 Dmn 1 Temp | 23h | ok | 3.0 | 16 degrees C
CPU1 Dmn 0 Temp | 24h | ns | 3.1 | Disabled
CPU1 Dmn 1 Temp | 25h | ns | 3.1 | Disabled
DIMM Rear Temp | 26h | ok | 0.0 | 24 degrees C
Inlet Amb Tem | 27h | ok | 0.0 | 15 degrees C
PCI Amb Temp | 28h | ok | 0.0 | 31 degrees C
CPU Prochot0 | 36h | ok | 3.0 | Limit Not Exceeded
CPU Prochot1 | 37h | ns | 3.1 | No Reading
CPU VRM hot0 | 38h | ok | 3.0 | Limit Not Exceeded
CPU VRM hot1 | 39h | ns | 3.1 | No Reading
Les ventilateurs uniquement :
ipmitool -H10.0.0.231 -Uadmin -Pmotdepasseadmin sdr type "Fan"
ce qui me donne
CPU0 Fan R0 | 41h | ok | 3.0 | 2736.73 RPM
CPU1 Fan R0 | 43h | ns | 3.1 | No Reading
Rear Sys Fan1 | 45h | ok | 0.0 | 1608.75 RPM
Front Sys Fan1 | 47h | ok | 0.0 | 1434.31 RPM
Alimentation
Eteindre proprement la machine
ipmitool -H10.0.0.231 -Uadmin -Pmotdepasseadmin power soft
Pour l’éteindre "violemment"
ipmitool -H10.0.0.231 -Uadmin -Pmotdepasseadmin power off
Et enfin pour la rallumer :
ipmitool -H10.0.0.231 -Uadmin -Pmotdepasseadmin power on
Et voilà, un outil bien pratique de plus présenté sur lindev.fr
N'hésitez pas à commenter .
Ch.
Sources :