#!/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 -privilege 1" echo "• pct set -features nesting=1" echo "• Configuration de l'accès IPMI selon votre setup"