[[./|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**