#!/bin/bash # Helper scripts pour container iDRAC Fan Controller # Ces scripts sont installés automatiquement dans le container # Fonction pour idrac-setup create_idrac_setup() { cat > /usr/local/bin/idrac-setup << 'EOF' #!/bin/bash # Helper script pour Dell iDRAC Fan Controller # Installé automatiquement par le script Proxmox # Couleurs GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' clear echo -e "${BLUE}╔══════════════════════════════════════════════════════════════╗" echo -e "║ Dell iDRAC Fan Controller ║" echo -e "║ Configuration ║" echo -e "╚══════════════════════════════════════════════════════════════╝${NC}" echo echo -e "${GREEN}📝 1. Éditer la configuration:${NC}" echo " nano /opt/idrac-fan-controller/config/environment" echo echo -e "${GREEN}🚀 2. Démarrer le service:${NC}" echo " systemctl start idrac-fan-controller" echo echo -e "${GREEN}📊 3. Vérifier le statut:${NC}" echo " systemctl status idrac-fan-controller" echo echo -e "${GREEN}📋 4. Surveiller les logs:${NC}" echo " journalctl -u idrac-fan-controller -f" echo echo -e "${GREEN}🔍 5. Test de santé:${NC}" echo " /opt/idrac-fan-controller/healthcheck.sh" echo echo -e "${GREEN}⚙️ 6. Configuration actuelle:${NC}" if [ -f "/opt/idrac-fan-controller/config/environment" ]; then echo " Configuration chargée ✅" source /opt/idrac-fan-controller/config/environment 2>/dev/null echo " - iDRAC Host: ${IDRAC_HOST:-Non défini}" echo " - Seuils temp: ${CPU_TEMPERATURE_1:-?}°C → ${CPU_TEMPERATURE_4:-?}°C" echo " - Vitesses: ${FAN_SPEED_1:-?}% → ${FAN_SPEED_4:-?}%" echo " - Sécurité: ${CPU_TEMPERATURE_THRESHOLD:-?}°C" else echo " ⚠️ Configuration non trouvée" fi echo echo -e "${GREEN}🔧 7. Commandes utiles:${NC}" echo " idrac-status # État détaillé" echo " idrac-logs # Logs formatés" echo " idrac-config # Éditeur de config" echo # Test IPMI rapide echo -e "${GREEN}🔌 8. Test IPMI:${NC}" if command -v ipmitool >/dev/null 2>&1; then if ipmitool fru >/dev/null 2>&1; then echo " ✅ IPMI accessible" else echo -e " ${RED}❌ IPMI non accessible${NC}" echo " Vérifiez la configuration hardware Proxmox" fi else echo " ❌ ipmitool non installé" fi echo echo -e "${YELLOW}💡 Astuce: Utilisez 'systemctl enable idrac-fan-controller' pour activer au démarrage${NC}" echo EOF chmod +x /usr/local/bin/idrac-setup } # Fonction pour idrac-status create_idrac_status() { cat > /usr/local/bin/idrac-status << 'EOF' #!/bin/bash # Status helper pour iDRAC Fan Controller GREEN='\033[0;32m' RED='\033[0;31m' BLUE='\033[0;34m' YELLOW='\033[1;33m' NC='\033[0m' echo -e "${BLUE}=== Dell iDRAC Fan Controller - État ===${NC}" echo # Service status echo -e "${BLUE}📊 Service:${NC}" if systemctl is-active --quiet idrac-fan-controller; then echo -e " ✅ ${GREEN}Actif et en fonctionnement${NC}" else echo -e " ❌ ${RED}Arrêté ou en erreur${NC}" fi if systemctl is-enabled --quiet idrac-fan-controller; then echo " 🔄 Activé au démarrage" else echo " ⚠️ Non activé au démarrage" fi echo # Configuration echo -e "${BLUE}⚙️ Configuration:${NC}" if [ -f "/opt/idrac-fan-controller/config/environment" ]; then source /opt/idrac-fan-controller/config/environment echo " 📁 Fichier: /opt/idrac-fan-controller/config/environment" echo " 🖥️ iDRAC: $IDRAC_HOST" echo " 🌡️ Seuils: ${CPU_TEMPERATURE_1}°C, ${CPU_TEMPERATURE_2}°C, ${CPU_TEMPERATURE_3}°C, ${CPU_TEMPERATURE_4}°C" echo " 💨 Vitesses: ${FAN_SPEED_1}%, ${FAN_SPEED_2}%, ${FAN_SPEED_3}%, ${FAN_SPEED_4}%" echo " 🚨 Sécurité: ${CPU_TEMPERATURE_THRESHOLD}°C" echo " ⏱️ Intervalle: ${CHECK_INTERVAL}s" else echo -e " ❌ ${RED}Configuration non trouvée${NC}" fi echo # IPMI Test echo -e "${BLUE}🔌 Test IPMI:${NC}" if command -v ipmitool >/dev/null 2>&1; then if timeout 5 ipmitool fru >/dev/null 2>&1; then echo -e " ✅ ${GREEN}IPMI accessible${NC}" # Get server info SERVER_INFO=$(ipmitool fru 2>/dev/null | grep -E "Product Name|Product Manufacturer" | head -2) if [ ! -z "$SERVER_INFO" ]; then echo " 📋 Serveur détecté:" echo "$SERVER_INFO" | sed 's/^/ /' fi else echo -e " ❌ ${RED}IPMI non accessible${NC}" echo " 💡 Vérifiez la configuration Proxmox hardware" fi else echo " ❌ ipmitool non installé" fi echo # Recent logs echo -e "${BLUE}📜 Logs récents:${NC}" if systemctl is-active --quiet idrac-fan-controller; then journalctl -u idrac-fan-controller -n 5 --no-pager -q 2>/dev/null | sed 's/^/ /' || echo " Aucun log récent" else echo " Service non actif" fi echo # Disk usage echo -e "${BLUE}💾 Espace disque:${NC}" df -h /opt/idrac-fan-controller 2>/dev/null | tail -1 | awk '{print " Utilisé: "$3" / "$2" ("$5")"}' echo echo -e "${GREEN}Commandes rapides:${NC}" echo " systemctl restart idrac-fan-controller # Redémarrer" echo " journalctl -u idrac-fan-controller -f # Logs temps réel" echo " nano /opt/idrac-fan-controller/config/environment # Éditer config" EOF chmod +x /usr/local/bin/idrac-status } # Fonction pour idrac-logs create_idrac_logs() { cat > /usr/local/bin/idrac-logs << 'EOF' #!/bin/bash # Logs helper pour iDRAC Fan Controller BLUE='\033[0;34m' GREEN='\033[0;32m' NC='\033[0m' echo -e "${BLUE}=== Dell iDRAC Fan Controller - Logs ===${NC}" echo if [ "$1" = "-f" ] || [ "$1" = "--follow" ]; then echo -e "${GREEN}📡 Logs en temps réel (Ctrl+C pour arrêter):${NC}" echo journalctl -u idrac-fan-controller -f --no-pager elif [ "$1" = "-e" ] || [ "$1" = "--errors" ]; then echo -e "${GREEN}🚨 Erreurs récentes:${NC}" echo journalctl -u idrac-fan-controller -p err -n 20 --no-pager else echo -e "${GREEN}📋 Logs récents (50 dernières lignes):${NC}" echo journalctl -u idrac-fan-controller -n 50 --no-pager echo echo -e "${BLUE}Options disponibles:${NC}" echo " idrac-logs -f # Temps réel" echo " idrac-logs -e # Erreurs seulement" echo " idrac-logs # 50 dernières lignes" fi EOF chmod +x /usr/local/bin/idrac-logs } # Fonction pour idrac-config create_idrac_config() { cat > /usr/local/bin/idrac-config << 'EOF' #!/bin/bash # Configuration helper pour iDRAC Fan Controller GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' NC='\033[0m' CONFIG_FILE="/opt/idrac-fan-controller/config/environment" echo -e "${BLUE}=== Configuration iDRAC Fan Controller ===${NC}" echo if [ ! -f "$CONFIG_FILE" ]; then echo -e "❌ Fichier de configuration non trouvé: $CONFIG_FILE" exit 1 fi echo -e "${GREEN}📝 Ouverture de l'éditeur de configuration...${NC}" echo " Fichier: $CONFIG_FILE" echo " Éditeur: nano (Ctrl+X pour sauvegarder et quitter)" echo # Backup config before editing cp "$CONFIG_FILE" "${CONFIG_FILE}.backup.$(date +%Y%m%d-%H%M%S)" # Edit config nano "$CONFIG_FILE" echo echo -e "${GREEN}✅ Configuration sauvegardée.${NC}" echo echo -e "${YELLOW}🔄 Redémarrer le service pour appliquer les changements:${NC}" echo " systemctl restart idrac-fan-controller" echo echo -e "${BLUE}💡 Vérifier les logs après redémarrage:${NC}" echo " idrac-logs -f" EOF chmod +x /usr/local/bin/idrac-config } # Exécuter toutes les créations si ce script est appelé directement if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then create_idrac_setup create_idrac_status create_idrac_logs create_idrac_config echo "✅ Tous les helpers ont été créés avec succès" fi