Files
iDRAC_fan_controller/lxc/install-lxc.sh
Benoit ced296a296 Ajout version LXC et restructuration complète du projet
🚀 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>
2025-08-31 11:00:00 +02:00

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"