🚀 NOUVELLES FONCTIONNALITÉS : - Version LXC complète pour Proxmox avec installation automatisée - Script d'installation LXC avec interface colorée et vérifications - Service systemd avec configuration sécurisée - Script de désinstallation avec sauvegarde de config 📁 RESTRUCTURATION : - Séparation Docker/LXC dans des dossiers dédiés - Documentation spécialisée pour chaque version - Guide d'installation unifié (INSTALL.md) - README principal avec comparaison des versions 🐳 AMÉLIORATIONS DOCKER : - docker-compose.yml optimisé avec healthcheck - Documentation Docker détaillée - Configuration par variables d'environnement clarifiée 📦 FONCTIONNALITÉS LXC : - Installation en une commande - Intégration systemd native - Gestion des permissions et sécurité - Logs intégrés avec journalctl - Configuration via fichier d'environnement 🔧 OUTILS INCLUS : - Scripts d'installation/désinstallation - Healthchecks pour les deux versions - Documentation de dépannage - Comparatif des deux approches 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
125 lines
4.0 KiB
Bash
Executable File
125 lines
4.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Script d'installation du contrôleur de ventilateurs Dell iDRAC pour LXC/Proxmox
|
|
# Usage: ./install-lxc.sh
|
|
|
|
set -euo pipefail
|
|
|
|
# Couleurs pour l'affichage
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Configuration
|
|
INSTALL_DIR="/opt/idrac-fan-controller"
|
|
SERVICE_NAME="idrac-fan-controller"
|
|
CONFIG_FILE="$INSTALL_DIR/config/environment"
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
echo -e "${BLUE}=== Installation du contrôleur de ventilateurs Dell iDRAC ===${NC}"
|
|
echo
|
|
|
|
# Vérifier les privilèges root
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo -e "${RED}Erreur: Ce script doit être exécuté en tant que root${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# Vérifier si on est dans un container LXC
|
|
if ! systemd-detect-virt --container >/dev/null 2>&1; then
|
|
echo -e "${YELLOW}Attention: Ce script est conçu pour un container LXC Proxmox${NC}"
|
|
read -p "Continuer quand même ? (y/N): " -n 1 -r
|
|
echo
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
echo -e "${BLUE}1. Mise à jour du système...${NC}"
|
|
apt-get update -qq
|
|
|
|
echo -e "${BLUE}2. Installation des dépendances...${NC}"
|
|
apt-get install -y ipmitool
|
|
|
|
echo -e "${BLUE}3. Vérification de l'accès IPMI...${NC}"
|
|
if [ ! -e "/dev/ipmi0" ] && [ ! -e "/dev/ipmi/0" ] && [ ! -e "/dev/ipmidev/0" ]; then
|
|
echo -e "${YELLOW}Attention: Aucun périphérique IPMI détecté${NC}"
|
|
echo -e "${YELLOW}Assurez-vous que le container LXC est configuré avec l'accès au hardware IPMI${NC}"
|
|
echo -e "${YELLOW}Configuration Proxmox requise:${NC}"
|
|
echo -e "${YELLOW} - Container privilégié (privilege: 1)${NC}"
|
|
echo -e "${YELLOW} - Accès au périphérique IPMI configuré${NC}"
|
|
echo
|
|
fi
|
|
|
|
echo -e "${BLUE}4. Création de la structure de répertoires...${NC}"
|
|
mkdir -p "$INSTALL_DIR/config"
|
|
mkdir -p "/var/log/$SERVICE_NAME"
|
|
|
|
echo -e "${BLUE}5. Copie des fichiers de l'application...${NC}"
|
|
cp "$SCRIPT_DIR/../Dell_iDRAC_fan_controller.sh" "$INSTALL_DIR/"
|
|
cp "$SCRIPT_DIR/../functions.sh" "$INSTALL_DIR/"
|
|
cp "$SCRIPT_DIR/../healthcheck.sh" "$INSTALL_DIR/"
|
|
cp "$SCRIPT_DIR/idrac-fan-controller.service" "/etc/systemd/system/"
|
|
|
|
# Rendre les scripts exécutables
|
|
chmod +x "$INSTALL_DIR"/*.sh
|
|
|
|
echo -e "${BLUE}6. Configuration des variables d'environnement...${NC}"
|
|
if [ ! -f "$CONFIG_FILE" ]; then
|
|
cat > "$CONFIG_FILE" << 'EOF'
|
|
# Configuration du contrôleur de ventilateurs Dell iDRAC
|
|
# Modifiez ces valeurs selon votre environnement
|
|
|
|
# Connexion iDRAC
|
|
IDRAC_HOST=local
|
|
IDRAC_USERNAME=root
|
|
IDRAC_PASSWORD=calvin
|
|
|
|
# Contrôle dynamique des ventilateurs
|
|
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
|
|
|
|
# Seuil de sécurité
|
|
CPU_TEMPERATURE_THRESHOLD=70
|
|
|
|
# Autres paramètres
|
|
CHECK_INTERVAL=60
|
|
DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=false
|
|
EOF
|
|
echo -e "${GREEN}Fichier de configuration créé: $CONFIG_FILE${NC}"
|
|
else
|
|
echo -e "${YELLOW}Fichier de configuration existant conservé: $CONFIG_FILE${NC}"
|
|
fi
|
|
|
|
echo -e "${BLUE}7. Configuration du service systemd...${NC}"
|
|
systemctl daemon-reload
|
|
systemctl enable "$SERVICE_NAME"
|
|
|
|
echo -e "${GREEN}=== Installation terminée avec succès ! ===${NC}"
|
|
echo
|
|
echo -e "${BLUE}Prochaines étapes:${NC}"
|
|
echo "1. Éditez la configuration: nano $CONFIG_FILE"
|
|
echo "2. Démarrez le service: systemctl start $SERVICE_NAME"
|
|
echo "3. Vérifiez le statut: systemctl status $SERVICE_NAME"
|
|
echo "4. Consultez les logs: journalctl -u $SERVICE_NAME -f"
|
|
echo
|
|
echo -e "${BLUE}Commandes utiles:${NC}"
|
|
echo "• Démarrer: systemctl start $SERVICE_NAME"
|
|
echo "• Arrêter: systemctl stop $SERVICE_NAME"
|
|
echo "• Redémarrer: systemctl restart $SERVICE_NAME"
|
|
echo "• Statut: systemctl status $SERVICE_NAME"
|
|
echo "• Logs: journalctl -u $SERVICE_NAME -f"
|
|
echo "• Test: $INSTALL_DIR/healthcheck.sh"
|
|
echo
|
|
echo -e "${YELLOW}N'oubliez pas de configurer votre container LXC Proxmox avec:${NC}"
|
|
echo "• pct set <VMID> -privilege 1"
|
|
echo "• pct set <VMID> -features nesting=1"
|
|
echo "• Configuration de l'accès IPMI selon votre setup" |