[[./|retour]] ====== 📄 DOCUMENT 3 : CONFIGURATION AUTOMATISÉE DES VM YUNOHOST ====== ===== 1. Objectif du Script ===== Ce script configure une VM YunoHost existante (aprĂšs installation de base) pour : * Lui attribuer une **IP statique** sur le rĂ©seau ''%%lan-yuno%%''. * Configurer la **passerelle** vers le routeur (''%%192.168.100.1%%''). * Configurer les **DNS**. * VĂ©rifier la connectivitĂ© Internet. ===== 2. PrĂ©requis ===== * La VM YunoHost est installĂ©e et accessible (via console virt-manager ou SSH avec l'IP DHCP temporaire). * Vous connaissez l'**IP statique** souhaitĂ©e (ex: ''%%192.168.100.10%%'') et le **nom de domaine** (ex: ''%%site1.mondomaine.com%%''). * L'interface rĂ©seau principale de la VM est bien ''%%eth0%%'' (standard YunoHost). ===== 3. Script de Configuration : configure-yunohost.sh ===== **Instructions :** - Copiez ce code dans la VM YunoHost. - Sauvegardez-le sous ''%%configure-yunohost.sh%%''. - Rendez-le exĂ©cutable : ''%%chmod +x configure-yunohost.sh%%''. - Lancez-le : ''%%sudo ./configure-yunohost.sh 192.168.100.10 site1.mondomaine.com%%''. #!/bin/bash # ============================================================================= # SCRIPT DE CONFIGURATION VM YUNOHOST # ============================================================================= # Usage: ./configure-yunohost.sh # Exemple: ./configure-yunohost.sh 192.168.100.10 site1.mondomaine.com # ============================================================================= set -e # --- VĂ©rification des arguments --- if [ "$#" -ne 2 ]; then echo "❌ Erreur: Arguments manquants." echo "Usage: $0 " echo "Exemple: $0 192.168.100.10 site1.mondomaine.com" exit 1 fi IP_LAN=$1 DOMAINE=$2 INTERFACE="eth0" # Interface par dĂ©faut de YunoHost PASSERELLE="192.168.100.1" DNS_PRIMAIRE="192.168.100.1" DNS_SECONDAIRE="8.8.8.8" echo "🚀 Configuration pour :" echo " IP: $IP_LAN" echo " Domaine: $DOMAINE" echo " Passerelle: $PASSERELLE" echo "" # --- 1. Sauvegarde --- echo "đŸ’Ÿ Sauvegarde de la config rĂ©seau..." cp /etc/network/interfaces /etc/network/interfaces.backup.$(date +%Y%m%d_%H%M%S) # --- 2. Configuration RĂ©seau --- echo "⚙ Configuration de l'interface $INTERFACE..." cat > /etc/network/interfaces << EOF # Configuration automatique par configure-yunohost.sh # Date: $(date) # Loopback auto lo iface lo inet loopback # Interface principale (LAN) auto $INTERFACE iface $INTERFACE inet static address $IP_LAN netmask 255.255.255.0 gateway $PASSERELLE dns-nameservers $DNS_PRIMAIRE $DNS_SECONDAIRE EOF # --- 3. Mise Ă  jour /etc/hosts --- echo "đŸ·ïž Mise Ă  jour du fichier /etc/hosts..." sed -i "/127.0.1.1/d" /etc/hosts echo "127.0.1.1 $DOMAINE $INTERFACE localhost" >> /etc/hosts # --- 4. RedĂ©marrage rĂ©seau --- echo "🔄 RedĂ©marrage du service rĂ©seau..." systemctl restart networking # --- 5. VĂ©rifications --- echo "" echo "✅ VĂ©rifications..." # VĂ©rifier l'IP CURRENT_IP=$(ip -4 addr show $INTERFACE | grep -oP '(?<=inet\s)\d+(\.\d+){3}') if [ "$CURRENT_IP" == "$IP_LAN" ]; then echo " ✅ IP correcte: $CURRENT_IP" else echo " ⚠ Attention: IP dĂ©tectĂ©e $CURRENT_IP (attendue: $IP_LAN)" fi # VĂ©rifier la passerelle DEFAULT_GW=$(ip route | grep default | awk '{print $3}') if [ "$DEFAULT_GW" == "$PASSERELLE" ]; then echo " ✅ Passerelle correcte: $DEFAULT_GW" else echo " ⚠ Attention: Passerelle $DEFAULT_GW (attendue: $PASSERELLE)" fi # Test Internet echo " 🌐 Test de connectivitĂ© Internet..." if ping -c 2 -W 2 8.8.8.8 > /dev/null 2>&1; then echo " ✅ Ping vers Internet: OK" else echo " ❌ Ping vers Internet: ÉCHEC (VĂ©rifiez le NAT sur le routeur)" fi # Test Routeur echo " đŸ›Ąïž Test de connectivitĂ© vers le routeur..." if ping -c 2 -W 2 $PASSERELLE > /dev/null 2>&1; then echo " ✅ Ping vers routeur: OK" else echo " ❌ Ping vers routeur: ÉCHEC" fi echo "" echo "================================================================" echo " CONFIGURATION TERMINÉE !" echo "================================================================" echo "" echo "📌 Prochaines Ă©tapes :" echo "1. Connectez-vous Ă  l'interface web : https://$IP_LAN" echo "2. Si le domaine '$DOMAINE' n'est pas reconnu, allez dans" echo " 'Domaines' > 'Ajouter un domaine' et entrez '$DOMAINE'." echo "3. Configurez le Proxy Host sur le routeur (NPM) :" echo " - Domaine: $DOMAINE" echo " - IP: $IP_LAN" echo " - Port: 443" echo " - Scheme: https" echo "================================================================" ===== 4. Utilisation du Script ===== - **Connexion** : Connectez-vous Ă  la VM YunoHost (via console virt-manager si vous ne connaissez pas l'IP, ou via SSH avec l'IP DHCP). - **CrĂ©ation du fichier** : nano configure-yunohost.sh # Collez le contenu ci-dessus - **ExĂ©cution** : chmod +x configure-yunohost.sh sudo ./configure-yunohost.sh 192.168.100.10 site1.mondomaine.com - **Validation** : * Le script affichera les rĂ©sultats des tests. * Si tout est vert, reconnectez-vous via SSH avec la nouvelle IP : ''%%ssh admin@192.168.100.10%%''. * AccĂ©dez Ă  l'interface web : ''%%https://192.168.100.10%%''. ===== 5. Configuration Finale sur le Routeur (NPM) ===== Une fois le script exĂ©cutĂ© avec succĂšs : - Allez sur ''%%http://192.168.100.1:81%%''. - CrĂ©ez un **Proxy Host** : ^Champ ^Valeur ^ |Domains |''%%site1.mondomaine.com%%'' | |Forward IP |''%%192.168.100.10%%'' | |Forward Port|''%%443%%'' | |Scheme |''%%https%%'' | |SSL |Cocher "Request a new SSL Certificate"| - Configurez vos **DNS** chez votre registrar pour pointer ''%%site1.mondomaine.com%%'' vers votre **IP Publique**. **⚠ Important :** Si le ping vers Internet Ă©choue aprĂšs exĂ©cution du script, vĂ©rifiez que la rĂšgle NAT est bien configurĂ©e sur la VM Routeur (voir Document 2). **✅ Fin du Document 3**