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 :

2. Prérequis

3. Script de Configuration : configure-yunohost.sh

Instructions :

  1. Copiez ce code dans la VM YunoHost.
  2. Sauvegardez-le sous configure-yunohost.sh.
  3. Rendez-le exécutable : chmod +x configure-yunohost.sh.
  4. 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

  1. Connexion : Connectez-vous Ă  la VM YunoHost (via console virt-manager si vous ne connaissez pas l'IP, ou via SSH avec l'IP DHCP).
  2. Création du fichier :
nano configure-yunohost.sh
# Collez le contenu ci-dessus
  1. Exécution :
chmod +x configure-yunohost.sh
sudo ./configure-yunohost.sh 192.168.100.10 site1.mondomaine.com
  1. 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 :

  1. Allez sur http://192.168.100.1:81.
  2. Créez un Proxy Host :

    Champ Valeur
    Domains site1.mondomaine.com
    Forward IP 192.168.100.10
    Forward Port443
    Scheme https
    SSL Cocher “Request a new SSL Certificate”
  3. 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