# Version Docker Documentation spécifique pour l'installation et l'utilisation avec Docker. ## Fichiers inclus - `Dockerfile` : Image Docker - `Dell_iDRAC_fan_controller.sh` : Script principal - `functions.sh` : Fonctions utilitaires - `healthcheck.sh` : Vérification de santé ## Installation Docker ### 1. Construction de l'image ```bash cd docker/ docker build -t idrac-fan-controller . ``` ### 2. Utilisation avec Docker Compose (recommandé) **Créer `docker-compose.yml` :** ```yml version: '3.8' services: idrac_fan_controller: build: . container_name: idrac_fan_controller restart: unless-stopped environment: # Connexion iDRAC - IDRAC_HOST=local # ou IP pour distant - IDRAC_USERNAME=root # si distant - IDRAC_PASSWORD=calvin # si distant # Seuils de température (°C) - CPU_TEMPERATURE_1=30 - CPU_TEMPERATURE_2=40 - CPU_TEMPERATURE_3=50 - CPU_TEMPERATURE_4=60 # Vitesses correspondantes (%) - FAN_SPEED_1=10 - FAN_SPEED_2=30 - FAN_SPEED_3=60 - FAN_SPEED_4=80 # Seuil de sécurité - CPU_TEMPERATURE_THRESHOLD=70 # Autres paramètres - CHECK_INTERVAL=60 - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=false devices: - /dev/ipmi0:/dev/ipmi0:rw # Pour iDRAC local # Optionnel : logs persistants volumes: - ./logs:/var/log/idrac ``` ### 3. Lancement ```bash # Démarrer docker-compose up -d # Voir les logs docker-compose logs -f # Arrêter docker-compose down ``` ## Configuration par variables d'environnement Toutes les variables peuvent être configurées via l'environnement : ```bash # Exemple pour iDRAC distant docker run -d \ --name idrac_fan_controller \ --restart unless-stopped \ -e IDRAC_HOST=192.168.1.100 \ -e IDRAC_USERNAME=root \ -e IDRAC_PASSWORD=calvin \ -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 CPU_TEMPERATURE_THRESHOLD=70 \ -e CHECK_INTERVAL=60 \ idrac-fan-controller ``` ## Gestion ### Commandes utiles ```bash # État du container docker-compose ps # Logs en temps réel docker-compose logs -f idrac_fan_controller # Redémarrer docker-compose restart idrac_fan_controller # Shell dans le container docker-compose exec idrac_fan_controller bash # Test de santé docker-compose exec idrac_fan_controller ./healthcheck.sh ``` ### Mise à jour ```bash # Reconstruire l'image docker-compose build # Redémarrer avec la nouvelle image docker-compose up -d ``` ## Dépannage Docker ### Vérification de l'accès IPMI ```bash # Dans le container docker-compose exec idrac_fan_controller ls -la /dev/ipmi* # Test ipmitool docker-compose exec idrac_fan_controller ipmitool fru ``` ### Erreurs communes **"Could not open device at /dev/ipmi0"** ```bash # Vérifier sur l'hôte ls -la /dev/ipmi* # Vérifier les permissions docker-compose exec idrac_fan_controller ls -la /dev/ipmi* ``` **Container qui s'arrête** ```bash # Voir les logs docker-compose logs idrac_fan_controller # Mode debug docker-compose run --rm idrac_fan_controller bash ``` ## Avantages Docker - **Isolation** : Environment isolé - **Reproductibilité** : Même environnement partout - **Versioning** : Images versionnées - **Rollback** : Retour en arrière facile - **Orchestration** : Intégration avec autres services