Les tâches sont nombreuses, souvent répétitives, parfois critiques. Afin de gagner du temps et réduire les erreurs, l’automatisation devient indispensable. C’est donc dans cette logique que j’ai écrit le module Powershell IdracRedfish.
Ce module PowerShell s’inspire des scripts Dell publiés sur GitHub. Mais je suis allé plus loin : j’ai repensé l’usage, simplifié les commandes, optimisé l’intégration. L’objectif ? Exploiter pleinement l’API Redfish, sans complexité inutile.
Avec IdracRedfish, vous pouvez automatiser les opérations essentielles. Par exemple, les mises à jour de firmwares, contrôle d’alimentation, configuration réseau : tout devient plus fluide. En entreprise, il vous aide à standardiser vos actions, tout en limitant les interventions manuelles.
Dans cet article, je vous présente ses principales fonctionnalités. Vous y trouverez aussi des cas concrets et des exemples de commandes. Bref, si vous gérez des serveurs Dell et aimez PowerShell, ce module est fait pour vous.
Présentation du module PowerShell IdracRedFish
Le module IdracRedfish propose de nombreuses commandes. Trop nombreuses pour toutes les détailler ici. C’est pourquoi je vous propose un aperçu, basé sur les usages les plus courants. Libre à vous d’explorer plus loin selon vos besoins.
Les cmdlets sont regroupées par thème.
Cela permet une prise en main rapide, même dans des environnements complexes.
Gestion des sessions
Pour des interactions multiples sans répétition des identifiants, IdracRedfish permet de créer des sessions persistantes. En établissant une session une fois, toutes les actions peuvent être effectuées de manière sécurisée et sans re-authentification :
- New-RacSession : Crée une session avec une instance iDRAC, ce qui permet d’exécuter des commandes successives sans réauthentification.
- Remove-RacSession : Supprime la session en toute sécurité, libérant ainsi les ressources.
Inventaire et contrôle des firmwares
Les fonctions d’inventaire et de contrôle des firmwares et du BIOS d’IdracRedfish permettent de suivre les versions actuelles, de préparer des configurations en attente et de mettre à jour le firmware, le tout via des commandes simplifiées.
- Get-RacFirmwareVersion : Récupère la version actuelle du firmware de l’iDRAC, permettant ainsi un suivi rapide de l’état logiciel des équipements.
- Update-RacFirmware : Effectue la mise à jour du firmware de l’iDRAC, assurant que les serveurs sont à jour et en conformité avec les dernières normes de sécurité et de performance.
- Get-RacPendingBiosSettings : Récupère les paramètres BIOS en attente de validation. Cette fonction est idéale pour vérifier des modifications avant leur application finale.
- Register-RacBiosSettings : Enregistre de nouveaux paramètres BIOS dans la configuration de l’iDRAC, préparant le système pour une prochaine mise à jour.
- Submit-RacPendingBiosSettings : Applique les modifications de paramètres BIOS en attente, en s’assurant que les configurations sont déployées de manière fiable sur le serveur cible.
En utilisant ces cmdlets, les administrateurs peuvent automatiser et centraliser la gestion des configurations BIOS et firmware, optimisant ainsi le suivi de conformité et la mise à jour des serveurs Dell.
Gestion de l’alimentation
Les fonctionnalités de gestion de l’alimentation permettent d’obtenir l’état actuel et de contrôler l’alimentation des serveurs, optimisant ainsi la maintenance et l’économie d’énergie :
- Get-RacPowerState : Récupère l’état actuel de l’alimentation du serveur (marche/arrêt).
- Set-RacPowerState : Permet d’allumer, éteindre ou redémarrer le serveur de manière contrôlée, essentiel pour les opérations de maintenance.
Configuration et contrôle des utilisateurs
Pour la gestion des utilisateurs et de la sécurité, ces fonctions permettent de créer et de gérer les utilisateurs iDRAC :
- New-RacUser : Crée un nouvel utilisateur sur l’iDRAC.
- Remove-RacUser: Supprime un utilisateur iDRAC
- Set-RacUserPassword : Modifie le mot de passe d’un utilisateur, utile pour renforcer la sécurité périodiquement.
Gestion des drives virtuels et du démarrage réseau
Pour simplifier le contrôle des drives virtuels et les configurations de démarrage à distance, ces fonctions permettent de gérer les ISO et les options de démarrage :
- Invoke-RacBootToNetworkISO : Démarre l’iDRAC sur une image ISO réseau, facilitant les installations distantes.
- Get-RacVirtualDriveStatus : Récupère le statut des drives virtuels connectés, afin d’assurer leur disponibilité avant une opération.
- Dismount-RacVirtualDrive : Démonte un disque virtuel monté sur l’iDRAC.
- Invoke-RacOneTimeBoot : Configure l’iDRAC pour effectuer un démarrage unique à partir d’un périphérique ou d’une image spécifique, sans modifier l’ordre de démarrage principal. Pratique pour des installations ponctuelles ou des tests de configuration.
Réglages et attributs
Enfin, pour une configuration personnalisée, ces commandes permettent de lire et d’ajuster divers paramètres et attributs de l’iDRAC :
Get-RacManagerAttribute et Set-RacManagerAttribute :
Ces cmdlets interagissent avec des attributs iDRAC généraux, indépendamment de la marque ou des personnalisations spécifiques Dell. Ils sont utilisés pour des paramètres communs d’iDRAC, comme les réglages de réseau ou de sécurité basiques.
Get-RacManagerDellAttribute et Set-RacManagerDellAttribute :
Ces cmdlets, quant à eux, ciblent les attributs spécifiques développés par Dell pour l’iDRAC. Ces attributs peuvent inclure des options personnalisées par Dell qui ne sont pas disponibles dans les implémentations Redfish standard. Ces fonctions sont particulièrement utiles pour les configurations avancées ou pour accéder à des options propres aux serveurs Dell.
Utilisation du module PowerShell IdracRedfish
Gestion des sessions avec New-RacSession
et Remove-RacSession
La commande New-RacSession
établit une connexion persistante avec une instance iDRAC, ce qui simplifie l’exécution de plusieurs commandes successives sans avoir à fournir les identifiants à chaque fois. Voici un exemple de création de session :
# Crée une session pour une connexion persistante à l’iDRAC
$session = New-RacSession -Ip_Idrac "10.117.24.166" -Credential $Credential
Cette commande crée une session qui est stockée dans la variable $session
. En utilisant une session, vous réduirez drastiquement les temps de connexion lors de l’usage du module dans des scripts complexe nécessitant de nombreuses actions.
Vérification des versions de firmware avec Get-RacFirmwareVersion
Une fois la session établie, vous pouvez utiliser Get-RacFirmwareVersion
pour vérifier les versions de firmware de vos équipements. Cette fonction centralise l’inventaire des versions de firmware en un seul appel API, ce qui est pratique pour un suivi de la conformité.
Exemple d’utilisation avec une session :
# retourne la version d'iDRAC al'utilisaeur
Get-RacFirmwareVersion -Session $session
Redémarrage de l’iDRAC avec Reset-RacIdrac
Lorsqu’il est nécessaire de redémarrer l’iDRAC, par exemple en cas de modifications non prises en compte, vous pouvez utiliser Reset-RacIdrac
. Cette commande permet un redémarrage contrôlé sans nécessiter d’intervention manuelle.
Exemple d’utilisation avec les identifiants de connexion :
# redémarre l'iDRAC
Reset-RacIdrac -Ip_Idrac "10.2.160.84" -Credential $Cred
Pour les fonctions courantes, ce processus simplifie et sécurise l’interaction avec les systèmes Dell à distance, tout en garantissant une configuration conforme aux paramètres réseau.
Initialiser un serveur Dell PowerEdge avec Initialize-DellPowerEdge
La fonction Initialize-DellPowerEdge
est conçue pour configurer en profondeur un serveur Dell PowerEdge. Elle permet l’application d’un template, la configuration réseau, et la gestion des mots de passe de l’utilisateur iDRAC. Sa particularité réside dans sa flexibilité et dans sa capacité à adapter les configurations réseau selon un mode DHCP ou une configuration IP statique.
Exemple de Paramètres et Utilisation
Les options principales incluent :
- SourcePath : chemin du template à appliquer, préalablement exporté depuis un serveur de référence du même type.
- User et Password : identifiants iDRAC, avec mot de passe par défaut défini sur “calvin”.
- NewPassword : si défini, remplace le mot de passe existant.
- Target : pour appliquer le template à l’iDRAC, au BIOS ou aux deux.
- ShutdownType : indique si un redémarrage est requis après la configuration (par défaut, aucun redémarrage).
Un exemple typique d’utilisation avec une IP statique serait :
# Configure l'adresse IP et les DNS, change le mots de passe du compte root et red,
Initialize-DellPowerEdge -SourcePath "C:\Templates\ServerConfig.xml" -StaticIpAddress "192.168.1.100" -User "root" -Password (ConvertTo-SecureString -AsPlainText -Force "currentPassword") -NewPassword (ConvertTo-SecureString -AsPlainText -Force "newSecurePassword") -PrefixLength 24 -PrimaryDns "8.8.8.8" -SecondaryDns "8.8.4.4" -Target "IDRAC" -ShutdownType "Graceful" -NoProxy
Détails de Fonctionnement
- Vérification du Mot de Passe : Si le mot de passe n’est pas fourni,
Initialize-DellPowerEdge
part du principe que le mot de passe actuel est « calvin », ce qui facilite les déploiements initiaux. - Gestion du Template : Si un fichier de configuration (
SourcePath
) est spécifié, il est appliqué viaSet-RacTemplate
. - Importation du Template : La fonction utilise ensuite
Import-RacTemplate
pour charger le fichier sur l’iDRAC, en appliquant des paramètres spécifiques comme le type de redémarrage (grâce àShutdownType
) et les configurations réseau.
Grâce à cette fonction, vous pouvez configurer des serveurs Dell PowerEdge en une seule commande en respectant les paramètres d’infrastructure, y compris DNS et passerelle, et en adaptant les configurations d’accès et de sécurité de l’iDRAC.
Ainsi, Initialize-DellPowerEdge
s’intègre parfaitement dans des scénarios de déploiement en masse, apportant une méthode rapide et centralisée pour la gestion des serveurs Dell.
Envie de l’essayer ?
Le module PowerShell IdracRedfish est libre, et prêt à l’emploi.
Installez-le, testez-le, adaptez-le à vos besoins.
Et si vous avez des idées, des remarques ou des cas d’usage spécifiques, n’hésitez pas à contribuer ou à m’écrire.