Files
iDRAC_fan_controller/proxmox/container-helpers.sh
Benoit ae017a2833 🚀 Ajout version Proxmox autonome et mise à jour URLs repository
 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>
2025-09-01 11:04:36 +02:00

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