Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
wiki:divers:coin_geek:ipmi [2017/01/01 21:53] no_pseudo [Serial On Lan] |
wiki:divers:coin_geek:ipmi [2020/06/27 18:16] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Gérer/ | ||
+ | |||
+ | ===== L'IPMI qu'est ce que c'est ? ===== | ||
+ | |||
+ | L'IPMI ou // | ||
+ | En gros cela permet de garder un accès sur une machine même si son OS ou son firmware est planté et cela même si elle est éteinte. | ||
+ | Les seul prérequis pour utiliser l'IPMI sont les suivant: | ||
+ | * La machine doit être alimentée (pas forcément allumée). | ||
+ | * La machine doit être connectée à un réseau. | ||
+ | * Le BMC doit être activé et configuré pour se connecter à ce réseau. | ||
+ | |||
+ | ===== BMC ? ===== | ||
+ | BMC ou //Baseboard Management Controler// est un microcontrôleur présent sur une grande majorité des serveurs de marque Dell, Tyan, HP, etc... Ce microcontrôleur est relié à différents capteurs sur la machine, et comporte une interface série RS-232 et d'un IPMB ou // | ||
+ | Ça commence à devenir plus clair ? On utilise l'IPMI pour communiquer sur le réseau avec le BMC qui peut soit nous renvoyer l' | ||
+ | |||
+ | ===== L' | ||
+ | |||
+ | Certains diront: "Pour gérer les machines on a déjà le SSH et pour le monitoring on a Zabbix" | ||
+ | * Le SSH dépend de l'OS. Donc OS pas démarré/ | ||
+ | * Zabbix aussi dépend de l'OS. | ||
+ | Le but n'est pas de remplacer le serveur SSH ou l' | ||
+ | |||
+ | Donc vous l' | ||
+ | |||
+ | Un autre avantage est qu'on n'a plus besoin de rester des heures en salle serveur pour configurer une machine et ainsi éviter que ce genre de [[wiki: | ||
+ | |||
+ | <WRAP center round box 60%> | ||
+ | * Août 2016 | ||
+ | Un lendemain de panne de climatisation critique en salle serveur, Florian a passé la clim en mode ventilation en voulant désactiver le mode “flap” parce celle-ci lui soufflait dans la nuque. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Tuto: utiliser l'IPMI via le BMC===== | ||
+ | |||
+ | Dans cette partie nous allons voir comment utiliser l'IPMI grâce à un exemple réalisé sur un serveur HP Proliant DL180 Gen 6. La procédure est quasiment identique sur les serveurs d' | ||
+ | |||
+ | ==== Configuration de l'IPMI ==== | ||
+ | |||
+ | Pour les serveurs HP Proliant Gen6 la configuration du BMC se fait via le menu de configuration du BIOS de la machine (Touche F10). | ||
+ | |||
+ | Pour les serveurs Dell PowerEdge Gen9 (1950, 2950, etc.) la configuration du BMC se fait en entrant la combinaison Ctrl+E au démarrage. | ||
+ | |||
+ | === Exemple === | ||
+ | |||
+ | Pour configurer l'IPMI sur un serveur HP il faut dans un premier temps aller dans le menu de configuration du BIOS. Puis dans // | ||
+ | |||
+ | Cf.: le GIF ci-dessous (cliquez sur l' | ||
+ | [[https:// | ||
+ | |||
+ | Une fois qu'on a atteint le menu de configuration de l' | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Le BMC ne gère pas nécessairement le dot1.q. C' | ||
+ | </ | ||
+ | |||
+ | |||
+ | Ici j'ai choisi une configuration avec IP statique: | ||
+ | Je configure donc le BMC avec : | ||
+ | * Adresse IP = 192.168.150.254 | ||
+ | * Masque de sous réseau = 255.255.255.0 | ||
+ | * Passerelle par défaut = 192.168.150.2 | ||
+ | |||
+ | J'ai également choisi de désactiver le telnet. | ||
+ | |||
+ | Le paramètre //BMC NIC Allocation// | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Une fois que tout cela est configuré on peut faire F10 pour quitter le menu de configuration du BIOS et sauvegarder les changements. | ||
+ | |||
+ | === Testons === | ||
+ | |||
+ | == Les outils == | ||
+ | Maintenant que nous avons configuré le BMC on va tester si tout marche. | ||
+ | Il faut d' | ||
+ | Il existe d' | ||
+ | Il y a IPMIutil qui est disponible en version binaire pour Linux/Unix et les sous-OS (Windows). | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Notez qu'il est possible d' | ||
+ | </ | ||
+ | |||
+ | |||
+ | == Première requête IPMI == | ||
+ | Mettez vous sur le même réseau que le BMC. | ||
+ | Et exécutez la commande: | ||
+ | |||
+ | < | ||
+ | $ ipmitool -U ' | ||
+ | </ | ||
+ | |||
+ | En suivant notre exemple: | ||
+ | |||
+ | < | ||
+ | $ ipmitool -U ' | ||
+ | </ | ||
+ | |||
+ | Saisissez ensuite le mot de passe correspondant au nom d' | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Par défaut sur les serveurs HP les identifiants sont: | ||
+ | * login: **admin** | ||
+ | * mdp: **admin** | ||
+ | Sur les serveurs DELL: | ||
+ | * login: **root** | ||
+ | * mdp: **calvin** | ||
+ | Il est évident qui si on souhaite vraiment utiliser l'IPMI il faudra changer ces identifiants. | ||
+ | </ | ||
+ | |||
+ | On doit recevoir quelque chose comme ça: | ||
+ | < | ||
+ | System Power : on | ||
+ | Power Overload | ||
+ | Power Interlock | ||
+ | Main Power Fault : false | ||
+ | Power Control Fault : false | ||
+ | Power Restore Policy : previous | ||
+ | Last Power Event : | ||
+ | Chassis Intrusion | ||
+ | Front-Panel Lockout | ||
+ | Drive Fault : false | ||
+ | Cooling/Fan Fault : false | ||
+ | Sleep Button Disable : allowed | ||
+ | Diag Button Disable | ||
+ | Reset Button Disable : allowed | ||
+ | Power Button Disable : allowed | ||
+ | Sleep Button Disabled: false | ||
+ | Diag Button Disabled : false | ||
+ | Reset Button Disabled: false | ||
+ | Power Button Disabled: false | ||
+ | </ | ||
+ | |||
+ | Si ce n'est pas le cas c'est qu'il y a un problème de configuration quelque part. | ||
+ | |||
+ | ==== Gestion du serveur ==== | ||
+ | |||
+ | Maintenant qu'on à configuré le BMC et que ce dernier accepte les requêtes IPMI il est temps d' | ||
+ | |||
+ | On commence par ouvrir un shell IPMI sur le serveur: | ||
+ | |||
+ | < | ||
+ | $ ipmitool -U ' | ||
+ | </ | ||
+ | |||
+ | On obtient alors un prompt qui nous permet d' | ||
+ | |||
+ | === Allumer et éteindre la machine === | ||
+ | |||
+ | La commande suivante nous permet de déterminer si la machine est allumée ou non: | ||
+ | |||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | Allumer la machine: | ||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | Éteindre la machine: | ||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | Redémarrer la machine: | ||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | === Changer l' | ||
+ | Booter sur le disque principal: | ||
+ | |||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | Booter sur le PXE: | ||
+ | |||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | Booter sur le menu de configuration du BIOS: | ||
+ | |||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | === Reconfigurer le réseau sur le BMC === | ||
+ | <WRAP center round important 60%> | ||
+ | Attention ! Vous risquez de vous couper les pattes. | ||
+ | </ | ||
+ | |||
+ | Afficher la conf réseau: | ||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | Modifier la conf réseau: | ||
+ | La commande suivante permet de voir les différentes commandes pouvant être utilisée pour la configuration réseau: | ||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | Par exemple: | ||
+ | |||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | Permet de changer l'IP assignée au BMC. | ||
+ | |||
+ | === Gestion des utilisateurs === | ||
+ | |||
+ | Lister les comptes utilisateurs: | ||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | Ce qui nous donne des "user id". | ||
+ | |||
+ | Ensuite, pour changer par exemple le mot de passe de l' | ||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | === Serial On Lan === | ||
+ | |||
+ | Le SOL ou //Serial On Lan// permet comme son nom l' | ||
+ | Vous le savez peut-être déjà mais il est possible de demander au firmware d'une machine d' | ||
+ | |||
+ | La connexion série doit être configurée à plusieurs endroits différents: | ||
+ | Lorsque cela est fait il est donc possible d' | ||
+ | |||
+ | == Configuration du BIOS == | ||
+ | Les BIOS/UEFI changent d'une machine à l' | ||
+ | |||
+ | Sur le serveur HP utilisé en exemple ici, il n'y a pas eu de modification à faire, la redirection se faisait automatiquement lorsque l'IPMI était activé. | ||
+ | |||
+ | Sur les serveurs DELL de 9ème génération il faut activer la redirection du BIOS sur le port COM2 (c'est celui qui est relié au BMC), le port COM1 est celui qui se trouve à l' | ||
+ | |||
+ | == Confiuration du Bootloader et du Kernel == | ||
+ | |||
+ | |||
+ | * Pour activer la redirection console avec GRUB 2 il faut ouvrir le fichier " | ||
+ | |||
+ | Et modifier les variables suivantes avec les bonnes valeurs: | ||
+ | < | ||
+ | GRUB_TERMINAL_INPUT=" | ||
+ | GRUB_TERMINAL_OUTPUT=" | ||
+ | GRUB_SERIAL_COMMAND=" | ||
+ | </ | ||
+ | |||
+ | * Pour activer la redirection console au niveau du noyau Linux il faut lui passer les paramètres suivant: | ||
+ | < | ||
+ | |||
+ | Lorsqu' | ||
+ | < | ||
+ | GRUB_CMDLINE_LINUX_DEFAULT=" | ||
+ | </ | ||
+ | |||
+ | Ensuite on fait un | ||
+ | < | ||
+ | # update-grub2 | ||
+ | </ | ||
+ | |||
+ | OU | ||
+ | |||
+ | < | ||
+ | # grub-mkconfig -o / | ||
+ | </ | ||
+ | |||
+ | == Activer un TTY sur le port série (méthode crade et rapide) == | ||
+ | |||
+ | * Installer fgetty | ||
+ | < | ||
+ | |||
+ | * Démarrer le TTY au démarrage en modifiant " | ||
+ | |||
+ | Il faut ajouter la ligne suivante avant le "exit 0" | ||
+ | < | ||
+ | |||
+ | <WRAP center round todo 60%> | ||
+ | TODO: Méthode propre et rapide. | ||
+ | </ | ||
+ | |||
+ | |||
+ | Ça y on peut enfin retourner à notre shell IPMI et lancer | ||
+ | |||
+ | < | ||
+ | ipmitool> | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | NB: On fait un "sol deactivate" | ||
+ | </ | ||
+ | |||
+ | |||
+ | Et rebooter le serveur afin de voir si toutes les redirections vers le port série fonctionnent correctement. | ||
+ | |||
+ | ==== Monitoring du serveur ==== | ||
+ | |||
+ | Le BMC permet aussi de superviser certains composant du serveur: les alimentations, | ||
+ | |||
+ | Les commandes utiles: | ||
+ | |||
+ | Lister les entrée dans le SEL: | ||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | Afficher l' | ||
+ | < | ||
+ | ipmitool> | ||
+ | </ | ||
+ | |||
+ | ===== RTFM ===== | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | [[https:// | ||
+ | [[http:// | ||
+ | [[ftp:// | ||
+ | |||
+ | ===== Limites du BMC ===== | ||
+ | |||
+ | Le BMC connait quelques limites: | ||
+ | |||
+ | * Il est possible de faire uniquement du Serial On Lan: on ne fait passer alors que des informations en mode texte | ||
+ | * L' | ||
+ | * En général le BMC est très basique, pas de iKVM, pas de lecteur virtuel. | ||
+ | |||
+ | === iKVM ? Lecteur virtuel ? === | ||
+ | |||
+ | En fait il existe des sortes de "Super BMC" capables de fournir les mêmes fonctionnalité qu'un BMC classique mais qui en plus permettent de faire du iKVM (Keyboard, Vidéo, Mouse) et de l' | ||
+ | Le iKVM permet d' | ||
+ | |||
+ | Ces "Super BMC" sont souvent connu sous le nom de (i)DRAC pour DELL, iLO pour HP, RSA pour IBM, etc. Ces cartes sont optionnelles sur les serveurs et utilisent des technos propriétaires. Actuellement on a quelques serveurs DELL avec des cartes iDRAC: les 2 NAS et 3 nœuds de prod sur 4 sont pourvus de cette carte (et peut être l'IDS et le parefeu, mais j'ai la flemme d' | ||
+ | |||