# Contrôleur de ventilateurs Dell iDRAC - Version modifiée Fork de : https://github.com/tigerblue77/Dell_iDRAC_fan_controller_Docker.git **Modifications apportées :** - Remplacement du contrôle statique par un contrôle dynamique basé sur la température - Configuration de 4 seuils de température avec vitesses correspondantes - Gestion progressive de la vitesse des ventilateurs selon la température du CPU ## 🚀 Trois versions disponibles | **Docker** | **LXC Manuel** | **Proxmox Autonome** | |------------|----------------|----------------------| | 🐳 Container Docker | 📦 Container LXC | 🤖 Installation automatique | | docker-compose | Installation manuelle | **1 seule commande** | | Device mapping | systemctl | Auto-configuration | | → [Docker](docker/) | → [LXC](lxc/) | → [**Proxmox**](proxmox/) | ### ⚡ Installation ultra-rapide Proxmox ```bash bash -c "$(wget -qLO - https://git.benoitsz.com/benoit/iDRAC_fan_controller/raw/branch/main/proxmox/idrac-fan-controller.sh)" ``` *Créé automatiquement le container LXC, installe Ubuntu et configure l'application !*
Table des matières
  1. 🚀 Deux versions disponibles
  2. Prérequis
  3. Installation rapide
  4. Paramètres
  5. Dépannage
  6. Exemple de logs
## Installation rapide ### 🐳 Version Docker ```bash # Télécharger la configuration wget https://git.benoitsz.com/benoit/iDRAC_fan_controller/raw/branch/main/docker/docker-compose.yml # Modifier la configuration selon vos besoins nano docker-compose.yml # Lancer le container docker-compose up -d ``` ### 🤖 Version Proxmox Autonome (Recommandée) ```bash # Installation complète en 1 commande depuis Proxmox bash -c "$(wget -qLO - https://git.benoitsz.com/benoit/iDRAC_fan_controller/raw/branch/main/proxmox/idrac-fan-controller.sh)" ``` ### 📦 Version LXC Manuel ```bash # Dans un container LXC Ubuntu existant wget -O - https://git.benoitsz.com/benoit/iDRAC_fan_controller/archive/main.tar.gz | tar -xz cd Dell_iDRAC_fan_controller-main/lxc chmod +x install-lxc.sh ./install-lxc.sh ```

(back to top)

## Prérequis ### Serveur Dell - Dell PowerEdge avec iDRAC - Support des commandes IPMI - iDRAC 9 firmware < 3.30.30.30 (pour IPMI) ### Environnement - **Docker** : Docker + Docker Compose - **LXC** : Proxmox avec container privilégié

(back to top)

## Container console log example ![image](https://user-images.githubusercontent.com/37409593/216442212-d2ad7ff7-0d6f-443f-b8ac-c67b5f613b83.png)

(back to top)

## Configuration détaillée ### 🐳 Version Docker **1. Utilisation avec iDRAC local :** ```bash docker run -d \ --name Dell_iDRAC_fan_controller \ --restart=unless-stopped \ -e IDRAC_HOST=local \ -e CPU_TEMPERATURE_THRESHOLD= \ -e CHECK_INTERVAL= \ -e CPU_TEMPERATURE_1=30 \ -e CPU_TEMPERATURE_2=40 \ -e CPU_TEMPERATURE_3=50 \ -e CPU_TEMPERATURE_4=60 \ -e FAN_SPEED_1=10 \ -e FAN_SPEED_2=30 \ -e FAN_SPEED_3=60 \ -e FAN_SPEED_4=80 \ -e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE= \ --device=/dev/ipmi0:/dev/ipmi0:rw \ git.benoitsz.com/benoit/idrac_fan_controller:latest ``` 2. with LAN iDRAC: ```bash docker run -d \ --name Dell_iDRAC_fan_controller \ --restart=unless-stopped \ -e IDRAC_HOST= \ -e IDRAC_USERNAME= \ -e IDRAC_PASSWORD= \ -e CPU_TEMPERATURE_THRESHOLD= \ -e CHECK_INTERVAL= \ -e CPU_TEMPERATURE_1=30 \ -e CPU_TEMPERATURE_2=40 \ -e CPU_TEMPERATURE_3=50 \ -e CPU_TEMPERATURE_4=60 \ -e FAN_SPEED_1=10 \ -e FAN_SPEED_2=30 \ -e FAN_SPEED_3=60 \ -e FAN_SPEED_4=80 \ -e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE= \ git.benoitsz.com/benoit/idrac_fan_controller:latest ``` `docker-compose.yml` examples: 1. to use with local iDRAC: ```yml version: '3.8' services: Dell_iDRAC_fan_controller: image: git.benoitsz.com/benoit/idrac_fan_controller:latest container_name: Dell_iDRAC_fan_controller restart: unless-stopped environment: - IDRAC_HOST=local - CPU_TEMPERATURE_THRESHOLD=70 - CHECK_INTERVAL=60 - CPU_TEMPERATURE_1=30 - CPU_TEMPERATURE_2=40 - CPU_TEMPERATURE_3=50 - CPU_TEMPERATURE_4=60 - FAN_SPEED_1=10 - FAN_SPEED_2=30 - FAN_SPEED_3=60 - FAN_SPEED_4=80 - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=false devices: - /dev/ipmi0:/dev/ipmi0:rw ``` 2. to use with LAN iDRAC: ```yml version: '3.8' services: Dell_iDRAC_fan_controller: image: git.benoitsz.com/benoit/idrac_fan_controller:latest container_name: Dell_iDRAC_fan_controller restart: unless-stopped environment: - IDRAC_HOST=192.168.1.100 - IDRAC_USERNAME=root - IDRAC_PASSWORD=calvin - CPU_TEMPERATURE_THRESHOLD=70 - CHECK_INTERVAL=60 - CPU_TEMPERATURE_1=30 - CPU_TEMPERATURE_2=40 - CPU_TEMPERATURE_3=50 - CPU_TEMPERATURE_4=60 - FAN_SPEED_1=10 - FAN_SPEED_2=30 - FAN_SPEED_3=60 - FAN_SPEED_4=80 - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=false ```

(back to top)

## Paramètres Tous les paramètres sont optionnels car ils ont des valeurs par défaut. **Connexion iDRAC :** - `IDRAC_HOST` : peut être défini sur "local" ou l'adresse IP de votre iDRAC distant. **Défaut** : "local" - `IDRAC_USERNAME` : nécessaire uniquement pour un iDRAC distant. **Défaut** : "root" - `IDRAC_PASSWORD` : nécessaire uniquement pour un iDRAC distant. **Défaut** : "calvin" **Contrôle dynamique des ventilateurs :** - `CPU_TEMPERATURE_1` à `CPU_TEMPERATURE_4` : seuils de température en °C. **Défauts** : 30, 40, 50, 60 - `FAN_SPEED_1` à `FAN_SPEED_4` : vitesses des ventilateurs (0-100%) correspondant aux seuils. **Défauts** : 10, 30, 60, 80 - `CPU_TEMPERATURE_THRESHOLD` : seuil de sécurité au-delà duquel le mode Dell par défaut est activé. **Défaut** : 70°C **Autres paramètres :** - `CHECK_INTERVAL` : temps en secondes entre chaque vérification. **Défaut** : 60s - `DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE` : désactive la réponse de refroidissement Dell pour les cartes PCIe tierces. **Défaut** : false **Logique de fonctionnement :** - Si la température CPU ≤ `CPU_TEMPERATURE_1` → vitesse `FAN_SPEED_1` - Si `CPU_TEMPERATURE_1` < température ≤ `CPU_TEMPERATURE_2` → vitesse `FAN_SPEED_2` - Si `CPU_TEMPERATURE_2` < température ≤ `CPU_TEMPERATURE_3` → vitesse `FAN_SPEED_3` - Si `CPU_TEMPERATURE_3` < température ≤ `CPU_TEMPERATURE_4` → vitesse `FAN_SPEED_4` - Si température > `CPU_TEMPERATURE_4` → 100% - Si température > `CPU_TEMPERATURE_THRESHOLD` → mode Dell par défaut (sécurité)

(back to top)

## Dépannage Si votre serveur revient fréquemment au mode Dell par défaut : 1. **Vérifiez la Tcase de votre CPU** : Consultez le site Intel Ark pour connaître la température de boîtier maximum de votre CPU et définissez `CPU_TEMPERATURE_THRESHOLD` à une valeur légèrement inférieure. Exemple : pour un Intel Xeon E5-2630L v2 avec Tcase = 63°C, définir `CPU_TEMPERATURE_THRESHOLD=60`. 2. **Ajustez les seuils de température** : Modifiez `CPU_TEMPERATURE_1` à `CPU_TEMPERATURE_4` selon votre environnement. Exemple pour un environnement plus chaud : ``` CPU_TEMPERATURE_1=35 CPU_TEMPERATURE_2=45 CPU_TEMPERATURE_3=55 CPU_TEMPERATURE_4=65 ``` 3. **Augmentez les vitesses de ventilation** : Adaptez `FAN_SPEED_1` à `FAN_SPEED_4` pour améliorer le refroidissement : ``` FAN_SPEED_1=15 FAN_SPEED_2=35 FAN_SPEED_3=70 FAN_SPEED_4=90 ``` 4. **Si les problèmes persistent** : Il peut être nécessaire de remplacer la pâte thermique de votre serveur.

(back to top)