✨ NOUVELLE VERSION PROXMOX AUTONOME : - Script d'installation totalement autonome pour Proxmox VE - Création automatique du container LXC Ubuntu 22.04 - Configuration hardware et IPMI automatisée - Interface utilisateur avec ASCII art et couleurs - Compatible avec le pattern community-scripts 🛠️ FONCTIONNALITÉS AVANCÉES : - Outils d'administration intégrés (idrac-setup, idrac-status, etc.) - Scripts helpers avec interface colorée - Healthcheck et monitoring automatiques - Configuration par défaut optimisée pour Dell - Gestion des erreurs et diagnostics 📱 INTERFACE UTILISATEUR : - Menu de configuration avancée - Rapport d'installation détaillé - Instructions post-installation contextuelles - Scripts d'aide intégrés au container 🔗 MISE À JOUR REPOSITORY : - Toutes les URLs mises à jour avec git.benoitsz.com - Documentation cohérente sur toutes les versions - Liens Gitea pour issues et support 📚 DOCUMENTATION COMPLÈTE : - README-PROXMOX.md avec guide détaillé - Comparaison des 3 versions (Docker, LXC, Proxmox) - Instructions d'installation ultra-rapide - Guide de dépannage spécialisé ⚡ INSTALLATION EN 1 COMMANDE : bash -c "$(wget -qLO - https://git.benoitsz.com/benoit/iDRAC_fan_controller/raw/branch/main/proxmox/idrac-fan-controller.sh)" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
264 lines
8.0 KiB
Bash
Executable File
264 lines
8.0 KiB
Bash
Executable File
#!/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 |