article:plusieurs_vm_yunohost_vers_une_seule_ip:configuration_automatisee_des_vm_yunohost
📄 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.comForward IP 192.168.100.10Forward Port 443Scheme httpsSSL Cocher "Request a new SSL Certificate" - Configurez vos DNS chez votre registrar pour pointer
site1.mondomaine.comvers 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
article/plusieurs_vm_yunohost_vers_une_seule_ip/configuration_automatisee_des_vm_yunohost.txt · Dernière modification : de estro
