# 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
- 🚀 Deux versions disponibles
- Prérequis
- Installation rapide
- Paramètres
- Dépannage
- 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

(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)